Compare commits

...

25 Commits

Author SHA1 Message Date
Lucas Smith 1e20561e91 v2.3.2 2025-12-24 16:20:23 +11:00
Lucas Smith a2ec5f0fa1 fix: cleanup konva stages during field insertion (#2347) 2025-12-24 16:09:09 +11:00
Ted Liang de8d13a4c1 fix: hide branding logo in audit log (#2342) 2025-12-24 15:10:13 +11:00
github-actions[bot] 495d61a11d chore: extract translations (#2327) 2025-12-24 13:51:40 +11:00
Catalin Pit 90fdba8000 feat: get many endpoints (#2226)
Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
2025-12-24 11:02:02 +11:00
Ephraim Duncan aa1cada79b feat: add find envelopes endpoint (#2244) 2025-12-23 22:51:51 +11:00
Lucas Smith 790b385849 chore: add bundled chromium docker container (#2344)
We use playwright + chromium for certificate generation
and other things.

Self-hosters often have an issue with generating certificates
due to the base image not coming with chromium for size purposes.

This adds a new `-chromium` tag to our docker images for downloading
the larger bundled chromium containers.
2025-12-23 22:09:12 +11:00
Catalin Pit baa2c51123 feat: add delegate document ownership option (#2272)
When using an API key created in a team context, the
documents/templates’ owner always defaults to the team API token
creator, rather than the actual uploader.

For example, John creates the API key for the team "Lawyers". Tom and
Maria use the API key to upload documents. All the uploaded documents
are attributed to John.

This makes it impossible to see who actually uploaded a document.

The new feature allows users to enable document ownership delegation
from the organization/team settings.
2025-12-23 22:08:54 +11:00
Catalin Pit 1e585e06e6 docs: update documentation (#2339) 2025-12-22 15:07:28 +02:00
Ted Liang 5624484631 fix: security CVE-2025-68130 (#2343)
## Description

Fix security
[CVE-2025-68130](https://github.com/advisories/GHSA-43p4-m455-4f4j)
2025-12-22 21:53:49 +11:00
Catalin Pit 810e00da03 feat: add new features to the FEATURES list (#2338) 2025-12-19 10:38:56 +11:00
Lucas Smith eeeee2fa0e v2.3.1 2025-12-18 12:02:04 +11:00
Lucas Smith c50a31a503 fix: use cpu for field rendering (#2337) 2025-12-18 10:48:46 +11:00
Lucas Smith 7360709795 fix: use gemimi 3 flash preview (#2336) 2025-12-18 10:48:16 +11:00
Lucas Smith df678d7d69 v2.3.0 2025-12-17 22:10:47 +11:00
Lucas Smith 6739242554 fix: use cpu for skia-canvas rendering (#2334)
Seems there's a memory leak in gpu rendering with skia canvas
where contexts can live for much longer than expected escaping gc
cleanup

CPU rendering seems better albeit a bit slower.

Synthetic tests were ran with `--expose-gc` to simulate load over time.
2025-12-17 14:48:21 +11:00
Konrad a5e5eecf8b fix: mark links for translation (#2333) 2025-12-17 12:02:12 +11:00
Lucas Smith b0248c20eb v2.2.8 2025-12-16 16:04:07 +11:00
Lucas Smith f129968968 fix: ensure PDF form appearance streams have required /Subtype /Form entry (#2328)
When flattening PDF forms, some appearance streams lack the required
/Subtype /Form dictionary entry needed when used as XObjects. This
causes
corruption in Adobe Reader which fails to render these flattened fields.

Per PDF spec, Form XObject streams require:
- /Subtype /Form (required)
- /FormType 1 (optional)

The normalizeAppearanceStream function ensures these entries exist
before
adding appearance streams as XObjects to the page content stream.

Fixes rendering issues where flattened fields don't display in PDF
viewers.
2025-12-16 16:00:11 +11:00
Lucas Smith c5c87e3fd1 v2.2.7 2025-12-16 12:38:53 +11:00
Lucas Smith 24a74c7b57 chore: add translations (#2321)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-12-16 12:06:58 +11:00
Lucas Smith f0a5a7e816 feat: prefill typed signature with user's full name (#2324)
Add fullName prop to signature pad components to automatically populate
typed signature
field with signer's name. Updates signature dialog, type component, and
all signing forms
across embed, document, template, and envelope flows to pass through the
user's full
name for better user experience.
2025-12-16 12:06:04 +11:00
Catalin Pit 8462cd13fd fix: assignment operator for directRecipientName (#2323) 2025-12-16 12:04:19 +11:00
Lucas Smith 576846de32 fix: fallback for certficate sent date when using link distribution (#2316) 2025-12-16 11:40:16 +11:00
Lucas Smith 06071ea035 fix: memory leak in PDF to images conversion (#2325)
Add proper cleanup for PDF.js pages and loading task to prevent memory
leaks when
processing multiple PDF pages. Ensure page cleanup is called after each
page is
rendered and both PDF document and loading task are properly destroyed
with error
handling.
2025-12-16 11:34:30 +11:00
115 changed files with 4411 additions and 1733 deletions
+115
View File
@@ -65,6 +65,47 @@ jobs:
env:
BUILD_PLATFORM: ${{ matrix.os == 'warp-ubuntu-latest-arm64-4x' && 'arm64' || 'amd64' }}
- name: Build the chromium docker image
env:
BUILD_PLATFORM: ${{ matrix.os == 'warp-ubuntu-latest-arm64-4x' && 'arm64' || 'amd64' }}
run: |
APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')"
GIT_SHA="$(git rev-parse HEAD)"
docker build \
-f ./docker/Dockerfile.chromium \
--progress=plain \
--build-arg TAG="$GIT_SHA" \
-t "documenso/documenso-$BUILD_PLATFORM:latest-chromium" \
-t "documenso/documenso-$BUILD_PLATFORM:$GIT_SHA-chromium" \
-t "documenso/documenso-$BUILD_PLATFORM:$APP_VERSION-chromium" \
-t "ghcr.io/documenso/documenso-$BUILD_PLATFORM:latest-chromium" \
-t "ghcr.io/documenso/documenso-$BUILD_PLATFORM:$GIT_SHA-chromium" \
-t "ghcr.io/documenso/documenso-$BUILD_PLATFORM:$APP_VERSION-chromium" \
.
- name: Push the chromium docker image to DockerHub
env:
BUILD_PLATFORM: ${{ matrix.os == 'warp-ubuntu-latest-arm64-4x' && 'arm64' || 'amd64' }}
run: |
APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')"
GIT_SHA="$(git rev-parse HEAD)"
docker push "documenso/documenso-$BUILD_PLATFORM:latest-chromium"
docker push "documenso/documenso-$BUILD_PLATFORM:$GIT_SHA-chromium"
docker push "documenso/documenso-$BUILD_PLATFORM:$APP_VERSION-chromium" \
- name: Push the chromium docker image to GitHub Container Registry
env:
BUILD_PLATFORM: ${{ matrix.os == 'warp-ubuntu-latest-arm64-4x' && 'arm64' || 'amd64' }}
run: |
APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')"
GIT_SHA="$(git rev-parse HEAD)"
docker push "ghcr.io/documenso/documenso-$BUILD_PLATFORM:latest-chromium"
docker push "ghcr.io/documenso/documenso-$BUILD_PLATFORM:$GIT_SHA-chromium"
docker push "ghcr.io/documenso/documenso-$BUILD_PLATFORM:$APP_VERSION-chromium"
create_and_publish_manifest:
name: Create and publish manifest
runs-on: ubuntu-latest
@@ -125,6 +166,43 @@ jobs:
docker manifest push documenso/documenso:$GIT_SHA
docker manifest push documenso/documenso:$APP_VERSION
- name: Create and push DockerHub chromium manifest
run: |
APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')"
GIT_SHA="$(git rev-parse HEAD)"
# Check if the version is stable (no rc or beta in the version)
if [[ "$APP_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
docker manifest create \
documenso/documenso:latest-chromium \
--amend documenso/documenso-amd64:latest-chromium \
--amend documenso/documenso-arm64:latest-chromium
docker manifest push documenso/documenso:latest-chromium
fi
if [[ "$APP_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$ ]]; then
docker manifest create \
documenso/documenso:rc-chromium \
--amend documenso/documenso-amd64:rc-chromium \
--amend documenso/documenso-arm64:rc-chromium
docker manifest push documenso/documenso:rc-chromium
fi
docker manifest create \
documenso/documenso:$GIT_SHA-chromium \
--amend documenso/documenso-amd64:$GIT_SHA-chromium \
--amend documenso/documenso-arm64:$GIT_SHA-chromium
docker manifest create \
documenso/documenso:$APP_VERSION-chromium \
--amend documenso/documenso-amd64:$APP_VERSION-chromium \
--amend documenso/documenso-arm64:$APP_VERSION-chromium
docker manifest push documenso/documenso:$GIT_SHA-chromium
docker manifest push documenso/documenso:$APP_VERSION-chromium
- name: Create and push Github Container Registry manifest
run: |
APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')"
@@ -161,3 +239,40 @@ jobs:
docker manifest push ghcr.io/documenso/documenso:$GIT_SHA
docker manifest push ghcr.io/documenso/documenso:$APP_VERSION
- name: Create and push Github Container Registry chromium manifest
run: |
APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')"
GIT_SHA="$(git rev-parse HEAD)"
# Check if the version is stable (no rc or beta in the version)
if [[ "$APP_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
docker manifest create \
ghcr.io/documenso/documenso:latest-chromium \
--amend ghcr.io/documenso/documenso-amd64:latest-chromium \
--amend ghcr.io/documenso/documenso-arm64:latest-chromium
docker manifest push ghcr.io/documenso/documenso:latest-chromium
fi
if [[ "$APP_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$ ]]; then
docker manifest create \
ghcr.io/documenso/documenso:rc-chromium \
--amend ghcr.io/documenso/documenso-amd64:rc-chromium \
--amend ghcr.io/documenso/documenso-arm64:rc-chromium
docker manifest push ghcr.io/documenso/documenso:rc-chromium
fi
docker manifest create \
ghcr.io/documenso/documenso:$GIT_SHA-chromium \
--amend ghcr.io/documenso/documenso-amd64:$GIT_SHA-chromium \
--amend ghcr.io/documenso/documenso-arm64:$GIT_SHA-chromium
docker manifest create \
ghcr.io/documenso/documenso:$APP_VERSION-chromium \
--amend ghcr.io/documenso/documenso-amd64:$APP_VERSION-chromium \
--amend ghcr.io/documenso/documenso-arm64:$APP_VERSION-chromium
docker manifest push ghcr.io/documenso/documenso:$GIT_SHA-chromium
docker manifest push ghcr.io/documenso/documenso:$APP_VERSION-chromium
+2 -1
View File
@@ -17,5 +17,6 @@
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
},
"prisma.pinToPrisma6": true
}
@@ -61,6 +61,6 @@ You can access the following services:
- Main application - http://localhost:3000
- Incoming Mail Access - http://localhost:9000
- Database Connection Details:
- Port: 54320
- Connection: Use your favourite database client to connect to the database.
- Port: 54320
- Connection: Use your favorite database client to connect to the database.
- S3 Storage Dashboard - http://localhost:9001
@@ -1,3 +1,8 @@
---
title: Rate Limits
description: Learn about the rate limits for the Documenso Public API.
---
import { Callout } from 'nextra/components';
# Rate Limits
@@ -1,3 +1,8 @@
---
title: Telemetry
description: Learn about the telemetry data that Documenso collects from self-hosted instances.
---
# Telemetry
Documenso collects anonymous telemetry data from self-hosted instances to help us understand how the software is being used and make improvements to the product. This telemetry is enabled by default, but you can easily disable it if you prefer.
@@ -5,7 +5,7 @@ description: Learn how to use webhooks to receive real-time notifications about
# Webhooks
Webhooks are HTTP callbacks triggered by specific events. When the user subscribes to a specific event, and that event occurs, the webhook makes an HTTP request to the URL provided by the user. The request can be a simple notification or carry a payload with more information about the event.
Webhooks are HTTP callbacks triggered by specific events. When you subscribe to a specific event and that event occurs, the webhook makes an HTTP request to the URL you provide. The request can be a simple notification or carry a payload with more information about the event.
Some of the common use cases for webhooks include:
@@ -25,13 +25,13 @@ Documenso supports Webhooks and allows you to subscribe to the following events:
## Create a webhook subscription
You can create a webhook subscription from the user settings page. Click on your avatar in the top right corner of the dashboard and select "**[User settings](https://app.documenso.com/settings)**" from the dropdown menu.
You can create a webhook subscription from the team settings page. Click your avatar in the top right corner of the dashboard and select "Team settings" from the dropdown menu.
![A screenshot of the Documenso's dashboard that shows the dropdown menu when you click on your user avatar](/webhook-images/dashboard-user-dropdown-menu.webp)
![A screenshot of the Documenso's dashboard that shows the dropdown menu when you click on your user avatar](/webhook-images/documenso-main-page.webp)
Then, navigate to the "**[Webhooks](https://app.documenso.com/settings/webhooks)**" tab, where you can see a list of your existing webhooks and create new ones.
Then, navigate to the "Webhooks" tab, which takes you to the webhooks main page.
![A screenshot of the Documenso's user settings page that shows the Webhooks tab and the Create Webhook button](/webhook-images/webhooks-settings-page.webp)
![A screenshot of the Documenso's team settings page that shows the Webhooks tab and the Create Webhook button](/webhook-images/webhooks-main-page.webp)
Clicking on the "**Create Webhook**" button opens a modal to create a new webhook subscription.
@@ -41,7 +41,7 @@ To create a new webhook subscription, you need to provide the following informat
- Select the event(s) you want to subscribe to: `document.created`, `document.sent`, `document.opened`, `document.signed`, `document.completed`, `document.rejected`, `document.cancelled`.
- Optionally, you can provide a secret key that will be used to sign the payload. This key will be included in the `X-Documenso-Secret` header of the request.
![A screenshot of the Create Webhook modal that shows the URL input field and the event checkboxes](/webhook-images/webhooks-page-create-webhook-modal.webp)
![A screenshot of the Create Webhook modal that shows the URL input field and the event checkboxes](/webhook-images/create-webhook-dialog.webp)
After you have filled in the required information, click on the "**Create Webhook**" button to save your subscription.
@@ -49,7 +49,22 @@ The screenshot below illustrates a newly created webhook subscription.
![A screenshot of the Documenso's user settings page that shows the newly created webhook subscription](/webhook-images/webhooks-page.webp)
You can edit or delete your webhook subscriptions by clicking the "**Edit**" or "**Delete**" buttons next to the webhook.
You can edit, view the logs, or delete your webhook subscriptions by clicking the three dots (...) under the "Action" column. You can also access the webhook logs by clicking on the webhook subscription directly.
![A screenshot of the Documenso's team settings page that shows the webhook logs](/webhook-images/webhook-detail-page.webp)
You can go even further and check the execution details of each call by clicking on a specific webhook call.
![A screenshot of the Documenso's team settings page that shows the webhook call details](/webhook-images/webhook-run-page.webp)
This page shows the details of the webhook call such as:
- status
- event
- date when the webhook was sent
- response code
- request body
- response body and headers
## Webhook fields
@@ -619,18 +634,26 @@ Example payload for the `document.rejected` event:
}
```
## Webhook Events Testing
## Webhook events testing
You can trigger test webhook events to test the webhook functionality. To trigger a test webhook, navigate to the [Webhooks page](/developers/webhooks) and click on the "Test Webhook" button.
You can trigger test webhook events to test the webhook functionality. To do so, navigate to the webhook subscription details page and click the "Test" button.
![Documenso's Webhooks Page](/webhook-images/test-webhooks-page.webp)
![A screenshot of the Documenso's team settings page that shows the webhook logs](/webhook-images/webhook-detail-page.webp)
This opens a dialog where you can select the event type to test.
![Documenso's individual webhook page](/webhook-images/test-webhook-dialog.webp)
![Documenso's individual webhook page](/webhook-images/webhook-test-trigger.webp)
Choose the appropriate event and click "Send Test Webhook." Youll shortly receive a test payload from Documenso with sample data.
Choose the event you want to test and click "Send". Youll then receive a test payload from Documenso with sample data.
## Webhook events resending
To resend a webhook call, you need to navigate to the webhook call page and click the "Resend" button.
![A screenshot of the Documenso's team settings page that shows the webhook call details](/webhook-images/webhook-run-page.webp)
This will send the webhook event to the webhook URL again.
## Availability
Webhooks are available to individual users and teams.
Webhooks are available to teams only.
@@ -1,3 +1,8 @@
---
title: Signature Levels
description: Learn about the different signature levels for Documenso.
---
import { Callout } from 'nextra/components';
# Signature Levels
@@ -26,20 +31,20 @@ ensures the legal validity and enforceability of electronic signatures and recor
### Main Requirements
- [x] Intent to Sign: "Parties must demonstrate their intent to sign [..]"
- [x] Consent: "The ESIGN Act requires that all parties involved in a transaction consent to the use of electronic signatures and records [..]"
- [x] Consumer Disclosures: Before obtaining their consent, financial institutions must provide the consumer a clear and conspicuous statement informing the consumer [..]
- [x] Record Retention: Electronic Records must be maintained for later access by signers.
- [x] Security: The ESIGN Act does not mandate specific security measures, but it does require that parties take reasonable steps to ensure the security and integrity of electronic signatures and records. This may include implementing encryption, access controls, and authentication measures.
- [x] **Intent to Sign**: "Parties must demonstrate their intent to sign [..]"
- [x] **Consent**: "The ESIGN Act requires that all parties involved in a transaction consent to the use of electronic signatures and records [..]"
- [x] **Consumer Disclosures**: Before obtaining their consent, financial institutions must provide the consumer a clear and conspicuous statement informing the consumer [..]
- [x] **Record Retention**: Electronic Records must be maintained for later access by signers.
- [x] **Security**: The ESIGN Act does not mandate specific security measures, but it does require that parties take reasonable steps to ensure the security and integrity of electronic signatures and records. This may include implementing encryption, access controls, and authentication measures.
## UETA (Uniform Electronic Transactions Act)
<Callout type="info" emoji="✅">
Status: Compliant
</Callout>
The Uniform Electronic Transactions Act is a law that provides a legal framework for the use of electronic
signatures and records in electronic transactions, ensuring they have the same validity and enforceability
as paper documents and handwritten signatures.
The Uniform Electronic Transactions Act is a law that provides a legal framework for the use of
electronic signatures and records in electronic transactions, ensuring they have the same validity
and enforceability as paper documents and handwritten signatures.
### Main Requirements
@@ -50,9 +55,9 @@ _See [ESIGN](/users/compliance/signature-levels#-esign-electronic-signatures-in-
<Callout type="info" emoji="✅">
Status: Compliant for Level 1 - SES (Simple Electronic Signatures)
</Callout>
eIDAS (Electronic Identification, Authentication and Trust Services) is an EU regulation that standardizes
electronic identification and trust services for secure and seamless electronic transactions across European
member states.
eIDAS (Electronic Identification, Authentication and Trust Services) is an EU regulation that
standardizes electronic identification and trust services for secure and seamless electronic
transactions across European member states.
### Level 1 - SES (Simple Electronic Signatures)
@@ -69,8 +74,8 @@ eIDAS SES (Simple Electronic Signature) is a basic electronic signature with min
Status: [Planned](https://github.com/documenso/backlog/issues/9) via third party until [Let's
Sign](https://github.com/documenso/backlog/issues/21) is realized.
</Callout>
eIDAS AES (Advanced Electronic Signature) provides a higher level of security with unique identification
of the signer and data integrity.
eIDAS AES (Advanced Electronic Signature) provides a higher level of security with unique
identification of the signer and data integrity.
### Main Requirements
@@ -85,8 +90,8 @@ of the signer and data integrity.
Status: [Planned](https://github.com/documenso/backlog/issues/32) via third party until [Let's
Sign](https://github.com/documenso/backlog/issues/21) is realized.
</Callout>
eIDAS QES (Qualified Electronic Signature) is the highest security level, legally equivalent to a handwritten
signature within the EU.
eIDAS QES (Qualified Electronic Signature) is the highest security level, legally equivalent to a
handwritten signature within the EU.
### Main Requirements
@@ -1,3 +1,8 @@
---
title: Standards and Regulations
description: Learn about the different standards and regulations for Documenso.
---
import { Callout } from 'nextra/components';
## 21 CFR Part 11
@@ -1,3 +1,8 @@
---
title: Email Domains
description: Learn how to create and manage email domains in Documenso.
---
import { Callout, Steps } from 'nextra/components';
# Email Domains
+9 -9
View File
@@ -7,28 +7,28 @@ import { Callout } from 'nextra/components';
# Fair Use Policy
### Why
We offer our plans without any limits on volume because we want our users and customers to make the most of their accounts. Estimating volume is incredibly hard, especially for shorter intervals like a quarter. We are not interested in selling volume packages our customers end up not using.
We offer our plans without any limits on volume because we want our users and customers to make the most of their accounts. Estimating volume is incredibly hard, especially for shorter intervals like a quarter. We are not interested in selling volume packages our customers end up not using. This is why the individual plan and the team plan do not include a limit on signing or API volume. If you are a customer of these [plans](https://documen.so/pricing), we ask you to abide by this fair use policy:
This is why the individual plan and the team plan do not include a limit on signing or API volume. If you are a customer of these [plans](https://documen.so/pricing), we ask you to abide by this fair use policy:
### Spirit of the Plan
> Use the limitless accounts as much as you like (they are meant to offer a lot) while respecting the spirit and intended scope of the account.
Use the limitless accounts as much as you like (they are meant to offer a lot) while respecting the spirit and intended scope of the account.
<Callout type="info">
What happens if I violate this policy? We will ask you to upgrade to a fitting plan or custom
pricing. We wont block your account without reaching out. [Message
us](mailto:support@documenso.com) for questions. It's probably fine, though.
pricing. We wont block your account without reaching out. You can [message
us](mailto:support@documenso.com) for questions.
</Callout>
### DO
- Sign as many documents with the individual plan for your single business or organization you are part of
- Use the API and Zapier to automate all your signing to sign as much as possible
- Experiment with the plans and integrations, testing what you want to build: When in doubt, do it. Especially if you are just starting.
- Sign as many documents as you need with the individual plan for your single business or organization you are part of
- Use the API and automation tools to automate all your signing workflows
- Experiment with the plans and integrations, testing what you want to build
### DON'T
- Use the individual account's API to power a platform
- Run a huge company, signing thousands of documents per day on a two-user team plan using the API
- Let this policy make you overthink. If you are a paying customer, we want you to win, and it's probably fine
- Let this policy make you overthink. If you are a paying customer, we want you to win
@@ -10,7 +10,12 @@ import { Callout, Steps } from 'nextra/components';
<Steps>
### Pick a Plan
The first step to start using Documenso is to pick a plan and create an account. At the moment of writing this guide, we have 3 plans available: Free, Individual, Teams and Platform.
The first step to start using Documenso is to pick a plan and create an account. At the moment of writing this guide, we have 4 plans available:
- Free
- Individual
- Teams
- Platform
Explore each plan's features and choose the one that best suits your needs. The [pricing page](https://documen.so/pricing) has more information about the plans.
@@ -24,7 +29,7 @@ To create a free account, navigate to the [registration page](https://documen.so
### Optional: Claim a Premium Username
You can claim a premium username by upgrading to a paid plan. After upgrading to a paid plan, you can update your [public profile](https://app.documenso.com/settings/public-profile).
You can claim a premium username by upgrading to a paid plan. After upgrading to a paid plan, you can update your [public profile](/users/profile).
### Optional: Create a Team
@@ -1,3 +1,8 @@
---
title: Community Edition
description: Learn about the Community Edition of Documenso.
---
import { Callout } from 'nextra/components';
# Community Edition
@@ -32,10 +37,10 @@ Documenso and the Community Edition are licensed under [AGPL3](https://github.co
### Conditions
License and copyright notice
State changes
Disclose source
Network use is distribution
- License and copyright notice
- State changes
- Disclose source
- Network use is distribution
<Callout type="warning">
It's important to remember that you must keep the AGPL3 license for your modified or non-modified
@@ -1,3 +1,8 @@
---
title: Enterprise Edition
description: Learn about the Enterprise Edition of Documenso.
---
import { Callout } from 'nextra/components';
# Enterprise Edition
@@ -1,3 +1,8 @@
---
title: Licenses
description: Learn about the different licenses for self-hosting Documenso.
---
# Self-Hosting Licenses
Documenso comes in two versions for self-hosting:
+1 -1
View File
@@ -15,7 +15,7 @@ Documenso allows you to create a public profile to share your templates for anyo
### Navigate to Your Profile Settings
Click on your profile picture in the top right corner and select "Settings" or "Team Settings". Then, navigate to the "Public Profile" tab to configure your profile.
Click on your profile picture in the top right corner and select "Team Settings". Then, navigate to the "Public Profile" tab to configure your profile.
![The profile settings page](/public-profile/documenso-public-profile-settings.webp)
+6 -6
View File
@@ -9,30 +9,30 @@ description: Learn what types of support we offer.
If you are a developer or free user, you can reach out to the community or raise an issue:
### [Create Github Issues](https://github.com/documenso/documenso/issues)
**[Create Github Issues](https://github.com/documenso/documenso/issues)**
The community and the core team address GitHub issues. Be sure to check if a similar issue already exists. Please note that while we want to address everything immediately, we must prioritize.
### [Join our Discord](https://documen.so/discord)
**[Join our Discord](https://documen.so/discord)**
You can ask for help in the [community help channel](https://discord.com/channels/1132216843537485854/1133419426524430376).
## Paid Account Support
### Email: support@documenso.com
**Email: support@documenso.com**
If you are paying customers facing issues, email our customer support, especially in urgent cases.
### Private Discord channel
**Private Discord channel**
If you prefer Discord, we can invite you to a private channel. Message support to make this happen.
## Enterprise Support
### Email: support@documenso.com
**Email: support@documenso.com**
If you are paying customers facing issues, email our customer support, especially in urgent cases.
### Slack
**Slack**
If your team is on Slack, we can create a private workspace to support you more closely.
@@ -1,3 +1,8 @@
---
title: Templates
description: Learn how to create and use templates in Documenso.
---
import { Callout, Steps } from 'nextra/components';
# Document Templates
Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

@@ -17,6 +17,7 @@ import { DocumentSigningDisclosure } from '../general/document-signing/document-
export type SignFieldSignatureDialogProps = {
initialSignature?: string;
fullName?: string;
typedSignatureEnabled?: boolean;
uploadSignatureEnabled?: boolean;
drawSignatureEnabled?: boolean;
@@ -28,6 +29,7 @@ export const SignFieldSignatureDialog = createCallable<
>(
({
call,
fullName,
typedSignatureEnabled,
uploadSignatureEnabled,
drawSignatureEnabled,
@@ -46,6 +48,7 @@ export const SignFieldSignatureDialog = createCallable<
</DialogHeader>
<SignaturePad
fullName={fullName}
value={localSignature ?? ''}
onChange={({ value }) => setLocalSignature(value)}
typedSignatureEnabled={typedSignatureEnabled}
@@ -137,12 +137,12 @@ export const TemplateBulkSendDialog = ({
<Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="flex flex-col gap-y-4">
<div className="bg-muted/70 rounded-lg border p-4">
<div className="rounded-lg border bg-muted/70 p-4">
<h3 className="text-sm font-medium">
<Trans>CSV Structure</Trans>
</h3>
<p className="text-muted-foreground mt-1 text-sm">
<p className="mt-1 text-sm text-muted-foreground">
<Trans>
For each recipient, provide their email (required) and name (optional) in separate
columns. Download the template CSV below for the correct format.
@@ -153,7 +153,7 @@ export const TemplateBulkSendDialog = ({
<Trans>Current recipients:</Trans>
</p>
<ul className="text-muted-foreground mt-2 list-inside list-disc text-sm">
<ul className="mt-2 list-inside list-disc text-sm text-muted-foreground">
{recipients.map((recipient, index) => (
<li key={index}>
{recipient.name ? `${recipient.name} (${recipient.email})` : recipient.email}
@@ -167,7 +167,7 @@ export const TemplateBulkSendDialog = ({
<Trans>Download Template CSV</Trans>
</Button>
<p className="text-muted-foreground text-xs">
<p className="text-xs text-muted-foreground">
<Trans>Pre-formatted CSV template with example data.</Trans>
</p>
</div>
@@ -200,14 +200,14 @@ export const TemplateBulkSendDialog = ({
) : (
<div className="flex h-10 items-center rounded-md border px-3">
<div className="flex flex-1 items-center gap-2">
<FileIcon className="text-muted-foreground h-4 w-4" />
<FileIcon className="h-4 w-4 text-muted-foreground" />
<span className="flex-1 truncate text-sm">{value.name}</span>
</div>
<Button
type="button"
variant="link"
className="text-destructive hover:text-destructive p-0 text-xs"
className="p-0 text-xs text-destructive hover:text-destructive"
onClick={() => onChange(null)}
disabled={form.formState.isSubmitting}
>
@@ -220,9 +220,9 @@ export const TemplateBulkSendDialog = ({
)}
</FormControl>
{error && <p className="text-destructive text-sm">{error.message}</p>}
{error && <p className="text-sm text-destructive">{error.message}</p>}
<p className="text-muted-foreground text-xs">
<p className="text-xs text-muted-foreground">
<Trans>
Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use
template defaults.
@@ -247,7 +247,7 @@ export const TemplateBulkSendDialog = ({
<label
htmlFor="send-immediately"
className="text-muted-foreground ml-2 flex items-center text-sm"
className="ml-2 flex items-center text-sm text-muted-foreground"
>
<Trans>Send documents to recipients immediately</Trans>
</label>
@@ -438,6 +438,7 @@ export const EmbedDirectTemplateClientPage = ({
className="mt-2"
disabled={isThrottled || isSubmitting}
disableAnimation
fullName={fullName}
value={signature ?? ''}
onChange={(v) => setSignature(v ?? '')}
typedSignatureEnabled={metadata?.typedSignatureEnabled}
@@ -455,6 +455,7 @@ export const EmbedSignDocumentV1ClientPage = ({
className="mt-2"
disabled={isThrottled || isSubmitting}
disableAnimation
fullName={fullName}
value={signature ?? ''}
onChange={(v) => setSignature(v ?? '')}
typedSignatureEnabled={metadata?.typedSignatureEnabled}
@@ -319,6 +319,7 @@ export const MultiSignDocumentSigningView = ({
className="mt-2"
disabled={isSubmitting}
disableAnimation
fullName={fullName}
value={signature ?? ''}
onChange={(v) => setSignature(v ?? '')}
typedSignatureEnabled={
@@ -58,6 +58,7 @@ export type TDocumentPreferencesFormSchema = {
includeSigningCertificate: boolean | null;
includeAuditLog: boolean | null;
signatureTypes: DocumentSignatureType[];
delegateDocumentOwnership: boolean | null;
aiFeaturesEnabled: boolean | null;
};
@@ -73,6 +74,7 @@ type SettingsSubset = Pick<
| 'typedSignatureEnabled'
| 'uploadSignatureEnabled'
| 'drawSignatureEnabled'
| 'delegateDocumentOwnership'
| 'aiFeaturesEnabled'
>;
@@ -109,6 +111,7 @@ export const DocumentPreferencesForm = ({
signatureTypes: z.array(z.nativeEnum(DocumentSignatureType)).min(canInherit ? 0 : 1, {
message: msg`At least one signature type must be enabled`.id,
}),
delegateDocumentOwnership: z.boolean().nullable(),
aiFeaturesEnabled: z.boolean().nullable(),
});
@@ -125,6 +128,7 @@ export const DocumentPreferencesForm = ({
includeSigningCertificate: settings.includeSigningCertificate,
includeAuditLog: settings.includeAuditLog,
signatureTypes: extractTeamSignatureSettings({ ...settings }),
delegateDocumentOwnership: settings.delegateDocumentOwnership,
aiFeaturesEnabled: settings.aiFeaturesEnabled,
},
resolver: zodResolver(ZDocumentPreferencesFormSchema),
@@ -515,6 +519,52 @@ export const DocumentPreferencesForm = ({
)}
/>
<FormField
control={form.control}
name="delegateDocumentOwnership"
render={({ field }) => (
<FormItem className="flex-1">
<FormLabel>
<Trans>Delegate Document Ownership</Trans>
</FormLabel>
<Select
{...field}
value={field.value === null ? '-1' : field.value.toString()}
onValueChange={(value) =>
field.onChange(value === 'true' ? true : value === 'false' ? false : null)
}
>
<SelectTrigger className="bg-background text-muted-foreground">
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="true">
<Trans>Yes</Trans>
</SelectItem>
<SelectItem value="false">
<Trans>No</Trans>
</SelectItem>
{canInherit && (
<SelectItem value={'-1'}>
<Trans>Inherit from organisation</Trans>
</SelectItem>
)}
</SelectContent>
</Select>
<FormDescription>
<Trans>
Enable team API tokens to delegate document ownership to another team member.
</Trans>
</FormDescription>
</FormItem>
)}
/>
{isAiFeaturesConfigured && (
<FormField
control={form.control}
+2 -1
View File
@@ -110,7 +110,7 @@ export const ProfileForm = ({ className }: ProfileFormProps) => {
<Label htmlFor="email" className="text-muted-foreground">
<Trans>Email</Trans>
</Label>
<Input id="email" type="email" className="bg-muted mt-2" value={user.email} disabled />
<Input id="email" type="email" className="mt-2 bg-muted" value={user.email} disabled />
</div>
<FormField
@@ -124,6 +124,7 @@ export const ProfileForm = ({ className }: ProfileFormProps) => {
<FormControl>
<SignaturePadDialog
disabled={isSubmitting}
fullName={user.name ?? ''}
value={value}
onChange={(v) => onChange(v ?? '')}
/>
+8 -8
View File
@@ -368,7 +368,7 @@ export const SignInForm = ({
<p className="mt-2 text-right">
<Link
to="/forgot-password"
className="text-muted-foreground text-sm duration-200 hover:opacity-70"
className="text-sm text-muted-foreground duration-200 hover:opacity-70"
>
<Trans>Forgot your password?</Trans>
</Link>
@@ -390,11 +390,11 @@ export const SignInForm = ({
<>
{hasSocialAuthEnabled && (
<div className="relative flex items-center justify-center gap-x-4 py-2 text-xs uppercase">
<div className="bg-border h-px flex-1" />
<span className="text-muted-foreground bg-transparent">
<div className="h-px flex-1 bg-border" />
<span className="bg-transparent text-muted-foreground">
<Trans>Or continue with</Trans>
</span>
<div className="bg-border h-px flex-1" />
<div className="h-px flex-1 bg-border" />
</div>
)}
@@ -403,7 +403,7 @@ export const SignInForm = ({
type="button"
size="lg"
variant="outline"
className="bg-background text-muted-foreground border"
className="border bg-background text-muted-foreground"
disabled={isSubmitting}
onClick={onSignInWithGoogleClick}
>
@@ -417,7 +417,7 @@ export const SignInForm = ({
type="button"
size="lg"
variant="outline"
className="bg-background text-muted-foreground border"
className="border bg-background text-muted-foreground"
disabled={isSubmitting}
onClick={onSignInWithMicrosoftClick}
>
@@ -435,7 +435,7 @@ export const SignInForm = ({
type="button"
size="lg"
variant="outline"
className="bg-background text-muted-foreground border"
className="border bg-background text-muted-foreground"
disabled={isSubmitting}
onClick={onSignInWithOIDCClick}
>
@@ -452,7 +452,7 @@ export const SignInForm = ({
variant="outline"
disabled={isSubmitting}
loading={isPasskeyLoading}
className="bg-background text-muted-foreground border"
className="border bg-background text-muted-foreground"
onClick={onSignInWithPasskey}
>
{!isPasskeyLoading && <KeyRoundIcon className="-ml-1 mr-1 h-5 w-5" />}
@@ -417,6 +417,7 @@ export const DirectTemplateSigningForm = ({
<SignaturePadDialog
className="mt-2"
disabled={isSubmitting}
fullName={fullName}
value={signature ?? ''}
onChange={(value) => setSignature(value)}
typedSignatureEnabled={template.templateMeta?.typedSignatureEnabled}
@@ -433,7 +434,7 @@ export const DirectTemplateSigningForm = ({
<div className="mt-4 flex gap-x-4">
<Button
className="dark:bg-muted dark:hover:bg-muted/80 w-full bg-black/5 hover:bg-black/10"
className="w-full bg-black/5 hover:bg-black/10 dark:bg-muted dark:hover:bg-muted/80"
size="lg"
variant="secondary"
disabled={isSubmitting}
@@ -280,6 +280,7 @@ export const DocumentSigningForm = ({
<SignaturePadDialog
className="mt-2"
disabled={isSubmitting}
fullName={fullName}
value={signature ?? ''}
onChange={(v) => setSignature(v ?? '')}
typedSignatureEnabled={document.documentMeta?.typedSignatureEnabled}
@@ -56,8 +56,11 @@ export const DocumentSigningSignatureField = ({
const containerRef = useRef<HTMLDivElement>(null);
const [fontSize, setFontSize] = useState(2);
const { signature: providedSignature, setSignature: setProvidedSignature } =
useRequiredDocumentSigningContext();
const {
fullName,
signature: providedSignature,
setSignature: setProvidedSignature,
} = useRequiredDocumentSigningContext();
const { executeActionAuthProcedure } = useRequiredDocumentSigningAuthContext();
@@ -236,13 +239,13 @@ export const DocumentSigningSignatureField = ({
type="Signature"
>
{isLoading && (
<div className="bg-background absolute inset-0 flex items-center justify-center rounded-md">
<Loader className="text-primary h-5 w-5 animate-spin md:h-8 md:w-8" />
<div className="absolute inset-0 flex items-center justify-center rounded-md bg-background">
<Loader className="h-5 w-5 animate-spin text-primary md:h-8 md:w-8" />
</div>
)}
{state === 'empty' && (
<p className="group-hover:text-primary font-signature text-muted-foreground group-hover:text-recipient-green text-[clamp(0.575rem,25cqw,1.2rem)] text-xl duration-200">
<p className="font-signature text-[clamp(0.575rem,25cqw,1.2rem)] text-xl text-muted-foreground duration-200 group-hover:text-primary group-hover:text-recipient-green">
<Trans>Signature</Trans>
</p>
)}
@@ -259,7 +262,7 @@ export const DocumentSigningSignatureField = ({
<div ref={containerRef} className="flex h-full w-full items-center justify-center p-2">
<p
ref={signatureRef}
className="font-signature text-muted-foreground w-full overflow-hidden break-all text-center leading-tight duration-200"
className="w-full overflow-hidden break-all text-center font-signature leading-tight text-muted-foreground duration-200"
style={{ fontSize: `${fontSize}rem` }}
>
{signature?.typedSignature}
@@ -272,12 +275,13 @@ export const DocumentSigningSignatureField = ({
<DialogTitle>
<Trans>
Sign as {recipient.name}{' '}
<div className="text-muted-foreground h-5">({recipient.email})</div>
<div className="h-5 text-muted-foreground">({recipient.email})</div>
</Trans>
</DialogTitle>
<SignaturePad
className="mt-2"
fullName={fullName}
value={localSignature ?? ''}
onChange={({ value }) => setLocalSignature(value)}
typedSignatureEnabled={typedSignatureEnabled}
@@ -41,7 +41,7 @@ export default function EnvelopeSignerForm() {
if (recipient.role === RecipientRole.ASSISTANT) {
return (
<fieldset className="embed--DocumentWidgetForm dark:bg-background border-border rounded-2xl sm:border sm:p-3">
<fieldset className="embed--DocumentWidgetForm rounded-2xl border-border sm:border sm:p-3 dark:bg-background">
<RadioGroup
className="gap-0 space-y-2 shadow-none sm:space-y-3"
value={selectedAssistantRecipient?.id?.toString()}
@@ -54,7 +54,7 @@ export default function EnvelopeSignerForm() {
.map((r) => (
<div
key={r.id}
className="bg-widget border-border relative flex flex-col gap-4 rounded-lg border p-4"
className="relative flex flex-col gap-4 rounded-lg border border-border bg-widget p-4"
>
<div className="flex items-center justify-between">
<div className="flex items-center gap-3">
@@ -69,15 +69,15 @@ export default function EnvelopeSignerForm() {
{r.name}
{r.id === recipient.id && (
<span className="text-muted-foreground ml-2">
<span className="ml-2 text-muted-foreground">
<Trans>(You)</Trans>
</span>
)}
</Label>
<p className="text-muted-foreground text-xs">{r.email}</p>
<p className="text-xs text-muted-foreground">{r.email}</p>
</div>
</div>
<div className="text-muted-foreground text-xs leading-[inherit]">
<div className="text-xs leading-[inherit] text-muted-foreground">
<Plural
value={assistantFields.filter((field) => field.recipientId === r.id).length}
one="# field"
@@ -103,7 +103,7 @@ export default function EnvelopeSignerForm() {
<Input
type="text"
id="full-name"
className="bg-background mt-2"
className="mt-2 bg-background"
value={fullName}
disabled={isNameLocked}
onChange={(e) => !isNameLocked && setFullName(e.target.value.trimStart())}
@@ -119,6 +119,7 @@ export default function EnvelopeSignerForm() {
<SignaturePadDialog
className="mt-2"
disabled={isSubmitting}
fullName={fullName}
value={signature ?? ''}
onChange={(v) => setSignature(v ?? '')}
typedSignatureEnabled={envelope.documentMeta.typedSignatureEnabled}
@@ -374,6 +374,7 @@ export default function EnvelopeSignerPageRenderer() {
.with({ type: FieldType.SIGNATURE }, (field) => {
handleSignatureFieldClick({
field,
fullName,
signature,
typedSignatureEnabled: envelope.documentMeta.typedSignatureEnabled,
uploadSignatureEnabled: envelope.documentMeta.uploadSignatureEnabled,
@@ -2,6 +2,7 @@ import { useEffect, useMemo, useState, useTransition } from 'react';
import { msg } from '@lingui/core/macro';
import { useLingui } from '@lingui/react';
import { Trans } from '@lingui/react/macro';
import type { Role, Subscription } from '@prisma/client';
import { Edit, Loader } from 'lucide-react';
import { Link } from 'react-router';
@@ -82,7 +83,7 @@ export const AdminDashboardUsersTable = ({
<Button className="w-24" asChild>
<Link to={`/admin/users/${row.original.id}`}>
<Edit className="-ml-1 mr-2 h-4 w-4" />
Edit
<Trans>Edit</Trans>
</Link>
</Button>
);
@@ -19,6 +19,7 @@ import { TableCell } from '@documenso/ui/primitives/table';
export type DocumentLogsTableProps = {
documentId: number;
userId?: number;
};
const dateFormat: DateTimeFormatOptions = {
@@ -26,7 +27,7 @@ const dateFormat: DateTimeFormatOptions = {
hourCycle: 'h12',
};
export const DocumentLogsTable = ({ documentId }: DocumentLogsTableProps) => {
export const DocumentLogsTable = ({ documentId, userId }: DocumentLogsTableProps) => {
const { _, i18n } = useLingui();
const [searchParams] = useSearchParams();
@@ -93,7 +94,9 @@ export const DocumentLogsTable = ({ documentId }: DocumentLogsTableProps) => {
{
header: _(msg`Action`),
accessorKey: 'type',
cell: ({ row }) => <span>{formatDocumentAuditLogAction(_, row.original).description}</span>,
cell: ({ row }) => (
<span>{formatDocumentAuditLogAction(_, row.original, userId).description}</span>
),
},
{
header: _(msg`IP Address`),
@@ -82,7 +82,9 @@ export const OrganisationGroupsDataTable = () => {
cell: ({ row }) => (
<div className="flex justify-end space-x-2">
<Button asChild variant="outline">
<Link to={`/o/${organisation.url}/settings/groups/${row.original.id}`}>Manage</Link>
<Link to={`/o/${organisation.url}/settings/groups/${row.original.id}`}>
<Trans>Manage</Trans>
</Link>
</Button>
<OrganisationGroupDeleteDialog
@@ -120,7 +120,9 @@ export default function OrganisationSettingsTeamsPage() {
</div>
<Button asChild>
<Link to={`/o/${organisation.url}/settings`}>Manage Organisation</Link>
<Link to={`/o/${organisation.url}/settings`}>
<Trans>Manage Organisation</Trans>
</Link>
</Button>
</div>
@@ -57,6 +57,7 @@ export default function OrganisationSettingsDocumentPage() {
includeSigningCertificate,
includeAuditLog,
signatureTypes,
delegateDocumentOwnership,
aiFeaturesEnabled,
} = data;
@@ -85,6 +86,7 @@ export default function OrganisationSettingsDocumentPage() {
typedSignatureEnabled: signatureTypes.includes(DocumentSignatureType.TYPE),
uploadSignatureEnabled: signatureTypes.includes(DocumentSignatureType.UPLOAD),
drawSignatureEnabled: signatureTypes.includes(DocumentSignatureType.DRAW),
delegateDocumentOwnership: delegateDocumentOwnership,
aiFeaturesEnabled,
},
});
@@ -75,11 +75,12 @@ export async function loader({ params, request }: Route.LoaderArgs) {
},
recipients: envelope.recipients,
documentRootPath,
userId: user.id,
};
}
export default function DocumentsLogsPage({ loaderData }: Route.ComponentProps) {
const { document, recipients, documentRootPath } = loaderData;
const { document, recipients, documentRootPath, userId } = loaderData;
const { _, i18n } = useLingui();
@@ -171,15 +172,15 @@ export default function DocumentsLogsPage({ loaderData }: Route.ComponentProps)
<section className="mt-6">
<Card className="grid grid-cols-1 gap-4 p-4 sm:grid-cols-2" degrees={45} gradient>
{documentInformation.map((info, i) => (
<div className="text-foreground text-sm" key={i}>
<div className="text-sm text-foreground" key={i}>
<h3 className="font-semibold">{_(info.description)}</h3>
<p className="text-muted-foreground truncate">{info.value}</p>
<p className="truncate text-muted-foreground">{info.value}</p>
</div>
))}
<div className="text-foreground text-sm">
<div className="text-sm text-foreground">
<h3 className="font-semibold">Recipients</h3>
<ul className="text-muted-foreground list-inside list-disc">
<ul className="list-inside list-disc text-muted-foreground">
{recipients.map((recipient) => (
<li key={`recipient-${recipient.id}`}>
<span>{formatRecipientText(recipient)}</span>
@@ -191,7 +192,7 @@ export default function DocumentsLogsPage({ loaderData }: Route.ComponentProps)
</section>
<section className="mt-6">
<DocumentLogsTable documentId={document.id} />
<DocumentLogsTable documentId={document.id} userId={userId} />
</section>
</div>
);
@@ -50,6 +50,7 @@ export default function TeamsSettingsPage() {
includeSigningCertificate,
includeAuditLog,
signatureTypes,
delegateDocumentOwnership,
aiFeaturesEnabled,
} = data;
@@ -75,6 +76,7 @@ export default function TeamsSettingsPage() {
uploadSignatureEnabled: signatureTypes.includes(DocumentSignatureType.UPLOAD),
drawSignatureEnabled: signatureTypes.includes(DocumentSignatureType.DRAW),
}),
delegateDocumentOwnership: delegateDocumentOwnership,
},
});
@@ -10,6 +10,7 @@ import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-
import { unsafeGetEntireEnvelope } from '@documenso/lib/server-only/admin/get-entire-document';
import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt';
import { findDocumentAuditLogs } from '@documenso/lib/server-only/document/find-document-audit-logs';
import { getOrganisationClaimByTeamId } from '@documenso/lib/server-only/organisation/get-organisation-claims';
import { mapSecondaryIdToDocumentId } from '@documenso/lib/utils/envelope';
import { getTranslations } from '@documenso/lib/utils/i18n';
import { Card, CardContent } from '@documenso/ui/primitives/card';
@@ -53,6 +54,8 @@ export async function loader({ request }: Route.LoaderArgs) {
throw redirect('/');
}
const organisationClaim = await getOrganisationClaimByTeamId({ teamId: envelope.teamId });
const documentLanguage = ZSupportedLanguageCodeSchema.parse(envelope.documentMeta?.language);
const { data: auditLogs } = await findDocumentAuditLogs({
@@ -81,6 +84,7 @@ export async function loader({ request }: Route.LoaderArgs) {
deletedAt: envelope.deletedAt,
documentMeta: envelope.documentMeta,
},
hidePoweredBy: organisationClaim.flags.hidePoweredBy,
documentLanguage,
messages,
};
@@ -95,7 +99,7 @@ export async function loader({ request }: Route.LoaderArgs) {
* Update: Maybe <Trans> tags work now after RR7 migration.
*/
export default function AuditLog({ loaderData }: Route.ComponentProps) {
const { auditLogs, document, documentLanguage, messages } = loaderData;
const { auditLogs, document, documentLanguage, hidePoweredBy, messages } = loaderData;
const { i18n, _ } = useLingui();
@@ -188,11 +192,13 @@ export default function AuditLog({ loaderData }: Route.ComponentProps) {
<InternalAuditLogTable logs={auditLogs} />
</div>
<div className="my-8 flex-row-reverse">
<div className="flex items-end justify-end gap-x-4">
<BrandingLogo className="max-h-6 print:max-h-4" />
{!hidePoweredBy && (
<div className="my-8 flex-row-reverse">
<div className="flex items-end justify-end gap-x-4">
<BrandingLogo className="max-h-6 print:max-h-4" />
</div>
</div>
</div>
)}
</div>
);
}
@@ -185,6 +185,9 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
(log) =>
log.type === DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT && log.data.recipientId === recipientId,
),
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT]: auditLogs[
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT
].filter((log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT),
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED]: auditLogs[
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED
].filter(
@@ -245,11 +248,11 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
<TableCell truncate={false} className="w-[min-content] max-w-[220px] align-top">
<div className="hyphens-auto break-words font-medium">{recipient.name}</div>
<div className="break-all">{recipient.email}</div>
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
{_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)}
</p>
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Authentication Level`)}:</span>{' '}
<span className="block">{getAuthenticationLevel(recipient.id)}</span>
</p>
@@ -273,13 +276,13 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
)}
{signature.signature?.typedSignature && (
<p className="font-signature text-center text-sm">
<p className="text-center font-signature text-sm">
{signature.signature?.typedSignature}
</p>
)}
</div>
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Signature ID`)}:</span>{' '}
<span className="block font-mono uppercase">
{signature.secondaryId}
@@ -290,14 +293,14 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
<p className="text-muted-foreground">N/A</p>
)}
<p className="text-muted-foreground mt-2 text-sm print:text-xs">
<p className="mt-2 text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`IP Address`)}:</span>{' '}
<span className="inline-block">
{logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.ipAddress ?? _(msg`Unknown`)}
</span>
</p>
<p className="text-muted-foreground mt-1 text-sm print:text-xs">
<p className="mt-1 text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Device`)}:</span>{' '}
<span className="inline-block">
{getDevice(logs.DOCUMENT_RECIPIENT_COMPLETED[0]?.userAgent)}
@@ -307,18 +310,22 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
<TableCell truncate={false} className="w-[min-content] align-top">
<div className="space-y-1">
<p className="text-muted-foreground text-sm print:text-xs">
<p className="text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Sent`)}:</span>{' '}
<span className="inline-block">
{logs.EMAIL_SENT[0]
? DateTime.fromJSDate(logs.EMAIL_SENT[0].createdAt)
.setLocale(APP_I18N_OPTIONS.defaultLocale)
.toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)')
: _(msg`Unknown`)}
: logs.DOCUMENT_SENT[0]
? DateTime.fromJSDate(logs.DOCUMENT_SENT[0].createdAt)
.setLocale(APP_I18N_OPTIONS.defaultLocale)
.toFormat('yyyy-MM-dd hh:mm:ss a (ZZZZ)')
: _(msg`Unknown`)}
</span>
</p>
<p className="text-muted-foreground text-sm print:text-xs">
<p className="text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Viewed`)}:</span>{' '}
<span className="inline-block">
{logs.DOCUMENT_OPENED[0]
@@ -330,7 +337,7 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
</p>
{logs.DOCUMENT_RECIPIENT_REJECTED[0] ? (
<p className="text-muted-foreground text-sm print:text-xs">
<p className="text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Rejected`)}:</span>{' '}
<span className="inline-block">
{logs.DOCUMENT_RECIPIENT_REJECTED[0]
@@ -341,7 +348,7 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
</span>
</p>
) : (
<p className="text-muted-foreground text-sm print:text-xs">
<p className="text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Signed`)}:</span>{' '}
<span className="inline-block">
{logs.DOCUMENT_RECIPIENT_COMPLETED[0]
@@ -355,7 +362,7 @@ export default function SigningCertificate({ loaderData }: Route.ComponentProps)
</p>
)}
<p className="text-muted-foreground text-sm print:text-xs">
<p className="text-sm text-muted-foreground print:text-xs">
<span className="font-medium">{_(msg`Reason`)}:</span>{' '}
<span className="inline-block">
{recipient.signingStatus === SigningStatus.REJECTED
@@ -115,7 +115,9 @@ export default function RejectedSigningPage({ loaderData }: Route.ComponentProps
{user && (
<Button className="mt-6" asChild>
<Link to={`/`}>Return Home</Link>
<Link to={`/`}>
<Trans>Return Home</Trans>
</Link>
</Button>
)}
</div>
@@ -98,7 +98,9 @@ export default function WaitingForTurnToSignPage({ loaderData }: Route.Component
</Button>
) : (
<Button variant="link" asChild>
<Link to="/">Return Home</Link>
<Link to="/">
<Trans>Return Home</Trans>
</Link>
</Button>
)}
</div>
@@ -193,11 +193,11 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
<CardContent className="space-y-6">
{/* Current User Section */}
<div className="space-y-3">
<h3 className="text-muted-foreground flex items-center gap-2 font-semibold">
<h3 className="flex items-center gap-2 font-semibold text-muted-foreground">
<UserCircle2 className="h-4 w-4" />
<Trans>Your Account</Trans>
</h3>
<div className="bg-muted/50 flex items-center justify-between gap-3 rounded-lg p-3">
<div className="flex items-center justify-between gap-3 rounded-lg bg-muted/50 p-3">
<AvatarWithText
avatarSrc={formatAvatarUrl(user.avatar)}
avatarFallback={extractInitials(user.name || user.email)}
@@ -215,11 +215,11 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
{/* Organisation Section */}
<div className="space-y-3">
<h3 className="text-muted-foreground flex items-center gap-2 font-semibold">
<h3 className="flex items-center gap-2 font-semibold text-muted-foreground">
<Building2 className="h-4 w-4" />
<Trans>Requesting Organisation</Trans>
</h3>
<div className="bg-muted/50 flex items-center justify-between gap-3 rounded-lg p-3">
<div className="flex items-center justify-between gap-3 rounded-lg bg-muted/50 p-3">
<AvatarWithText
avatarSrc={formatAvatarUrl(organisation.avatar)}
avatarFallback={extractInitials(organisation.name)}
@@ -237,7 +237,7 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
{/* Warnings Section */}
<div className="space-y-3">
<h3 className="text-muted-foreground flex items-center gap-2 font-semibold">
<h3 className="flex items-center gap-2 font-semibold text-muted-foreground">
<AlertTriangle className="h-4 w-4" />
<Trans>Important: What This Means</Trans>
</h3>
@@ -253,7 +253,7 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
<Eye className="mt-0.5 h-4 w-4 flex-shrink-0" />
<span>
<Trans>
<span className="text-muted-foreground font-semibold">
<span className="font-semibold text-muted-foreground">
Full account access:
</span>{' '}
View all your profile information, settings, and activity
@@ -264,7 +264,7 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
<Settings className="mt-0.5 h-4 w-4 flex-shrink-0" />
<span>
<Trans>
<span className="text-muted-foreground font-semibold">
<span className="font-semibold text-muted-foreground">
Account management:
</span>{' '}
Modify your account settings, permissions, and preferences
@@ -275,7 +275,7 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
<Database className="mt-0.5 h-4 w-4 flex-shrink-0" />
<span>
<Trans>
<span className="text-muted-foreground font-semibold">Data access:</span>{' '}
<span className="font-semibold text-muted-foreground">Data access:</span>{' '}
Access all data associated with your account
</Trans>
</span>
@@ -304,7 +304,7 @@ export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Rou
/>
<label
className="text-muted-foreground ml-2 flex flex-row items-center text-sm"
className="ml-2 flex flex-row items-center text-sm text-muted-foreground"
htmlFor={`accept-conditions`}
>
<Trans>I agree to link my account with this organization</Trans>
@@ -8,6 +8,7 @@ import { SignFieldSignatureDialog } from '~/components/dialogs/sign-field-signat
type HandleSignatureFieldClickOptions = {
field: TFieldSignature;
fullName?: string;
signature: string | null;
typedSignatureEnabled?: boolean;
uploadSignatureEnabled?: boolean;
@@ -17,8 +18,14 @@ type HandleSignatureFieldClickOptions = {
export const handleSignatureFieldClick = async (
options: HandleSignatureFieldClickOptions,
): Promise<Extract<TSignEnvelopeFieldValue, { type: typeof FieldType.SIGNATURE }> | null> => {
const { field, signature, typedSignatureEnabled, uploadSignatureEnabled, drawSignatureEnabled } =
options;
const {
field,
fullName,
signature,
typedSignatureEnabled,
uploadSignatureEnabled,
drawSignatureEnabled,
} = options;
if (field.type !== FieldType.SIGNATURE) {
throw new AppError(AppErrorCode.INVALID_REQUEST, {
@@ -37,6 +44,7 @@ export const handleSignatureFieldClick = async (
if (!signatureToInsert) {
signatureToInsert = await SignFieldSignatureDialog.call({
fullName,
typedSignatureEnabled,
uploadSignatureEnabled,
drawSignatureEnabled,
+1 -1
View File
@@ -107,5 +107,5 @@
"vite-plugin-babel-macros": "^1.0.6",
"vite-tsconfig-paths": "^5.1.4"
},
"version": "2.2.6"
"version": "2.3.2"
}
+5
View File
@@ -0,0 +1,5 @@
ARG TAG=latest
FROM documenso/documenso:${TAG}
# Install @playwright/browser-chromium which bundles Playwright + Chromium
RUN npm install @playwright/browser-chromium
+482 -440
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -5,7 +5,7 @@
"apps/*",
"packages/*"
],
"version": "2.2.6",
"version": "2.3.2",
"scripts": {
"postinstall": "patch-package",
"build": "turbo run build",
@@ -51,9 +51,9 @@
"@commitlint/config-conventional": "^20.0.0",
"@lingui/cli": "^5.6.0",
"@prisma/client": "^6.19.0",
"@trpc/client": "11.7.1",
"@trpc/react-query": "11.7.1",
"@trpc/server": "11.7.1",
"@trpc/client": "11.8.1",
"@trpc/react-query": "11.8.1",
"@trpc/server": "11.8.1",
"@ts-rest/core": "^3.52.1",
"@ts-rest/open-api": "^3.52.1",
"@ts-rest/serverless": "^3.52.1",
@@ -1,4 +1,4 @@
import { expect, test } from '@playwright/test';
import { type APIRequestContext, expect, test } from '@playwright/test';
import type { Team, User } from '@prisma/client';
import fs from 'node:fs';
import path from 'node:path';
@@ -27,6 +27,7 @@ import type {
import type { TDistributeEnvelopeRequest } from '@documenso/trpc/server/envelope-router/distribute-envelope.types';
import type { TCreateEnvelopeRecipientsRequest } from '@documenso/trpc/server/envelope-router/envelope-recipients/create-envelope-recipients.types';
import type { TUpdateEnvelopeRecipientsRequest } from '@documenso/trpc/server/envelope-router/envelope-recipients/update-envelope-recipients.types';
import type { TFindEnvelopesResponse } from '@documenso/trpc/server/envelope-router/find-envelopes.types';
import type { TGetEnvelopeResponse } from '@documenso/trpc/server/envelope-router/get-envelope.types';
import type { TUpdateEnvelopeRequest } from '@documenso/trpc/server/envelope-router/update-envelope.types';
@@ -562,6 +563,200 @@ test.describe('API V2 Envelopes', () => {
});
});
test.describe('Envelope find endpoint', () => {
const createEnvelope = async (
request: APIRequestContext,
token: string,
payload: TCreateEnvelopePayload,
) => {
const formData = new FormData();
formData.append('payload', JSON.stringify(payload));
const pdfData = fs.readFileSync(
path.join(__dirname, '../../../../../assets/field-font-alignment.pdf'),
);
formData.append('files', new File([pdfData], 'test.pdf', { type: 'application/pdf' }));
const res = await request.post(`${baseUrl}/envelope/create`, {
headers: { Authorization: `Bearer ${token}` },
multipart: formData,
});
expect(res.ok()).toBeTruthy();
return (await res.json()) as TCreateEnvelopeResponse;
};
test('should find envelopes with pagination', async ({ request }) => {
// Create 3 envelopes
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Document 1',
});
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Document 2',
});
await createEnvelope(request, tokenA, {
type: EnvelopeType.TEMPLATE,
title: 'Template 1',
});
// Find all envelopes
const res = await request.get(`${baseUrl}/envelope`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const response = (await res.json()) as TFindEnvelopesResponse;
expect(response.data.length).toBe(3);
expect(response.count).toBe(3);
expect(response.currentPage).toBe(1);
expect(response.totalPages).toBe(1);
// Test pagination
const paginatedRes = await request.get(`${baseUrl}/envelope?perPage=2&page=1`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(paginatedRes.ok()).toBeTruthy();
const paginatedResponse = (await paginatedRes.json()) as TFindEnvelopesResponse;
expect(paginatedResponse.data.length).toBe(2);
expect(paginatedResponse.count).toBe(3);
expect(paginatedResponse.totalPages).toBe(2);
});
test('should filter envelopes by type', async ({ request }) => {
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Document Only',
});
await createEnvelope(request, tokenA, {
type: EnvelopeType.TEMPLATE,
title: 'Template Only',
});
// Filter by DOCUMENT type
const documentRes = await request.get(`${baseUrl}/envelope?type=DOCUMENT`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(documentRes.ok()).toBeTruthy();
const documentResponse = (await documentRes.json()) as TFindEnvelopesResponse;
expect(documentResponse.data.every((e) => e.type === EnvelopeType.DOCUMENT)).toBe(true);
// Filter by TEMPLATE type
const templateRes = await request.get(`${baseUrl}/envelope?type=TEMPLATE`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(templateRes.ok()).toBeTruthy();
const templateResponse = (await templateRes.json()) as TFindEnvelopesResponse;
expect(templateResponse.data.every((e) => e.type === EnvelopeType.TEMPLATE)).toBe(true);
});
test('should filter envelopes by status', async ({ request }) => {
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Draft Document',
});
// Filter by DRAFT status (default for new envelopes)
const res = await request.get(`${baseUrl}/envelope?status=DRAFT`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
const response = (await res.json()) as TFindEnvelopesResponse;
expect(response.data.every((e) => e.status === DocumentStatus.DRAFT)).toBe(true);
});
test('should search envelopes by query', async ({ request }) => {
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Unique Searchable Title',
});
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Another Document',
});
const res = await request.get(`${baseUrl}/envelope?query=Unique%20Searchable`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
const response = (await res.json()) as TFindEnvelopesResponse;
expect(response.data.length).toBe(1);
expect(response.data[0].title).toBe('Unique Searchable Title');
});
test('should not return envelopes from other users', async ({ request }) => {
// Create envelope for userA
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'UserA Document',
});
// Create envelope for userB
await createEnvelope(request, tokenB, {
type: EnvelopeType.DOCUMENT,
title: 'UserB Document',
});
// userA should only see their own envelopes
const resA = await request.get(`${baseUrl}/envelope`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(resA.ok()).toBeTruthy();
const responseA = (await resA.json()) as TFindEnvelopesResponse;
expect(responseA.data.every((e) => e.title !== 'UserB Document')).toBe(true);
// userB should only see their own envelopes
const resB = await request.get(`${baseUrl}/envelope`, {
headers: { Authorization: `Bearer ${tokenB}` },
});
expect(resB.ok()).toBeTruthy();
const responseB = (await resB.json()) as TFindEnvelopesResponse;
expect(responseB.data.every((e) => e.title !== 'UserA Document')).toBe(true);
});
test('should return envelope with expected schema fields', async ({ request }) => {
await createEnvelope(request, tokenA, {
type: EnvelopeType.DOCUMENT,
title: 'Schema Test Document',
});
const res = await request.get(`${baseUrl}/envelope`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
const response = (await res.json()) as TFindEnvelopesResponse;
const envelope = response.data.find((e) => e.title === 'Schema Test Document');
expect(envelope).toBeDefined();
expect(envelope?.id).toBeDefined();
expect(envelope?.type).toBe(EnvelopeType.DOCUMENT);
expect(envelope?.status).toBe(DocumentStatus.DRAFT);
expect(envelope?.recipients).toBeDefined();
expect(envelope?.user).toBeDefined();
expect(envelope?.team).toBeDefined();
});
});
test.describe('Empty recipient tests', () => {
test('Create template envelope with empty email recipient', async ({ request }) => {
const payload = {
@@ -12,14 +12,17 @@ import {
} from '@documenso/lib/utils/envelope';
import { prisma } from '@documenso/prisma';
import {
DocumentStatus,
DocumentVisibility,
EnvelopeType,
FieldType,
FolderType,
Prisma,
ReadStatus,
RecipientRole,
SendStatus,
SigningStatus,
TeamMemberRole,
} from '@documenso/prisma/client';
import {
seedBlankDocument,
@@ -28,14 +31,18 @@ import {
seedPendingDocument,
} from '@documenso/prisma/seed/documents';
import { seedBlankFolder } from '@documenso/prisma/seed/folders';
import { seedTeamMember } from '@documenso/prisma/seed/teams';
import { seedBlankTemplate, seedTemplate } from '@documenso/prisma/seed/templates';
import { seedUser } from '@documenso/prisma/seed/users';
import type { TCreateEnvelopeItemsPayload } from '@documenso/trpc/server/envelope-router/create-envelope-items.types';
import type { TFindEnvelopesResponse } from '@documenso/trpc/server/envelope-router/find-envelopes.types';
import type {
TUseEnvelopePayload,
TUseEnvelopeResponse,
} from '@documenso/trpc/server/envelope-router/use-envelope.types';
import { apiSignin } from '../../fixtures/authentication';
const WEBAPP_BASE_URL = NEXT_PUBLIC_WEBAPP_URL();
test.describe.configure({
@@ -2990,6 +2997,566 @@ test.describe('Document API V2', () => {
});
});
test.describe('Envelope get-many endpoint', () => {
test('should block unauthorized access to envelope get-many endpoint', async ({
request,
}) => {
const doc1 = await seedBlankDocument(userA, teamA.id);
const doc2 = await seedBlankDocument(userA, teamA.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenB}` },
data: {
ids: {
type: 'envelopeId',
ids: [doc1.id, doc2.id],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data).toEqual([]);
});
test('should allow authorized access to envelope get-many endpoint', async ({ request }) => {
const doc1 = await seedBlankDocument(userA, teamA.id);
const doc2 = await seedBlankDocument(userA, teamA.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenA}` },
data: {
ids: {
type: 'envelopeId',
ids: [doc1.id, doc2.id],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data.length).toBe(2);
expect(data.map((d: { id: string }) => d.id).sort()).toEqual([doc1.id, doc2.id].sort());
});
test('should only return authorized envelopes when mixing owned and unowned', async ({
request,
}) => {
const docA = await seedBlankDocument(userA, teamA.id);
const docB = await seedBlankDocument(userB, teamB.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenA}` },
data: {
ids: {
type: 'envelopeId',
ids: [docA.id, docB.id],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data.length).toBe(1);
expect(data[0].id).toBe(docA.id);
});
test('should block unauthorized access with documentId type', async ({ request }) => {
const doc1 = await seedBlankDocument(userA, teamA.id);
const doc2 = await seedBlankDocument(userA, teamA.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenB}` },
data: {
ids: {
type: 'documentId',
ids: [
mapSecondaryIdToDocumentId(doc1.secondaryId),
mapSecondaryIdToDocumentId(doc2.secondaryId),
],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data).toEqual([]);
});
test('should allow authorized access with documentId type', async ({ request }) => {
const doc1 = await seedBlankDocument(userA, teamA.id);
const doc2 = await seedBlankDocument(userA, teamA.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenA}` },
data: {
ids: {
type: 'documentId',
ids: [
mapSecondaryIdToDocumentId(doc1.secondaryId),
mapSecondaryIdToDocumentId(doc2.secondaryId),
],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data.length).toBe(2);
});
test('should block unauthorized access with templateId type', async ({ request }) => {
const template1 = await seedBlankTemplate(userA, teamA.id);
const template2 = await seedBlankTemplate(userA, teamA.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenB}` },
data: {
ids: {
type: 'templateId',
ids: [
mapSecondaryIdToTemplateId(template1.secondaryId),
mapSecondaryIdToTemplateId(template2.secondaryId),
],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data).toEqual([]);
});
test('should allow authorized access with templateId type', async ({ request }) => {
const template1 = await seedBlankTemplate(userA, teamA.id);
const template2 = await seedBlankTemplate(userA, teamA.id);
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenA}` },
data: {
ids: {
type: 'templateId',
ids: [
mapSecondaryIdToTemplateId(template1.secondaryId),
mapSecondaryIdToTemplateId(template2.secondaryId),
],
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const { data } = await res.json();
expect(data.length).toBe(2);
});
test('should reject requests exceeding max ID limit', async ({ request }) => {
const ids = Array.from({ length: 21 }, () => 'envelope_fake123');
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/envelope/get-many`, {
headers: { Authorization: `Bearer ${tokenA}` },
data: {
ids: {
type: 'envelopeId',
ids,
},
},
});
expect(res.ok()).toBeFalsy();
expect(res.status()).toBe(400);
});
});
test.describe('Envelope get-many tRPC endpoint (teamId manipulation)', () => {
test('should block access when user manipulates x-team-id to another team', async ({
page,
}) => {
// Create documents for userA in teamA
const doc1 = await seedBlankDocument(userA, teamA.id);
const doc2 = await seedBlankDocument(userA, teamA.id);
// Sign in as userB
await apiSignin({ page, email: userB.email });
const res = await page
.context()
.request.post(`${WEBAPP_BASE_URL}/api/trpc/envelope.getMany`, {
headers: {
'x-team-id': String(teamA.id),
},
data: {
json: {
ids: {
type: 'envelopeId',
ids: [doc1.id, doc2.id],
},
},
},
});
// Make tRPC request with manipulated x-team-id pointing to teamA (which userB doesn't belong to)
expect(res.ok()).toBeFalsy();
// Team not found
expect(res.status()).toBe(404);
});
test('should allow access when user uses their own team id', async ({ page }) => {
// Create documents for userA in teamA
const doc1 = await seedBlankDocument(userA, teamA.id);
const doc2 = await seedBlankDocument(userA, teamA.id);
// Sign in as userA
await apiSignin({ page, email: userA.email });
const res = await page
.context()
.request.post(`${WEBAPP_BASE_URL}/api/trpc/envelope.getMany`, {
headers: {
'Content-Type': 'application/json',
'x-team-id': String(teamA.id),
},
data: {
json: {
ids: {
type: 'envelopeId',
ids: [doc1.id, doc2.id],
},
},
},
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const data = await res.json();
const items = data.result.data.json.data;
expect(items.length).toBe(2);
expect(items.map((d: { id: string }) => d.id).sort()).toEqual([doc1.id, doc2.id].sort());
});
test('should block access when switching team id mid-request to access other team data', async ({
page,
}) => {
// Create a document for userA in teamA
const docA = await seedBlankDocument(userA, teamA.id);
// Create a document for userB in teamB
const docB = await seedBlankDocument(userB, teamB.id);
// Sign in as userB
await apiSignin({ page, email: userB.email });
const res = await page
.context()
.request.post(`${WEBAPP_BASE_URL}/api/trpc/envelope.getMany`, {
headers: {
'x-team-id': String(teamA.id),
},
data: {
json: {
ids: {
type: 'envelopeId',
ids: [docA.id, docB.id],
},
},
},
});
// UserB tries to access both documents by manipulating teamId to teamA
// Should fail - userB is not a member of teamA
expect(res.ok()).toBeFalsy();
// Team not found
expect(res.status()).toBe(404);
});
});
test.describe('Envelope find endpoint', () => {
test('should block unauthorized access to envelope find endpoint', async ({ request }) => {
await seedBlankDocument(userA, teamA.id);
const res = await request.get(`${WEBAPP_BASE_URL}/api/v2-beta/envelope`, {
headers: { Authorization: `Bearer ${tokenB}` },
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const data = (await res.json()) as TFindEnvelopesResponse;
expect(data.data.every((doc) => doc.userId !== userA.id)).toBe(true);
});
test('should allow authorized access to envelope find endpoint', async ({ request }) => {
await seedBlankDocument(userA, teamA.id);
const res = await request.get(`${WEBAPP_BASE_URL}/api/v2-beta/envelope`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const data = (await res.json()) as TFindEnvelopesResponse;
expect(data.data.length).toBeGreaterThan(0);
expect(data.data.some((doc) => doc.userId === userA.id)).toBe(true);
});
test('should respect team document visibility for ADMIN role', async ({ request }) => {
const adminMember = await seedTeamMember({
teamId: teamA.id,
role: TeamMemberRole.ADMIN,
});
const { token: adminToken } = await createApiToken({
userId: adminMember.id,
teamId: teamA.id,
tokenName: 'adminMember',
expiresIn: null,
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
visibility: DocumentVisibility.ADMIN,
title: 'Admin Only Document',
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
visibility: DocumentVisibility.MANAGER_AND_ABOVE,
title: 'Manager and Above Document',
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
visibility: DocumentVisibility.EVERYONE,
title: 'Everyone Document',
},
});
const res = await request.get(`${WEBAPP_BASE_URL}/api/v2-beta/envelope`, {
headers: { Authorization: `Bearer ${adminToken}` },
});
expect(res.ok()).toBeTruthy();
const data = (await res.json()) as TFindEnvelopesResponse;
const titles = data.data.map((doc) => doc.title);
expect(titles).toContain('Admin Only Document');
expect(titles).toContain('Manager and Above Document');
expect(titles).toContain('Everyone Document');
});
test('should respect team document visibility for MANAGER role', async ({ request }) => {
const managerMember = await seedTeamMember({
teamId: teamA.id,
role: TeamMemberRole.MANAGER,
});
const { token: managerToken } = await createApiToken({
userId: managerMember.id,
teamId: teamA.id,
tokenName: 'managerMember',
expiresIn: null,
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
visibility: DocumentVisibility.ADMIN,
title: 'Admin Only Document',
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
visibility: DocumentVisibility.MANAGER_AND_ABOVE,
title: 'Manager and Above Document',
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
visibility: DocumentVisibility.EVERYONE,
title: 'Everyone Document',
},
});
const res = await request.get(`${WEBAPP_BASE_URL}/api/v2-beta/envelope`, {
headers: { Authorization: `Bearer ${managerToken}` },
});
expect(res.ok()).toBeTruthy();
const data = (await res.json()) as TFindEnvelopesResponse;
const titles = data.data.map((doc) => doc.title);
expect(titles).not.toContain('Admin Only Document');
expect(titles).toContain('Manager and Above Document');
expect(titles).toContain('Everyone Document');
});
test('should filter envelopes by folderId with authorization', async ({ request }) => {
const folder = await prisma.folder.create({
data: {
userId: userA.id,
teamId: teamA.id,
name: 'Test Folder',
type: FolderType.DOCUMENT,
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
folderId: folder.id,
title: 'Document in Folder',
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
title: 'Document Not in Folder',
},
});
const resWithFolder = await request.get(
`${WEBAPP_BASE_URL}/api/v2-beta/envelope?folderId=${folder.id}`,
{
headers: { Authorization: `Bearer ${tokenA}` },
},
);
expect(resWithFolder.ok()).toBeTruthy();
const dataWithFolder = (await resWithFolder.json()) as TFindEnvelopesResponse;
expect(dataWithFolder.data.every((doc) => doc.folderId === folder.id)).toBe(true);
expect(dataWithFolder.data.some((doc) => doc.title === 'Document in Folder')).toBe(true);
const resUnauthorized = await request.get(
`${WEBAPP_BASE_URL}/api/v2-beta/envelope?folderId=${folder.id}`,
{
headers: { Authorization: `Bearer ${tokenB}` },
},
);
expect(resUnauthorized.ok()).toBeTruthy();
const dataUnauthorized = (await resUnauthorized.json()) as TFindEnvelopesResponse;
expect(
dataUnauthorized.data.every(
(doc) => doc.folderId !== folder.id || doc.userId !== userA.id,
),
).toBe(true);
});
test('should filter envelopes by type with authorization', async ({ request }) => {
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
type: EnvelopeType.DOCUMENT,
title: 'UserA Document',
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
type: EnvelopeType.TEMPLATE,
title: 'UserA Template',
},
});
await seedBlankDocument(userB, teamB.id, {
createDocumentOptions: {
type: EnvelopeType.DOCUMENT,
title: 'UserB Document',
},
});
const res = await request.get(`${WEBAPP_BASE_URL}/api/v2-beta/envelope?type=DOCUMENT`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
const data = (await res.json()) as TFindEnvelopesResponse;
expect(data.data.every((doc) => doc.type === EnvelopeType.DOCUMENT)).toBe(true);
expect(data.data.every((doc) => doc.userId === userA.id)).toBe(true);
expect(data.data.some((doc) => doc.title === 'UserA Document')).toBe(true);
expect(data.data.every((doc) => doc.title !== 'UserB Document')).toBe(true);
});
test('should filter envelopes by status with authorization', async ({ request }) => {
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
title: 'Draft Document',
status: DocumentStatus.DRAFT,
},
});
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
title: 'Completed Document',
status: DocumentStatus.COMPLETED,
},
});
await seedBlankDocument(userB, teamB.id, {
createDocumentOptions: {
title: 'UserB Draft',
status: DocumentStatus.DRAFT,
},
});
const res = await request.get(`${WEBAPP_BASE_URL}/api/v2-beta/envelope?status=DRAFT`, {
headers: { Authorization: `Bearer ${tokenA}` },
});
expect(res.ok()).toBeTruthy();
const data = (await res.json()) as TFindEnvelopesResponse;
expect(data.data.every((doc) => doc.status === DocumentStatus.DRAFT)).toBe(true);
expect(data.data.every((doc) => doc.userId === userA.id)).toBe(true);
expect(data.data.some((doc) => doc.title === 'Draft Document')).toBe(true);
expect(data.data.every((doc) => doc.title !== 'UserB Draft')).toBe(true);
expect(data.data.every((doc) => doc.title !== 'Completed Document')).toBe(true);
});
test('should search envelopes by query with authorization', async ({ request }) => {
await seedBlankDocument(userA, teamA.id, {
createDocumentOptions: {
title: 'Unique Searchable Title UserA',
},
});
await seedBlankDocument(userB, teamB.id, {
createDocumentOptions: {
title: 'Unique Searchable Title UserB',
},
});
const res = await request.get(
`${WEBAPP_BASE_URL}/api/v2-beta/envelope?query=Unique%20Searchable`,
{
headers: { Authorization: `Bearer ${tokenA}` },
},
);
expect(res.ok()).toBeTruthy();
const data = (await res.json()) as TFindEnvelopesResponse;
expect(data.data.every((doc) => doc.userId === userA.id)).toBe(true);
expect(data.data.some((doc) => doc.title.includes('UserA'))).toBe(true);
expect(data.data.every((doc) => !doc.title.includes('UserB'))).toBe(true);
});
});
test.describe('Envelope update endpoint', () => {
test('should block unauthorized access to envelope update endpoint', async ({ request }) => {
const doc = await seedBlankDocument(userA, teamA.id);
+5
View File
@@ -3,3 +3,8 @@ Copyright (c) 2023 Documenso, Inc
- The Stripe Billing Module
- Document Action Reauthentication (Passkeys and 2FA)
- 21 CFR
- Email domains
- Embed authoring
- Embed authoring white label
- Enterprise level support + possible SLAs and license changes
@@ -286,7 +286,7 @@ const detectFieldsFromPage = async ({
});
const result = await generateObject({
model: vertex('gemini-3-pro-preview'),
model: vertex('gemini-3-flash-preview'),
system: SYSTEM_PROMPT,
schema: ZSubmitDetectedFieldsInputSchema,
messages,
@@ -207,7 +207,7 @@ const detectRecipientsFromImages = async ({
});
const result = await generateObject({
model: vertex('gemini-2.5-flash'),
model: vertex('gemini-3-flash-preview'),
system: SYSTEM_PROMPT,
schema: ZDetectedRecipientsSchema,
messages,
+17 -5
View File
@@ -9,7 +9,10 @@ globalThis.Image = Image;
class SkiaCanvasFactory {
_createCanvas(width: number, height: number) {
return new Canvas(width, height);
const canvas = new Canvas(width, height);
canvas.gpu = false;
return canvas;
}
create(width: number, height: number) {
@@ -44,10 +47,12 @@ export type PdfToImagesOptions = {
export const pdfToImages = async (pdfBytes: Uint8Array, options: PdfToImagesOptions = {}) => {
const { scale = 2 } = options;
const pdf = await pdfjsLib.getDocument({
const task = await pdfjsLib.getDocument({
data: pdfBytes,
CanvasFactory: SkiaCanvasFactory,
}).promise;
});
const pdf = await task.promise;
const images = await pMap(
Array.from({ length: pdf.numPages }),
@@ -58,6 +63,8 @@ export const pdfToImages = async (pdfBytes: Uint8Array, options: PdfToImagesOpti
const viewport = page.getViewport({ scale });
const canvas = new Canvas(viewport.width, viewport.height);
canvas.gpu = false;
const canvasContext = canvas.getContext('2d');
await page.render({
@@ -68,18 +75,23 @@ export const pdfToImages = async (pdfBytes: Uint8Array, options: PdfToImagesOpti
viewport,
}).promise;
return {
const result = {
pageNumber,
image: await canvas.toBuffer('jpeg'),
width: Math.floor(viewport.width),
height: Math.floor(viewport.height),
mimeType: 'image/jpeg',
};
void page.cleanup();
return result;
},
{ concurrency: 10 },
);
void pdf.destroy();
void pdf.destroy().catch((e) => console.error(e));
void task.destroy().catch((e) => console.error(e));
return images;
};
@@ -20,6 +20,7 @@ export const getDocumentCertificateAuditLogs = async ({
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED,
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED,
DOCUMENT_AUDIT_LOG_TYPE.EMAIL_SENT,
DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT,
],
},
},
@@ -37,6 +38,9 @@ export const getDocumentCertificateAuditLogs = async ({
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED]: auditLogs.filter(
(log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_OPENED,
),
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT]: auditLogs.filter(
(log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SENT,
),
[DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED]: auditLogs.filter(
(log) => log.type === DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_FIELD_INSERTED,
),
@@ -81,6 +81,7 @@ export type CreateEnvelopeOptions = {
globalActionAuth?: TDocumentActionAuthTypes[];
recipients?: CreateEnvelopeRecipientOptions[];
folderId?: string;
delegatedDocumentOwner?: string;
};
attachments?: Array<{
label: string;
@@ -114,6 +115,7 @@ export const createEnvelope = async ({
publicTitle,
publicDescription,
visibility: visibilityOverride,
delegatedDocumentOwner,
} = data;
const team = await prisma.team.findFirst({
@@ -256,6 +258,43 @@ export const createEnvelope = async ({
? await incrementDocumentId().then((v) => v.formattedDocumentId)
: await incrementTemplateId().then((v) => v.formattedTemplateId);
const getValidatedDelegatedOwner = async () => {
if (
!settings.delegateDocumentOwnership ||
!delegatedDocumentOwner ||
requestMetadata.source === 'app'
) {
return null;
}
const delegatedOwner = await prisma.user.findFirst({
where: {
email: delegatedDocumentOwner,
},
});
if (!delegatedOwner) {
throw new AppError(AppErrorCode.UNAUTHORIZED, {
message: 'Delegated document owner must be a member of the team',
});
}
const isTeamMember = await prisma.team.findFirst({
where: buildTeamWhereQuery({ teamId, userId: delegatedOwner.id }),
});
if (!isTeamMember) {
throw new AppError(AppErrorCode.UNAUTHORIZED, {
message: 'Delegated document owner must be a member of the team',
});
}
return delegatedOwner;
};
const delegatedOwner = await getValidatedDelegatedOwner();
const envelopeOwnerId = delegatedOwner?.id ?? userId;
return await prisma.$transaction(async (tx) => {
const envelope = await tx.envelope.create({
data: {
@@ -285,7 +324,7 @@ export const createEnvelope = async ({
})),
},
},
userId,
userId: envelopeOwnerId,
teamId,
authOptions,
visibility,
@@ -393,6 +432,9 @@ export const createEnvelope = async ({
data: createDocumentAuditLogData({
type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_CREATED,
envelopeId: envelope.id,
user: {
id: envelopeOwnerId,
},
metadata: requestMetadata,
data: {
title,
@@ -403,6 +445,25 @@ export const createEnvelope = async ({
}),
});
// Create audit log for delegated owner if validation passed
if (delegatedOwner) {
await tx.documentAuditLog.create({
data: createDocumentAuditLogData({
type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_DELEGATED_OWNER_CREATED,
envelopeId: envelope.id,
user: {
id: userId,
},
metadata: requestMetadata,
data: {
delegatedOwnerName: delegatedOwner.name,
delegatedOwnerEmail: delegatedOwner.email,
teamName: team.name,
},
}),
});
}
await triggerWebhook({
event: WebhookTriggerEvents.DOCUMENT_CREATED,
data: ZWebhookDocumentSchema.parse(mapEnvelopeToWebhookDocumentPayload(createdEnvelope)),
@@ -0,0 +1,197 @@
import type {
DocumentSource,
DocumentStatus,
Envelope,
EnvelopeType,
Prisma,
} from '@prisma/client';
import { prisma } from '@documenso/prisma';
import { TEAM_DOCUMENT_VISIBILITY_MAP } from '../../constants/teams';
import type { FindResultResponse } from '../../types/search-params';
import { maskRecipientTokensForDocument } from '../../utils/mask-recipient-tokens-for-document';
import { getTeamById } from '../team/get-team';
export type FindEnvelopesOptions = {
userId: number;
teamId: number;
type?: EnvelopeType;
templateId?: number;
source?: DocumentSource;
status?: DocumentStatus;
page?: number;
perPage?: number;
orderBy?: {
column: keyof Pick<Envelope, 'createdAt'>;
direction: 'asc' | 'desc';
};
query?: string;
folderId?: string;
};
export const findEnvelopes = async ({
userId,
teamId,
type,
templateId,
source,
status,
page = 1,
perPage = 10,
orderBy,
query = '',
folderId,
}: FindEnvelopesOptions) => {
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
},
select: {
id: true,
email: true,
name: true,
},
});
const team = await getTeamById({
userId,
teamId,
});
const orderByColumn = orderBy?.column ?? 'createdAt';
const orderByDirection = orderBy?.direction ?? 'desc';
const searchFilter: Prisma.EnvelopeWhereInput = query
? {
OR: [
{ title: { contains: query, mode: 'insensitive' } },
{ externalId: { contains: query, mode: 'insensitive' } },
{ recipients: { some: { name: { contains: query, mode: 'insensitive' } } } },
{ recipients: { some: { email: { contains: query, mode: 'insensitive' } } } },
],
}
: {};
const visibilityFilter: Prisma.EnvelopeWhereInput = {
visibility: {
in: TEAM_DOCUMENT_VISIBILITY_MAP[team.currentTeamRole],
},
};
const teamEmailFilters: Prisma.EnvelopeWhereInput[] = [];
if (team.teamEmail) {
teamEmailFilters.push(
{
user: {
email: team.teamEmail.email,
},
},
{
recipients: {
some: {
email: team.teamEmail.email,
},
},
},
);
}
const whereClause: Prisma.EnvelopeWhereInput = {
AND: [
{
OR: [
{
teamId: team.id,
...visibilityFilter,
},
{
userId,
},
...teamEmailFilters,
],
},
{
folderId: folderId ?? null,
deletedAt: null,
},
searchFilter,
],
};
if (type) {
whereClause.type = type;
}
if (templateId) {
whereClause.templateId = templateId;
}
if (source) {
whereClause.source = source;
}
if (status) {
whereClause.status = status;
}
const [data, count] = await Promise.all([
prisma.envelope.findMany({
where: whereClause,
skip: Math.max(page - 1, 0) * perPage,
take: perPage,
orderBy: {
[orderByColumn]: orderByDirection,
},
include: {
user: {
select: {
id: true,
name: true,
email: true,
},
},
recipients: {
orderBy: {
id: 'asc',
},
},
team: {
select: {
id: true,
url: true,
},
},
},
}),
prisma.envelope.count({
where: whereClause,
}),
]);
const maskedData = data.map((envelope) =>
maskRecipientTokensForDocument({
document: envelope,
user,
}),
);
const mappedData = maskedData.map((envelope) => ({
...envelope,
recipients: envelope.Recipient,
user: {
id: envelope.user.id,
name: envelope.user.name || '',
email: envelope.user.email,
},
}));
return {
data: mappedData,
count,
currentPage: Math.max(page, 1),
perPage,
totalPages: Math.ceil(count / perPage),
} satisfies FindResultResponse<typeof mappedData>;
};
@@ -0,0 +1,213 @@
import type { EnvelopeType, Prisma } from '@prisma/client';
import { prisma } from '@documenso/prisma';
import { TEAM_DOCUMENT_VISIBILITY_MAP } from '../../constants/teams';
import { AppError, AppErrorCode } from '../../errors/app-error';
import type { EnvelopeIdsOptions } from '../../utils/envelope';
import { unsafeBuildEnvelopeIdsQuery } from '../../utils/envelope';
import { getTeamById } from '../team/get-team';
export type GetEnvelopesByIdsOptions = {
/**
* The envelope IDs to fetch with their type.
*/
ids: EnvelopeIdsOptions;
/**
* The user ID who has been authenticated.
*/
userId: number;
/**
* The unvalidated team ID from the request.
*/
teamId: number;
/**
* The type of envelope to get.
*
* Set to null to bypass check.
*/
type: EnvelopeType | null;
};
/**
* Fetches multiple envelopes by their IDs with proper access control.
*
* Only returns envelopes that the user has valid access to based on:
* 1. Document ownership (userId matches)
* 2. Team membership with appropriate visibility level
* 3. Team email ownership
*
* NOTE: Be extremely careful when modifying this function. Needs at minimum two reviewers to approve any changes.
*/
export const getEnvelopesByIds = async ({
ids,
userId,
teamId,
type,
}: GetEnvelopesByIdsOptions) => {
const { envelopeWhereInput } = await getMultipleEnvelopeWhereInput({
ids,
userId,
teamId,
type,
});
const envelopes = await prisma.envelope.findMany({
where: envelopeWhereInput,
include: {
envelopeItems: {
include: {
documentData: true,
},
orderBy: {
order: 'asc',
},
},
folder: true,
documentMeta: true,
user: {
select: {
id: true,
name: true,
email: true,
},
},
recipients: {
orderBy: {
id: 'asc',
},
},
fields: true,
team: {
select: {
id: true,
url: true,
},
},
directLink: {
select: {
directTemplateRecipientId: true,
enabled: true,
id: true,
token: true,
},
},
},
});
return envelopes.map((envelope) => ({
...envelope,
user: {
id: envelope.user.id,
name: envelope.user.name || '',
email: envelope.user.email,
},
}));
};
export type GetEnvelopesByIdsResponse = Awaited<ReturnType<typeof getEnvelopesByIds>>;
export type GetMultipleEnvelopeWhereInputOptions = {
/**
* The envelope IDs to fetch with their type.
*/
ids: EnvelopeIdsOptions;
/**
* The user ID who has been authenticated.
*/
userId: number;
/**
* The unknown teamId from the request.
*/
teamId: number;
/**
* The type of envelope to get.
*
* Set to null to bypass check.
*/
type: EnvelopeType | null;
};
/**
* Generate the where input for a multiple envelope Prisma query.
*
* This will return a query that allows a user to get documents if they have valid access to them.
*
* NOTE: Be extremely careful when modifying this function. Needs at minimum two reviewers to approve any changes.
*/
export const getMultipleEnvelopeWhereInput = async ({
ids,
userId,
teamId,
type,
}: GetMultipleEnvelopeWhereInputOptions) => {
// Backup validation incase something goes wrong.
if (!ids.ids || !userId || !teamId || type === undefined) {
console.error(`[CRTICAL ERROR]: MUST NEVER HAPPEN`);
throw new AppError(AppErrorCode.NOT_FOUND, {
message: 'Envelope IDs not found',
});
}
// Validate that the user belongs to the team provided.
const team = await getTeamById({ teamId, userId });
const envelopeOrInput: Prisma.EnvelopeWhereInput[] = [
// Allow access if they own the document.
{
userId,
},
// Or, if they belong to the team that the document is associated with.
{
visibility: {
in: TEAM_DOCUMENT_VISIBILITY_MAP[team.currentTeamRole],
},
teamId: team.id,
},
];
// Allow access to documents sent from the team email.
if (team.teamEmail) {
envelopeOrInput.push({
user: {
email: team.teamEmail.email,
},
});
}
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// NOTE: DO NOT PUT ANY CODE AFTER THIS POINT.
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
const envelopeWhereInput: Prisma.EnvelopeWhereInput = {
...unsafeBuildEnvelopeIdsQuery(ids, type),
OR: envelopeOrInput,
};
// Final backup validation incase something goes wrong.
if (
!envelopeWhereInput.OR ||
envelopeWhereInput.OR.length < 2 ||
!userId ||
!teamId ||
!team.id ||
teamId !== team.id
) {
throw new AppError(AppErrorCode.UNAUTHORIZED, {
message: 'Query not valid',
});
}
// Do not modify this return directly, all adjustments need to be made prior to the above if statement.
return {
envelopeWhereInput,
team,
};
};
@@ -0,0 +1,42 @@
/**
* !: This is a workaround to fix the memory leak in the skia-canvas library.
* !: Internals are ported from the original `konva/skia-backend.js` file.
*/
import { Konva } from 'konva/lib/_CoreInternals';
import { Canvas, DOMMatrix, Image, Path2D } from 'skia-canvas';
// @ts-expect-error skia-canvas satisfies the requirements
global.DOMMatrix = DOMMatrix;
// @ts-expect-error skia-canvas satisfies the requirements
global.Path2D = Path2D;
Path2D.prototype.toString = () => '[object Path2D]';
Konva.Util['createCanvasElement'] = () => {
const node = new Canvas(300, 300);
node.gpu = false;
if (!('style' in node) || !node['style']) {
Object.assign(node, { style: {} });
}
node.toString = () => '[object HTMLCanvasElement]';
const ctx = node.getContext('2d');
Object.defineProperty(ctx, 'canvas', {
get: () => node,
});
return node as unknown as HTMLCanvasElement;
};
Konva.Util.createImageElement = () => {
const node = new Image();
node.toString = () => '[object HTMLImageElement]';
return node as unknown as HTMLImageElement;
};
Konva._renderBackend = 'skia-canvas';
export default Konva;
@@ -4,8 +4,10 @@ import {
PDFDict,
type PDFDocument,
PDFName,
PDFNumber,
PDFRadioGroup,
PDFRef,
PDFStream,
drawObject,
popGraphicsState,
pushGraphicsState,
@@ -103,6 +105,36 @@ const getAppearanceRefForWidget = (field: PDFField, widget: PDFWidgetAnnotation)
}
};
/**
* Ensures that an appearance stream has the required dictionary entries to be
* used as a Form XObject. Some PDFs have appearance streams that are missing
* the /Subtype /Form entry, which causes Adobe Reader to fail to render them.
*
* Per PDF spec, a Form XObject stream requires:
* - /Subtype /Form (required)
* - /BBox (required, but should already exist for appearance streams)
* - /FormType 1 (optional, defaults to 1)
*/
const normalizeAppearanceStream = (document: PDFDocument, appearanceRef: PDFRef) => {
const appearanceStream = document.context.lookup(appearanceRef);
if (!(appearanceStream instanceof PDFStream)) {
return;
}
const dict = appearanceStream.dict;
// Ensure /Subtype /Form is set (required for XObject Form)
if (!dict.has(PDFName.of('Subtype'))) {
dict.set(PDFName.of('Subtype'), PDFName.of('Form'));
}
// Ensure /FormType is set (optional, but good practice)
if (!dict.has(PDFName.of('FormType'))) {
dict.set(PDFName.of('FormType'), PDFNumber.of(1));
}
};
const flattenWidget = (document: PDFDocument, field: PDFField, widget: PDFWidgetAnnotation) => {
try {
const page = getPageForWidget(document, widget);
@@ -117,6 +149,9 @@ const flattenWidget = (document: PDFDocument, field: PDFField, widget: PDFWidget
return;
}
// Ensure the appearance stream has required XObject Form dictionary entries
normalizeAppearanceStream(document, appearanceRef);
const xObjectKey = page.node.newXObject('FlatWidget', appearanceRef);
const rectangle = widget.getRectangle();
@@ -1,5 +1,5 @@
// sort-imports-ignore
import 'konva/skia-backend';
import '../konva/skia-backend';
import Konva from 'konva';
import path from 'node:path';
@@ -23,6 +23,7 @@ export const insertFieldInPDFV2 = async ({
}: InsertFieldInPDFV2Options) => {
const fontPath = path.join(process.cwd(), 'public/fonts');
// eslint-disable-next-line react-hooks/rules-of-hooks
FontLibrary.use({
['Caveat']: [path.join(fontPath, 'caveat.ttf')],
['Noto Sans']: [path.join(fontPath, 'noto-sans.ttf')],
@@ -31,8 +32,8 @@ export const insertFieldInPDFV2 = async ({
['Noto Sans Korean']: [path.join(fontPath, 'noto-sans-korean.ttf')],
});
const stage = new Konva.Stage({ width: pageWidth, height: pageHeight });
const layer = new Konva.Layer();
let stage: Konva.Stage | null = new Konva.Stage({ width: pageWidth, height: pageHeight });
let layer: Konva.Layer | null = new Konva.Layer();
// Render the fields onto the layer.
for (const field of fields) {
@@ -60,5 +61,13 @@ export const insertFieldInPDFV2 = async ({
const canvas = layer.canvas._canvas as unknown as Canvas;
// Embed the SVG into the PDF
return await canvas.toBuffer('pdf');
const pdf = await canvas.toBuffer('pdf');
stage.destroy();
layer.destroy();
stage = null;
layer = null;
return pdf;
};
@@ -185,7 +185,7 @@ export const createDocumentFromDirectTemplate = async ({
documentAuth: directTemplateEnvelope.authOptions,
});
const directRecipientName = user?.name || initialDirectRecipientName;
let directRecipientName = user?.name || initialDirectRecipientName;
// Ensure typesafety when we add more options.
const isAccessAuthValid = match(derivedRecipientAccessAuth.at(0))
@@ -238,7 +238,7 @@ export const createDocumentFromDirectTemplate = async ({
}
if (templateField.type === FieldType.NAME && directRecipientName === undefined) {
directRecipientName === signedFieldValue?.value;
directRecipientName = signedFieldValue?.value;
}
const derivedRecipientActionAuth = await validateFieldAuth({
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 Zeichen über dem Limit)} other {(# Zeichen über de
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, one {{1} von # Zeile ausgewählt.} other {{2} von # Zeilen ausgewählt.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# Ordner} other {# Ordner}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, one {# Empfänger wurde durch die KI-Erkennung hinzugefügt.} other {# Empfänger wurden durch die KI-Erkennung hinzugefügt.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 Empfänger} other {# Empfänger}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, one {Seite {1} von {2} - # Feld gefunden} other {Seite {3} von {4} - # Felder gefunden}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, one {Seite {1} von {2} - # Empfänger gefunden} other {Seite {3} von {4} - # Empfänger gefunden}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, one {Empfänger hinzugefügt} other {Empfänger hinzugefügt}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {Warte auf 1 Empfänger} other {Warte auf # Empfänger}}
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, one {Wir haben # Feld in Ihrem Dokument gefunden.} other {Wir haben # Felder in Ihrem Dokument gefunden.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, one {Wir haben # Empfänger in Ihrem Dokument gefunden.} other {Wir haben # Empfänger in Ihrem Dokument gefunden.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {Sie können nicht mehr als # Zugangsschl
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, one {Sie können nicht mehr als # Element pro Umschlag hochladen.} other {Sie können nicht mehr als # Elemente pro Umschlag hochladen.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> hat angefragt, Ihr bestehendes Documenso-Konto
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, dieses Dokument zu genehmigen"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, bei diesem Dokument mitzuwirken"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, dieses Dokument zu unterschreiben"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> hat Sie eingeladen, dieses Dokument anzusehen"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, dieses Dokument zu genehmigen"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, bei diesem Dokument mitzuwirken"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, dieses Dokument zu unterschreiben"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> im Namen von \"{0}\" hat Sie eingeladen, dieses Dokument anzusehen"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>Konto verwalten:</0> Ändern Sie Ihre Kontoeinstellungen, Berechtigun
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>Nur Admins</0> Nur Admins können auf das Dokument zugreifen und es ansehen"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>Ereignisse:</0> Alle"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>Jede Person</0> Jede Person kann auf das Dokument zugreifen und es ansehen"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>Authentifizierungsmethode erben</0> - Verwenden Sie die in den \"Allg
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>Manager und höher</0> Nur Manager und Personen darüber können auf das Dokument zugreifen und es ansehen."
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "Konto aktiviert"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "Kontoverknüpfung abgelehnt"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "Konto erfolgreich verknüpft"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "Aktiv"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "Aktiv"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "E-Mail-Domain hinzufügen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "Felder hinzufügen"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "Platzhalter hinzufügen"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "Empfänger hinzufügen"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ih
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "KIFunktionen"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "KI-Funktionen sind für Ihr Team deaktiviert. Bitte bitten Sie den Teambesitzer oder den Organisationsbesitzer, sie zu aktivieren."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "Erlaubt die Authentifizierung mit biometrischen Daten, Passwort-Managern
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "Fast fertig"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "Beim automatischen Signieren des Dokuments ist ein Fehler aufgetreten, e
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "Beim Abschließen des Dokuments ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Vorlage verschoben wurde."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "Beim Ablehnen des Dokuments ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "Ein unbekannter Fehler ist beim Verschieben des Ordners aufgetreten."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "Seitenlayout wird analysiert"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "Seiten werden analysiert"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "Kontrollkästchen"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "Checkbox-Option"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "Inhalt"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "Kontext"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "Kopiert"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "Kopiertes Feld"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "Feld in die Zwischenablage kopiert"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "Datumseinstellungen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David ist der Mitarbeiter, Lucas ist der Manager"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "Standard-Zeitzone"
msgid "Default Value"
msgstr "Standardwert"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "löschen"
@@ -3274,48 +3278,48 @@ msgstr "Einzelheiten"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "Erkennen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "Felder erkennen"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "Empfänger erkennen"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "Empfänger mit KI erkennen"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "Mit KI erkennen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "Erkannte Felder"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "Erkannte Empfänger"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "Felder werden erkannt"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "Empfänger werden erkannt"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "Signaturbereiche werden erkannt"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "Erkennung fehlgeschlagen"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "Gerät"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "Du hast keine Passwortänderung angefordert? Wir helfen dir, dein Konto zu sichern, kontaktiere uns einfach <0>hier</0>."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Dokument geöffnet"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Dokument ausstehend"
@@ -3873,7 +3882,7 @@ msgstr "Haben Sie kein Konto? <0>Registrieren</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "Nicht übertragen (alle Dokumente löschen)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "Z.B. 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "Konto Aktivieren"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "KI-Erkennung aktivieren"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "KI-Funktionen aktivieren"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "Aktivieren Sie KIgestützte Funktionen wie die automatische Empfängererkennung. Wenn diese Option aktiviert ist, werden die Dokumentinhalte an KIAnbieter gesendet. Wir verwenden nur Anbieter, die Daten nicht zu Trainingszwecken speichern, und bevorzugen sofern verfügbar Standorte in Europa."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "Aktiviere die Signaturreihenfolge"
msgid "Enable SSO portal"
msgstr "SSO-Portal aktivieren"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "Fehler"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "Fehler beim Ablehnen der Kontoverknüpfung"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "Fehler beim Verknüpfen des Kontos"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "Externe ID"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "Kontaktdaten werden extrahiert"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "Fehlgeschlagen"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "Das Dokument konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Webhook konnte nicht aktualisiert werden"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "CSV konnte nicht hochgeladen werden. Bitte überprüfen Sie das Dateiformat und versuchen Sie es erneut."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "Hast du dein Passwort vergessen?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "Kostenlos"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "Kostenlos"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "Zum Dokument gehen"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "Zur ersten Seite gehen"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "Zur letzten Seite gehen"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "Zur nächsten Seite gehen"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "Zum Eigentümer gehen"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "Zur vorherigen Seite gehen"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "Hilfe beim Abschließen des Dokuments für andere Unterzeichner."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "Helfen Sie der KI, die Felder den richtigen Empfängern zuzuordnen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "Hier können Sie Branding-Präferenzen für Ihre Organisation festlegen.
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "Hier kannst du die Branding-Einstellungen für dein Team festlegen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "Hier können Sie Präferenzen und Voreinstellungen für Ihr Team festleg
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "Hier kannst du deine allgemeinen Branding-Einstellungen festlegen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "Hier kannst du deine allgemeinen Dokumenteinstellungen festlegen."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID in die Zwischenablage kopiert"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "Eingabefelder werden identifiziert"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "Empfänger werden identifiziert"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "Wichtig: Was dies bedeutet"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "Inaktiv"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "Authentifizierungsmethode erben"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "Protokolle"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "Formularfelder werden gesucht"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "Signaturfelder werden gesucht"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "Verknüpfte Konten verwalten"
msgid "Manage organisation"
msgstr "Organisation verwalten"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Organisationen verwalten"
@@ -5706,7 +5726,7 @@ msgstr "Manager und höher"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "Felder werden Empfängern zugeordnet"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "Nächster Empfängername"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "Nein"
@@ -5975,11 +5996,11 @@ msgstr "Keine Dokumente gefunden"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "Keine EMail erkannt"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "In Ihrem Dokument wurden keine Felder erkannt."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "Keine Empfänger"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "In Ihrem Dokument wurden keine Empfänger erkannt."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "Sobald Sie den QR-Code gescannt oder den Code manuell eingegeben haben,
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "Nachdem du deine DNS-Einträge aktualisiert hast, kann es bis zu 48 Stunden dauern, bis sie verbreitet sind. Sobald die DNS-Propagation abgeschlossen ist, musst du zurückkehren und die Schaltfläche \"Domains synchronisieren\" drücken."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "Hoppla! Etwas ist schief gelaufen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "Menü öffnen"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "Seite {0} von {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "Bezahlt"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "Passwort aktualisiert!"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "Überfällig"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "Lesen Sie die vollständige <0>Offenlegung der Unterschrift</0>."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "Ihr Dokument wird gelesen"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "Empfänger"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "Empfänger {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "Organisationsmitglied entfernen"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "Empfänger entfernen"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "Auf E-Mail antworten"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "Antwort an E-Mail-Adresse <0>(Optional)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "Wiederholen"
msgid "Return"
msgstr "Zurück"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Hier zur Documenso-Anmeldeseite zurückkehren"
@@ -8120,7 +8146,7 @@ msgstr "Website Einstellungen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "Überspringen"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "Etwas ist schiefgelaufen beim Versuch, Ihre E-Mail-Adresse für <0>{0}</
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "Bei der Felderkennung ist ein Fehler aufgetreten."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "Bei der Empfängererkennung ist ein Fehler aufgetreten."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "Der Anzeigename für diese E-Mail-Adresse"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "Das Dokument wurde erfolgreich gelöscht."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "Das Dokument wurde erfolgreich verschoben."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "Das Dokument wurde erfolgreich abgelehnt."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "Der Dokumenteninhaber wurde über diese Ablehnung informiert. Es sind de
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "Der Dokumenteneigentümer wurde über Ihre Entscheidung informiert. Er kann Sie bei Bedarf mit weiteren Anweisungen kontaktieren."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
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."
@@ -8870,7 +8902,7 @@ msgstr "Die gesuchte E-Mail-Domäne wurde möglicherweise entfernt, umbenannt od
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "Die angegebene E-Mail-Adresse oder das Passwort ist falsch."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "Die folgenden Fehler sind aufgetreten:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "Für die folgenden Empfänger wird eine EMailAdresse benötigt:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "Der Token, den Sie zur Zurücksetzung Ihres Passworts verwendet haben, i
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "Der angegebene Zwei-Faktor-Authentifizierungscode ist falsch."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "Die Zwei-Faktor-Authentifizierung des Nutzers wurde erfolgreich zurückg
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "Die Sichtbarkeit des Dokuments für den Empfänger."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "Diese Aktion ist umkehrbar, jedoch bitte seien Sie vorsichtig, da das Ko
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "Je nach Größe Ihres Dokuments kann dies ein bis zwei Minuten dauern."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "Dieses Dokument wurde mit einem direkten Link erstellt."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "Dieses Dokument wurde mit <0>Documenso</0> versendet."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "Token-Name"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "Zu viele Anfragen"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "Gesamtanzahl der Benutzer"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "Dokumente auf ein anderes Team übertragen"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "Auslöser"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "Erneut versuchen"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "Aktivieren Sie die KI-Erkennung, um automatisch Empfänger und Felder in Ihren Dokumenten zu finden. KI-Anbieter behalten Ihre Daten nicht für Trainingszwecke."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "Unvollendet"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "Rückgängig"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "Unbekannter Fehler"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "Unbekannter Name"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "Warten auf deine Reihe"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "Möchtest du schicke Signatur-Links wie diesen versenden? <0>Sieh dir Documenso an</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "Wir konnten keinen Stripe-Kunden erstellen. Bitte versuchen Sie es erneu
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "Wir konnten die KI-Funktionen gerade nicht aktivieren. Bitte versuchen Sie es erneut."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht h
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "Beim Versuch, Ihr Dokument zu löschen, ist ein unbekannter Fehler aufgetreten. Bitte versuchen Sie es später erneut."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "Wir werden uns so schnell wie möglich per E-Mail bei Ihnen melden."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "Wir scannen Ihr Dokument, um Formularfelder wie Signaturzeilen, Texteingaben, Kontrollkästchen und mehr zu finden. Erkannte Felder werden Ihnen zur Überprüfung vorgeschlagen."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "Wir scannen Ihr Dokument, um Signaturfelder zu finden und zu ermitteln, wer unterschreiben muss. Erkannte Empfänger werden Ihnen zur Überprüfung vorgeschlagen."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "Jährlich"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Ja"
@@ -10955,12 +10988,12 @@ msgstr "Sie aktualisieren derzeit <0>{0}</0>"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "Du bearbeitest aktuell <0>{memberName}</0>."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "Du bearbeitest aktuell <0>{organisationMemberName}</0>."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "Sie sind nicht berechtigt, die Zwei-Faktor-Authentifizierung für diesen
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "Sie können im Editor manuell Felder hinzufügen."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "Sie können im Editor manuell Empfänger hinzufügen."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "Sie können den Zugriff so aktivieren, dass alle Organisationsmitglieder
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "Du kannst deine E-Mail-Einstellungen hier verwalten."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "Sie können Felder nur in Entwürfen von Umschlägen erkennen."
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "Sie können den Zugriff jederzeit in Ihren Teameinstellungen auf Documenso <0>hier</0> widerrufen."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "Sie können keine Gruppe löschen, die eine höhere Rolle hat als Sie."
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "Du kannst dieses Element nicht löschen, weil das Dokument bereits an Empfänger gesendet wurde."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "Sie können derzeit keine Dokumente hochladen."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "Du kannst keine verschlüsselten PDFs hochladen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "Derzeit haben Sie keinen Zugriff auf Teams in dieser Organisation. Bitte
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "Sie haben keine Berechtigung, ein Token für dieses Team zu erstellen."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "Sie haben noch keine Dokumente erstellt oder erhalten. Bitte laden Sie e
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "Sie haben die maximale Anzahl von Dateien pro Umschlag erreicht."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "Sie erhalten eine Kopie des unterschriebenen Dokuments per E-Mail, sobal
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "Sie sind Administrator. Sie können die KI-Funktionen für dieses Team sofort aktivieren. Alle im Team sehen die KI-Erkennung, sobald sie aktiviert ist."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "Sie haben zu viele Erkennungsanfragen gestellt. Bitte warten Sie eine Minute, bevor Sie es erneut versuchen."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "Ihre direkten Unterzeichnungsvorlagen"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "Der Inhalt Ihres Dokuments wird ausschließlich zum Zweck der Erkennung sicher an unseren KI-Anbieter gesendet und weder gespeichert noch für Trainingszwecke verwendet."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "Ihr Dokument wurde erfolgreich hochgeladen. Sie werden zur Vorlagenseite
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "Ihr Dokument wird sicher mit KIDiensten verarbeitet, die Ihre Daten nicht speichern."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+33
View File
@@ -3104,6 +3104,10 @@ msgstr "Default Time Zone"
msgid "Default Value"
msgstr "Default Value"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr "Delegate Document Ownership"
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "delete"
@@ -3667,6 +3671,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Document opened"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr "Document ownership delegated"
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Document pending"
@@ -4008,6 +4017,7 @@ msgstr "E.g. 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4273,6 +4283,10 @@ msgstr "Enable signing order"
msgid "Enable SSO portal"
msgstr "Enable SSO portal"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr "Enable team API tokens to delegate document ownership to another team member."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -5157,6 +5171,7 @@ msgstr "Inherit authentication method"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5549,6 +5564,7 @@ msgid "Looking for signature fields"
msgstr "Looking for signature fields"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5609,6 +5625,10 @@ msgstr "Manage linked accounts"
msgid "Manage organisation"
msgstr "Manage organisation"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr "Manage Organisation"
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Manage organisations"
@@ -5955,6 +5975,7 @@ msgstr "Next Recipient Name"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "No"
@@ -7327,6 +7348,11 @@ msgstr "Retry"
msgid "Return"
msgstr "Return"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr "Return Home"
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Return to Documenso sign in page here"
@@ -8830,6 +8856,12 @@ msgstr "The document owner has been notified of this rejection. No further actio
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr "The document ownership was delegated to {0} on behalf of {1}"
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "The document was created but could not be sent to recipients."
@@ -10837,6 +10869,7 @@ msgstr "Yearly"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Yes"
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 carácter excedido)} other {(# caracteres excedidos)
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, one {{1} de # fila seleccionada.} other {{2} de # filas seleccionadas.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# carpeta} other {# carpetas}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, one {Se ha añadido # destinatario a partir de la detección por IA.} other {Se han añadido # destinatarios a partir de la detección por IA.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 Destinatario} other {# Destinatarios}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, one {Página {1} de {2} - se ha encontrado # campo} other {Página {3} de {4} - se han encontrado # campos}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, one {Página {1} de {2} - se ha encontrado # destinatario} other {Página {3} de {4} - se han encontrado # destinatarios}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, one {Destinatario añadido} other {Destinatarios añadidos}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {Esperando 1 destinatario} other {Esperando # destinatar
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, one {Hemos encontrado # campo en tu documento.} other {Hemos encontrado # campos en tu documento.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, one {Hemos encontrado # destinatario en tu documento.} other {Hemos encontrado # destinatarios en tu documento.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {No puedes tener más de # clave de acces
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, one {No puedes subir más de # elemento por sobre.} other {No puedes subir más de # elementos por sobre.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> ha solicitado vincular tu cuenta actual de Doc
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a aprobar este documento"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a asistir en este documento"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a firmar este documento"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> te ha invitado a ver este documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a aprobar este documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a asistir en este documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a firmar este documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, en nombre de \"{0}\", te ha invitado a ver este documento"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>Administración de cuenta:</0> Modifica la configuración, permisos y
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>Solo administradores</0> - Solo los administradores pueden acceder y ver el documento"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>Eventos:</0> Todos"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>Todos</0> - Todos pueden acceder y ver el documento"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>Heredar método de autenticación</0> - Use el método de autenticaci
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>Gerentes y superiores</0> - Solo los gerentes y superiores pueden acceder y ver el documento"
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "Cuenta habilitada"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "Enlace de cuenta rechazado"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "Cuenta vinculada correctamente"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "Activo"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "Activa"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "Agregar dominio de correo electrónico"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "Agregar campos"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "Agregar Marcadores de posición"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "Agregar destinatarios"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "Después de la presentación, se generará automáticamente un documento
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "Funciones de IA"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "Las funciones de IA están desactivadas para tu equipo. Pide a la persona propietaria del equipo u organización que las habilite."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "Permite autenticarse usando biometría, administradores de contraseñas,
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "Casi listo"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "Se produjo un error al firmar automáticamente el documento, es posible
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "Se produjo un error al completar el documento. Inténtalo de nuevo."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "Ocurrió un error al mover la plantilla."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "Se produjo un error al rechazar el documento. Inténtalo de nuevo."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "Se produjo un error desconocido al mover la carpeta."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "Analizando el diseño de la página"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "Analizando las páginas"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "Casilla de verificación"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "Opción de casilla de verificación"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "Contenido"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "Contexto"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "Copiado"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "Campo copiado"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "Campo copiado al portapapeles"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "Configuración de Fecha"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David es el empleado, Lucas es el gerente"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "Zona horaria predeterminada"
msgid "Default Value"
msgstr "Valor Predeterminado"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "eliminar"
@@ -3274,48 +3278,48 @@ msgstr "Detalles"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "Detectar"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "Detectar campos"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "Detectar destinatarios"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "Detectar destinatarios con IA"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "Detectar con IA"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "Campos detectados"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "Destinatarios detectados"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "Detectando campos"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "Detectando destinatarios"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "Detectando áreas de firma"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "La detección ha fallado"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "Dispositivo"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "¿No solicitaste un cambio de contraseña? Estamos aquí para ayudarte a asegurar tu cuenta, solo <0>contáctanos</0>."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Documento abierto"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Documento pendiente"
@@ -3873,7 +3882,7 @@ msgstr "¿No tienes una cuenta? <0>Regístrate</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "No transferir (Eliminar todos los documentos)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "Ej.: 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "Habilitar Cuenta"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "Habilitar detección por IA"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "Habilitar funciones de IA"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "Activa las funciones impulsadas por IA, como la detección automática de destinatarios. Cuando esté activado, el contenido del documento se enviará a proveedores de IA. Solo usamos proveedores que no conservan datos para entrenamiento y preferimos regiones europeas cuando sea posible."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "Habilitar orden de firma"
msgid "Enable SSO portal"
msgstr "Habilitar portal SSO"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "Error"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "Error al rechazar el enlace de cuenta"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "Error al vincular la cuenta"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "ID externo"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "Extrayendo datos de contacto"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "Error"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "No se pudo completar el documento. Inténtalo de nuevo."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Falló al actualizar el webhook"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "Error al subir el CSV. Verifica el formato del archivo e inténtalo de nuevo."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "¿Olvidaste tu contraseña?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "Gratis"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "Gratis"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "Ir al documento"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "Ir a la primera página"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "Ir a la última página"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "Ir a la página siguiente"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "Ir al propietario"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "Ir a la página anterior"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "Ayuda a completar el documento para otros firmantes."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "Ayuda a la IA a asignar los campos a los destinatarios correctos."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "Aquí puedes configurar las preferencias de marca para tu organización.
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "Aquí puedes configurar las preferencias de marca de tu equipo."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "Aquí puedes establecer preferencias y valores predeterminados para tu e
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "Aquí puedes configurar tus preferencias generales de marca."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "Aquí puedes configurar tus preferencias generales de documentos."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID copiado al portapapeles"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "Identificando campos de entrada"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "Identificando destinatarios"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "Importante: Lo que esto significa"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "Inactiva"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "Heredar método de autenticación"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "Registros"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "Buscando campos de formulario"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "Buscando campos de firma"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "Gestionar cuentas vinculadas"
msgid "Manage organisation"
msgstr "Administrar organización"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Administrar organizaciones"
@@ -5706,7 +5726,7 @@ msgstr "Gerentes y superiores"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "Asignando campos a destinatarios"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "Nombre del próximo destinatario"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "No"
@@ -5975,11 +5996,11 @@ msgstr "No se encontraron documentos"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "No se detectó ningún correo electrónico"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "No se detectaron campos en tu documento."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "Sin destinatarios"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "No se detectaron destinatarios en tu documento."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "Una vez que hayas escaneado el código QR o ingresado el código manualm
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "Una vez que actualices tus registros DNS, la propagación puede tardar hasta 48 horas. Cuando la propagación del DNS se haya completado, deberás volver y presionar el botón \"Sincronizar\" dominios."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "¡Ups! Algo salió mal."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "Abrir menú"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "Página {0} de {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "De pago"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "¡Contraseña actualizada!"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "Vencida"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "Lea la <0>divulgación de firma</0> completa."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "Leyendo tu documento"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "Destinatario"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "Destinatario {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "Eliminar miembro de la organización"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "Eliminar destinatario"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "Responder al correo"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "Responder al correo electrónico <0>(Opcional)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "Reintentar"
msgid "Return"
msgstr "Regresar"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Regrese a la página de inicio de sesión de Documenso aquí"
@@ -8120,7 +8146,7 @@ msgstr "Configuraciones del sitio"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "Omitir"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "Algo salió mal al intentar verificar tu dirección de correo electróni
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "Algo salió mal al detectar los campos."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "Algo salió mal al detectar los destinatarios."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "El nombre para mostrar para esta dirección de correo electrónico"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "El documento se ha eliminado correctamente."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "El documento se ha movido exitosamente."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "El documento se ha rechazado correctamente."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "El propietario del documento ha sido notificado de este rechazo. No se r
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
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."
@@ -8870,7 +8902,7 @@ msgstr "El dominio de correo electrónico que estás buscando puede haber sido e
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "El correo electrónico o la contraseña proporcionados son incorrectos."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "Se produjeron los siguientes errores:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "Los siguientes destinatarios requieren una dirección de correo electrónico:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "El token que has utilizado para restablecer tu contraseña ha expirado o
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "El código de autenticación de dos factores proporcionado es incorrecto."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "La autenticación de dos factores del usuario se ha restablecido con éx
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "La visibilidad del documento para el destinatario."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "Esta acción es reversible, pero ten cuidado ya que la cuenta podría ve
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "Esto puede tardar uno o dos minutos, según el tamaño de tu documento."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "Este documento fue creado usando un enlace directo."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "Este documento fue enviado usando <0>Documenso</0>."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "Nombre del token"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "Demasiadas solicitudes"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "Total de usuarios"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "Transferir documentos a un equipo diferente"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "Desencadenadores"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "Intentar de nuevo"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "Activa la detección por IA para encontrar automáticamente destinatarios y campos en tus documentos. Los proveedores de IA no conservan tus datos para entrenamiento."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "Incompleto"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "Deshacer"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "Error desconocido"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "Nombre desconocido"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "Esperando tu turno"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "¿Quieres enviar enlaces de firma tan elegantes como este? <0>Prueba Documenso</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "No pudimos crear un cliente de Stripe. Por favor, intente nuevamente."
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "No hemos podido habilitar las funciones de IA en este momento. Inténtalo de nuevo."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "Encontramos un error desconocido al intentar eliminar tu cuenta. Por fav
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "Encontramos un error desconocido al intentar eliminar tu documento. Inténtalo de nuevo más tarde."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "Nos pondremos en contacto contigo lo antes posible, a través de correo
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "Escanearemos tu documento para encontrar campos de formulario como líneas de firma, entradas de texto, casillas de verificación y más. Los campos detectados se sugerirán para que los revises."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "Escanearemos tu documento para encontrar campos de firma e identificar quién debe firmar. Los destinatarios detectados se sugerirán para que los revises."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "Anual"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Sí"
@@ -10955,12 +10988,12 @@ msgstr "Actualmente estás actualizando <0>{0}</0>"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "Actualmente estás actualizando a <0>{memberName}</0>."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "Actualmente estás actualizando a <0>{organisationMemberName}</0>."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "No está autorizado para restablecer la autenticación de dos factores p
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "Puedes agregar campos manualmente en el editor."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "Puedes agregar destinatarios manualmente en el editor."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "Puedes habilitar el acceso para permitir que todos los miembros de la or
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "Aquí puedes gestionar tus preferencias de correo electrónico."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "Solo puedes detectar campos en sobres en borrador"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "Puedes revocar el acceso en cualquier momento en la configuración de tu equipo en Documenso <0>aquí</0>."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "No puedes eliminar un grupo que tiene un rol superior al tuyo."
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "No puedes eliminar este elemento porque el documento ha sido enviado a los destinatarios."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "No puede cargar documentos en este momento."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "No puedes subir archivos PDF cifrados."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "Actualmente no tienes acceso a ningún equipo dentro de esta organizaci
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "No tienes permiso para crear un token para este equipo."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "Aún no has creado ni recibido documentos. Para crear un documento, por
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "Has alcanzado el límite de archivos por sobre."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "Recibirás una copia por correo electrónico del documento firmado cuand
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "Eres administrador. Puedes habilitar las funciones de IA para este equipo de inmediato. Todos los miembros del equipo verán la detección por IA una vez que esté habilitada."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "Has realizado demasiadas solicitudes de detección. Espera un minuto antes de intentarlo de nuevo."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "Tus {0} plantillas de firma directa"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "El contenido de tu documento se enviará de forma segura a nuestro proveedor de IA únicamente para la detección y no se almacenará ni se utilizará para entrenamiento."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "Tu documento ha sido subido con éxito. Serás redirigido a la página d
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "Tu documento se procesa de forma segura mediante servicios de IA que no conservan tus datos."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 caractère de trop)} other {(# caractères de trop)}
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, one {{1} sur # ligne sélectionnée.} other {{2} sur # lignes sélectionnées.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# dossier} other {# dossiers}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, one {# destinataire a été ajouté grâce à la détection par IA.} other {# destinataires ont été ajoutés grâce à la détection par IA.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 Destinataire} other {# Destinataires}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, one {Page {1} sur {2} - # champ trouvé} other {Page {3} sur {4} - # champs trouvés}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, one {Page {1} sur {2} - # destinataire trouvé} other {Page {3} sur {4} - # destinataires trouvés}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, one {Destinataire ajouté} other {Destinataires ajoutés}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {En attente d'1 destinataire} other {En attente de # des
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, one {Nous avons trouvé # champ dans votre document.} other {Nous avons trouvé # champs dans votre document.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, one {Nous avons trouvé # destinataire dans votre document.} other {Nous avons trouvé # destinataires dans votre document.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {Vous ne pouvez pas avoir plus de # clé
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, one {Vous ne pouvez pas téléverser plus dun élément par enveloppe.} other {Vous ne pouvez pas téléverser plus de # éléments par enveloppe.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> a demandé à lier votre compte Documenso actu
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à approuver ce document"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à assister ce document"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à signer ce document"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> vous a invité à voir ce document"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à approuver ce document"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à assister ce document"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à signer ce document"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, au nom de \"{0}\", vous a invité à voir ce document"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>Gestion du compte :</0> Modifiez les paramètres, permissions, et pr
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>Administrateurs uniquement</0> - Seuls les administrateurs peuvent accéder au document et le voir"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>Événementsa0:</0> Tous"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>Tout le monde</0> - Tout le monde peut accéder au document et le voir"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>Hériter de la méthode d'authentification</0> - Utilisez la méthode
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>Managers et plus</0> - Seuls les managers et plus peuvent accéder au document et le consulter"
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "Compte activé"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "Lien de compte refusé"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "Compte lié avec succès"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "Actif"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "Actif"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "Ajouter un domaine email"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "Ajouter des champs"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "Ajouter des espaces réservés"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "Ajouter des destinataires"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "Après soumission, un document sera automatiquement généré et ajouté
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "Fonctionnalités IA"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "Les fonctionnalités dIA sont désactivées pour votre équipe. Veuillez demander au propriétaire de votre équipe ou de votre organisation de les activer."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "Permet d'authentifier en utilisant des biométries, des gestionnaires de
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "Presque terminé"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "Une erreur est survenue lors de la signature automatique du document, ce
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "Une erreur s'est produite lors de la finalisation du document. Veuillez réessayer."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "Une erreur est survenue lors du déplacement du modèle."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "Une erreur s'est produite lors du rejet du document. Veuillez réessayer."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "Une erreur inconnue s'est produite lors du déplacement du dossier."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "Analyse de la mise en page"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "Analyse des pages"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "Case à cocher"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "Option de case à cocher"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "Contenu"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "Contexte"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "Copié"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "Champ copié"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "Champ copié dans le presse-papiers"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "Paramètres de la date"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David est l'employé, Lucas est le manager"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "Fuseau horaire par défaut"
msgid "Default Value"
msgstr "Valeur par défaut"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "supprimer"
@@ -3274,48 +3278,48 @@ msgstr "Détails"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "Détecter"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "Détecter les champs"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "Détecter les destinataires"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "Détecter les destinataires avec l'IA"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "Détecter avec l'IA"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "Champs détectés"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "Destinataires détectés"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "Détection des champs"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "Détection des destinataires"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "Détection des zones de signature"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "Échec de la détection"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "Appareil"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "Vous n'avez pas demandé de changement de mot de passe ? Nous sommes là pour vous aider à sécuriser votre compte, il vous suffit de <0>nous contacter</0>."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Document ouvert"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Document en attente"
@@ -3873,7 +3882,7 @@ msgstr "Vous n'avez pas de compte? <0>Inscrivez-vous</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "Ne pas transférer (supprimer tous les documents)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "Par ex. 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "Activer le Compte"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "Activer la détection par IA"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "Activer les fonctionnalités dIA"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "Activez les fonctionnalités basées sur l'IA, comme la détection automatique des destinataires. Lorsqu'elles sont activées, le contenu du document est envoyé aux fournisseurs d'IA. Nous n'utilisons que des fournisseurs qui ne conservent pas les données pour l'entraînement et privilégions les régions européennes lorsque c'est possible."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "Activer l'ordre de signature"
msgid "Enable SSO portal"
msgstr "Activer le portail SSO"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "Erreur"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "Erreur lors du refus du lien de compte"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "Erreur lors de la liaison du compte"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "ID externe"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "Extraction des coordonnées"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "Échec"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "Échec de la finalisation du document. Veuillez réessayer."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Échec de la mise à jour du webhook"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "Échec du téléversement du fichier CSV. Veuillez vérifier le format du fichier et réessayer."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "Vous avez oublié votre mot de passe ?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "Gratuit"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "Gratuit"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "Aller au document"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "Aller à la première page"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "Aller à la dernière page"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "Aller à la page suivante"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "Aller au propriétaire"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "Aller à la page précédente"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "Aidez à compléter le document pour les autres signataires."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "Aidez l'IA à attribuer les champs aux bons destinataires."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "Ici, vous pouvez définir les préférences de marque pour votre organis
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "Vous pouvez définir ici les préférences de branding pour votre équipe."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "Ici, vous pouvez définir des préférences et des valeurs par défaut p
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "Vous pouvez définir ici vos préférences générales de branding."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "Vous pouvez définir ici vos préférences générales pour les documents."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID copié dans le presse-papiers"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "Identification des champs de saisie"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "Identification des destinataires"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "Important : Ce que cela signifie"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "Inactif"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "Hériter de la méthode d'authentification"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "Journaux"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "Recherche de champs de formulaire"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "Recherche de champs de signature"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "Gérer les comptes liés"
msgid "Manage organisation"
msgstr "Gérer l'organisation"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Gérer les organisations"
@@ -5706,7 +5726,7 @@ msgstr "Responsables et supérieur"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "Association des champs aux destinataires"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "Nom du destinataire suivant"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "Non"
@@ -5975,11 +5996,11 @@ msgstr "Aucun document trouvé"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "Aucun e-mail détecté"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "Aucun champ n'a été détecté dans votre document."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "Aucun destinataire"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "Aucun destinataire n'a été détecté dans votre document."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "Une fois que vous avez scanné le code QR ou saisi le code manuellement,
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "Une fois que vous aurez mis à jour vos enregistrements DNS, la propagation peut prendre jusqu'à 48 heures. Une fois la propagation DNS terminée, vous devrez revenir ici et appuyer sur le bouton \"Synchroniser\" les domaines."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "Oups ! Quelque chose a mal tourné."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "Ouvrir le menu"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "Page {0} sur {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "Payé"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "Mot de passe mis à jour !"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "En retard de paiement"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "Lisez l'intégralité de la <0>divulgation de signature</0>."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "Lecture de votre document"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "Destinataire"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "Destinataire {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "Supprimer le membre de l'organisation"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "Supprimer le destinataire"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "Répondre à l'e-mail"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "Répondre à le-mail <0>(Optionnel)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "Réessayer"
msgid "Return"
msgstr "Retour"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Revenir à la page de connexion de Documenso ici"
@@ -8120,7 +8146,7 @@ msgstr "Paramètres du site"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "Ignorer"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "Quelque chose a mal tourné lors de la tentative de vérification de vot
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "Une erreur s'est produite lors de la détection des champs."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "Une erreur s'est produite lors de la détection des destinataires."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "Le nom d'affichage pour cette adresse e-mail"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "Le document a été supprimé avec succès."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "Le document a été déplacé avec succès."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "Le document a été rejeté avec succès."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "Le propriétaire du document a été informé de ce rejet. Aucune action
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "Le propriétaire du document a été informé de votre décision. Il peut vous contacter pour des instructions supplémentaires si nécessaire."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "Le document a été créé mais n'a pas pu être envoyé aux destinataires."
@@ -8870,7 +8902,7 @@ msgstr "Le domaine de messagerie que vous recherchez a peut-être été supprim
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "Le-mail ou le mot de passe fourni est incorrect."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "Les erreurs suivantes se sont produites :"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "Les destinataires suivants doivent avoir une adresse e-mail :"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "Le token que vous avez utilisé pour réinitialiser votre mot de passe a
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "Le code dauthentification à deux facteurs fourni est incorrect."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "L'authentification à deux facteurs de l'utilisateur a été réinitiali
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "La visibilité du document pour le destinataire."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "Cette action est réversible, mais veuillez faire attention car le compt
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "Cela peut prendre une à deux minutes selon la taille de votre document."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "Ce document a été créé en utilisant un lien direct."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "Ce document a été envoyé via <0>Documenso</0>."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "Nom du token"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "Trop de requêtes"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "Total des utilisateurs"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "Transférer les documents vers une autre équipe"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "Déclencheurs"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "Réessayer"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "Activez la détection par IA pour trouver automatiquement les destinataires et les champs dans vos documents. Les fournisseurs dIA ne conservent pas vos données pour lapprentissage."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "Non complet"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "Annuler"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "Erreur inconnue"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "Nom inconnu"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "En attente de votre tour"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "Vous voulez envoyer des liens de signature aussi soignés que celui-ci ? <0>Découvrez Documenso</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "Nous n'avons pas pu créer un client Stripe. Veuillez réessayer."
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "Nous navons pas pu activer les fonctionnalités dIA pour le moment. Veuillez réessayer."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "Une erreur inconnue s'est produite lors de la suppression de votre compt
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "Nous avons rencontré une erreur inconnue lors de la tentative de suppression de votre document. Veuillez réessayer plus tard."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "Nous vous recontacterons dès que possible par email."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "Nous allons analyser votre document pour trouver des champs de formulaire comme des lignes de signature, des zones de texte, des cases à cocher, etc. Les champs détectés vous seront proposés pour vérification."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "Nous allons analyser votre document pour trouver les champs de signature et identifier qui doit signer. Les destinataires détectés vous seront proposés pour vérification."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "Annuel"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Oui"
@@ -10955,12 +10988,12 @@ msgstr "Vous mettez actuellement à jour <0>{0}</0>"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "Vous mettez actuellement à jour <0>{memberName}</0>."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "Vous mettez actuellement à jour <0>{organisationMemberName}</0>."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "Vous n'êtes pas autorisé à réinitialiser l'authentification à deux
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "Vous pouvez ajouter des champs manuellement dans l'éditeur."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "Vous pouvez ajouter des destinataires manuellement dans l'éditeur."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "Vous pouvez autoriser l'accès par défaut, permettant à tous les membr
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "Vous pouvez gérer vos préférences de-mail ici."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "Vous pouvez uniquement détecter les champs dans les enveloppes brouillon"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "Vous pouvez révoquer laccès à tout moment dans les paramètres de votre équipe sur Documenso <0>ici</0>."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "Vous ne pouvez pas supprimer un groupe qui a un rôle supérieur au vôt
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "Vous ne pouvez pas supprimer cet élément, car le document a été envoyé aux destinataires."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "Vous ne pouvez pas importer de documents pour le moment."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "Vous ne pouvez pas importer de PDF chiffrés."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "Vous n'avez actuellement accès à aucune équipe au sein de cette organ
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "Vous navez pas lautorisation de créer un jeton pour cette équipe."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "Vous n'avez pas encore créé ou reçu de documents. Pour créer un docu
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "Vous avez atteint la limite du nombre de fichiers par enveloppe."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "Vous recevrez une copie par e-mail du document signé une fois que tout
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "Vous êtes administrateur. Vous pouvez activer immédiatement les fonctionnalités dIA pour cette équipe. Tous les membres de l’équipe verront la détection par IA une fois quelle sera activée."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "Vous avez effectué trop de demandes de détection. Veuillez patienter une minute avant de réessayer."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "Vos modèles de signature directe"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "Le contenu de votre document sera envoyé de manière sécurisée à notre fournisseur dIA uniquement pour la détection et ne sera ni stocké ni utilisé pour lapprentissage."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "Votre document a été importé avec succès. Vous serez redirigé vers
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "Votre document est traité en toute sécurité à l'aide de services d'IA qui ne conservent pas vos données."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 carattere in eccesso)} other {(# caratteri in eccess
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, one {{1} di # riga selezionata.} other {{2} di # righe selezionate.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# cartella} other {# cartelle}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, one {# destinatario è stato aggiunto dal rilevamento AI.} other {# destinatari sono stati aggiunti dal rilevamento AI.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 destinatario} other {# destinatari}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, one {Pagina {1} di {2} - # campo trovato} other {Pagina {3} di {4} - # campi trovati}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, one {Pagina {1} di {2} - # destinatario trovato} other {Pagina {3} di {4} - # destinatari trovati}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, one {Destinatario aggiunto} other {Destinatari aggiunti}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {In attesa di 1 destinatario} other {In attesa di # dest
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, one {Abbiamo trovato # campo nel tuo documento.} other {Abbiamo trovato # campi nel tuo documento.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, one {Abbiamo trovato # destinatario nel tuo documento.} other {Abbiamo trovato # destinatari nel tuo documento.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {Non puoi avere più di # chiave di acces
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, one {Non puoi caricare più di # elemento per busta.} other {Non puoi caricare più di # elementi per busta.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> ha richiesto di collegare il tuo account Docum
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> ti ha invitato ad approvare questo documento"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> ti ha invitato ad assistere questo documento"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> ti ha invitato a firmare questo documento"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> ti ha invitato a visualizzare questo documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, per conto di \"{0}\", ti ha invitato ad approvare questo documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, per conto di \"{0}\", ti ha invitato ad assistere questo documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, per conto di \"{0}\", ti ha invitato a firmare questo documento"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0>, per conto di \"{0}\", ti ha invitato a visualizzare questo documento"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>Gestione account:</0> Modifica le impostazioni, le autorizzazioni e l
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>Solo amministratori</0> - Solo gli amministratori possono accedere e visualizzare il documento"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>Eventi:</0> Tutti"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>Chiunque</0> - Chiunque può accedere e visualizzare il documento"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>Eredita metodo di autenticazione</0> - Usa il metodo globale di auten
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>Manager e superiori</0> - Solo i manager e i superiori possono accedere al documento e visualizzarlo"
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "Account abilitato"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "Collegamento dell'account rifiutato"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "Account collegato correttamente"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "Attivo"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "Attivo"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "Aggiungi Dominio Email"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "Aggiungi campi"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "Aggiungi segnaposto"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "Aggiungi destinatari"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "Dopo l'invio, un documento verrà generato automaticamente e aggiunto al
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "Funzionalità IA"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "Le funzionalità di IA sono disabilitate per il tuo team. Chiedi al proprietario del team o al proprietario dellorganizzazione di abilitarle."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "Consente di autenticare utilizzando biometria, gestori di password, chia
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "Quasi finito"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "Si è verificato un errore durante la firma automatica del documento, al
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "Si è verificato un errore durante il completamento del documento. Riprova."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "Si è verificato un errore durante lo spostamento del modello."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "Si è verificato un errore durante il rifiuto del documento. Riprova."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "Si è verificato un errore sconosciuto durante lo spostamento della cart
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "Analisi del layout della pagina in corso"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "Analisi delle pagine in corso"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "Casella di controllo"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "Opzione casella di controllo"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "Contenuto"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "Contesto"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "Copiato"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "Campo copiato"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "Campo copiato negli appunti"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "Impostazioni della data"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David è il dipendente, Lucas è il manager"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "Fuso Orario Predefinito"
msgid "Default Value"
msgstr "Valore predefinito"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "elimina"
@@ -3274,48 +3278,48 @@ msgstr "Dettagli"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "Rileva"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "Rileva campi"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "Rileva destinatari"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "Rileva destinatari con l'IA"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "Rileva con l'IA"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "Campi rilevati"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "Destinatari rilevati"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "Rilevamento dei campi in corso"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "Rilevamento dei destinatari in corso"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "Rilevamento delle aree di firma in corso"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "Rilevamento non riuscito"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "Dispositivo"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "Non hai richiesto una modifica della password? Siamo qui per aiutarti a mettere al sicuro il tuo account, ti basta <0>contattarci</0>."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Documento aperto"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Documento in sospeso"
@@ -3873,7 +3882,7 @@ msgstr "Non hai un account? <0>Registrati</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "Non trasferire (elimina tutti i documenti)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "Es. 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "Abilita Account"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "Abilita il rilevamento IA"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "Abilita le funzionalità di IA"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "Abilita funzionalità basate sull'IA, come il rilevamento automatico dei destinatari. Quando è abilitata, il contenuto del documento verrà inviato ai provider di IA. Utilizziamo solo provider che non conservano i dati per l'addestramento e privilegiamo le regioni europee quando disponibili."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "Abilita ordine di firma"
msgid "Enable SSO portal"
msgstr "Abilita portale SSO"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "Errore"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "Errore durante il rifiuto del collegamento dell'account"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "Errore durante il collegamento dell'account"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "ID esterno"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "Estrazione dei dettagli di contatto in corso"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "Non riuscito"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "Impossibile completare il documento. Riprova."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Aggiornamento webhook fallito"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "Caricamento del CSV non riuscito. Controlla il formato del file e riprova."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "Hai dimenticato la tua password?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "Gratuito"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "Gratuito"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "Vai al documento"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "Vai alla prima pagina"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "Vai all'ultima pagina"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "Vai alla pagina successiva"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "Vai al proprietario"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "Vai alla pagina precedente"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "Aiuta a completare il documento per altri firmatari."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "Aiuta l'IA ad assegnare i campi ai destinatari corretti."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "Qui puoi impostare le preferenze di branding per la tua organizzazione.
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "Qui puoi impostare le preferenze di branding per il tuo team."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "Qui puoi impostare preferenze e valori predefiniti per il tuo team."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "Qui puoi impostare le tue preferenze generali di branding."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "Qui puoi impostare le tue preferenze generali per i documenti."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID copiato negli appunti"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "Identificazione dei campi di input in corso"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "Identificazione dei destinatari in corso"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "Importante: Cosa Significa"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "Inattivo"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "Ereditare metodo di autenticazione"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "Log"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "Ricerca dei campi del modulo in corso"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "Ricerca dei campi firma in corso"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "Gestisci account collegati"
msgid "Manage organisation"
msgstr "Gestisci l'organizzazione"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Gestisci le organizzazioni"
@@ -5706,7 +5726,7 @@ msgstr "Manager e superiori"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "Associazione dei campi ai destinatari in corso"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "Nome prossimo destinatario"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "No"
@@ -5975,11 +5996,11 @@ msgstr "Nessun documento trovato"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "Nessuna email rilevata"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "Nel tuo documento non è stato rilevato alcun campo."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "Nessun destinatario"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "Nel tuo documento non è stato rilevato alcun destinatario."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "Una volta scansionato il codice QR o inserito manualmente il codice, ins
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "Dopo aver aggiornato i record DNS, la propagazione potrebbe richiedere fino a 48 ore. Una volta completata la propagazione dei DNS dovrai tornare qui e premere il pulsante \"Sincronizza\" domini."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "Ops! Qualcosa è andato storto."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "Apri menu"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "Pagina {0} di {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "A pagamento"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "Password aggiornata!"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "In ritardo"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "Leggi l'intera <0>divulgazione della firma</0>."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "Lettura del documento in corso"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "Destinatario"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "Destinatario {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "Rimuovere membro dell'organizzazione"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "Rimuovi destinatario"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "Rispondi all'email"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "Rispondi all'email <0>(facoltativo)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "Riprova"
msgid "Return"
msgstr "Ritorna"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Torna alla pagina di accesso a Documenso qui"
@@ -8120,7 +8146,7 @@ msgstr "Impostazioni del sito"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "Salta"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "Qualcosa è andato storto durante il tentativo di verifica del tuo indir
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "Si è verificato un problema durante il rilevamento dei campi."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "Si è verificato un problema durante il rilevamento dei destinatari."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "Il nome visualizzato per questo indirizzo email"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "Il documento è stato eliminato correttamente."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "Il documento è stato spostato con successo."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "Il documento è stato rifiutato correttamente."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "Il proprietario del documento è stato informato di questo rifiuto. Non
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "Il proprietario del documento è stato informato della tua decisione. Potrebbe contattarti per ulteriori istruzioni, se necessario."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "Il documento è stato creato ma non è stato possibile inviarlo ai destinatari."
@@ -8870,7 +8902,7 @@ msgstr "Il dominio email che stai cercando potrebbe essere stato rimosso, rinomi
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "L'email o la password inserita non è corretta."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "Si sono verificati i seguenti errori:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "I seguenti destinatari richiedono un indirizzo email:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "Il token che hai usato per reimpostare la tua password è scaduto o non
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "Il codice di autenticazione a due fattori inserito non è corretto."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "L'autenticazione a due fattori dell'utente è stata reimpostata con succ
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "La visibilità del documento per il destinatario."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "Questa azione è reversibile, ma fai attenzione poiché l'account potreb
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "Questo può richiedere uno o due minuti a seconda delle dimensioni del documento."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "Questo documento è stato creato utilizzando un link diretto."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "Questo documento è stato inviato tramite <0>Documenso</0>."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "Nome del token"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "Troppe richieste"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "Totale utenti"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "Trasferisci i documenti a un altro team"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "Trigger"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "Riprova"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "Attiva il rilevamento IA per trovare automaticamente destinatari e campi nei tuoi documenti. I provider di IA non conservano i tuoi dati per laddestramento."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "Incompleto"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "Annulla"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "Errore sconosciuto"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "Nome sconosciuto"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "In attesa del tuo turno"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "Vuoi inviare link per la firma eleganti come questo? <0>Dai un'occhiata a Documenso</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "Non siamo riusciti a creare un cliente di Stripe. Si prega di riprovare.
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "Al momento non siamo riusciti ad abilitare le funzionalità di IA. Riprova."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "Abbiamo riscontrato un errore sconosciuto durante il tentativo di elimin
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "Si è verificato un errore sconosciuto durante il tentativo di eliminare il documento. Riprova più tardi."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "Ti risponderemo via email il prima possibile."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "Analizzeremo il tuo documento per trovare campi modulo come linee di firma, campi di testo, caselle di controllo e altro. I campi rilevati ti verranno suggeriti per la revisione."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "Analizzeremo il tuo documento per trovare campi firma e identificare chi deve firmare. I destinatari rilevati ti verranno suggeriti per la revisione."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "Annuale"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Sì"
@@ -10955,12 +10988,12 @@ msgstr "Attualmente stai aggiornando <0>{0}</0>"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "Stai aggiornando <0>{memberName}</0>."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "Stai aggiornando <0>{organisationMemberName}</0>."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "Non sei autorizzato a reimpostare l'autenticazione a due fattori per que
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "Puoi aggiungere manualmente i campi nell'editor."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "Puoi aggiungere manualmente i destinatari nell'editor."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "Puoi abilitare l'accesso per consentire a tutti i membri dell'organizzaz
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "Qui puoi gestire le tue preferenze email."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "Puoi rilevare i campi solo nelle buste in bozza"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "Puoi revocare l'accesso in qualsiasi momento dalle impostazioni del team su Documenso <0>qui</0>."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "Non puoi eliminare un gruppo che ha un ruolo superiore al tuo."
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "Non puoi eliminare questo elemento perché il documento è stato inviato ai destinatari."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "Non puoi caricare documenti in questo momento."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "Non puoi caricare PDF crittografati."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "Attualmente non hai accesso a nessun team all'interno di questa organizz
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "Non hai l'autorizzazione per creare un token per questo team."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "Non hai ancora creato o ricevuto documenti. Per creare un documento cari
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "Hai raggiunto il numero massimo di file consentiti per busta."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "Riceverai una copia del documento firmato via email non appena tutti avr
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "Sei un amministratore. Puoi abilitare subito le funzionalità di IA per questo team. Tutti i membri del team vedranno il rilevamento IA una volta abilitato."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "Hai effettuato troppe richieste di rilevamento. Attendi un minuto prima di riprovare."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "I tuoi modelli di firma diretta"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "Il contenuto del tuo documento sarà inviato in modo sicuro al nostro provider di IA esclusivamente per il rilevamento e non verrà archiviato né utilizzato per laddestramento."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "Il tuo documento è stato caricato correttamente. Sarai reindirizzato al
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "Il tuo documento viene elaborato in modo sicuro utilizzando servizi di IA che non conservano i tuoi dati."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, other {(# 文字超過)}}"
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, other {{2} # 行が選択されています。}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, other {# 個のフォルダ}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, other {AI 検出により # 件の受信者が追加されました。}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, other {# 名の受信者}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, other {ページ {3}/{4} - # 個のフィールドが見つかりました}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, other {ページ {3}/{4} - # 人の受信者が見つかりました}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, other {受信者を追加しました}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, other {# 名の受信者の対応待ち}}"
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, other {ドキュメント内で # 個のフィールドが見つかりました。}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, other {ドキュメント内で # 人の受信者が見つかりました。}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, other {# 個を超えるパスキーを保持
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, other {1 つの封筒にアップロードできるアイテムは # 件までです。}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> が、あなたの現在の Documenso アカ
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんから、この文書の承認依頼が届いています。"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんから、この文書への補助依頼が届いています。"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんから、この文書への署名依頼が届いています。"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんから、この文書の閲覧招待が届いています。"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんが、\"{0}\" を代表してこの文書の承認を依頼しています。"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんが、\"{0}\" を代表してこの文書への補助を依頼しています。"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんが、\"{0}\" を代表してこの文書への署名を依頼しています。"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> さんが、\"{0}\" を代表してこの文書の閲覧を招待しています。"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>アカウント管理:</0> アカウント設定、権限、各種設
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>管理者のみ</0> - 管理者だけがこの文書にアクセスして閲覧できます"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>イベント:</0> すべて"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>全員</0> - すべてのユーザーがこの文書にアクセスして閲覧できます"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>認証方法を継承</0> - 「一般設定」ステップで設定
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>マネージャー以上</0> - ドキュメントにアクセスして表示できるのはマネージャー以上のみです。"
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "アカウントを有効化"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "アカウント連携が拒否されました"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "アカウントが正常に連携されました"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "有効"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "有効"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "メールドメインを追加"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "フィールドを追加"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "プレースホルダーを追加"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "受信者を追加"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "送信後、自動的にドキュメントが生成され、「ドキュ
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "AI 機能"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "チームではAI機能が無効になっています。チームオーナーまたは組織オーナーに有効化を依頼してください。"
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "生体認証、パスワードマネージャー、ハードウェアキ
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "ほぼ完了しました"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "ドキュメントの自動署名中にエラーが発生しました。
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "ドキュメントの完了処理中にエラーが発生しました。もう一度お試しください。"
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "テンプレートの移動中にエラーが発生しました。"
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "ドキュメントの却下処理中にエラーが発生しました。もう一度お試しください。"
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "フォルダの移動中に不明なエラーが発生しました。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "ページレイアウトを分析しています"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "ページを分析しています"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "チェックボックス"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "チェックボックスのオプション"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "コンテンツ"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "コンテキスト"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "コピーしました"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "フィールドをコピーしました"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "フィールドをクリップボードにコピーしました"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "日付設定"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David は従業員で、Lucas はマネージャーです"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "既定のタイムゾーン"
msgid "Default Value"
msgstr "既定値"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "delete"
@@ -3274,48 +3278,48 @@ msgstr "詳細"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "検出"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "フィールドを検出"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "受信者を検出"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "AI で受信者を検出"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "AI で検出"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "検出されたフィールド"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "検出された受信者"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "フィールドを検出しています"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "受信者を検出しています"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "署名欄を検出しています"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "検出に失敗しました"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "デバイス"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "パスワード変更をリクエストしていませんか?アカウントの安全確保をお手伝いしますので、<0>こちらからお問い合わせください</0>。"
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "ドキュメントが開かれました"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "文書は保留中です"
@@ -3873,7 +3882,7 @@ msgstr "アカウントをお持ちでないですか?<0>サインアップ</0
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "転送しない(すべてのドキュメントを削除)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "例: 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "アカウントを有効化"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "AI検出を有効にする"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "AI機能を有効にする"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "自動受信者検出などの AI 搭載機能を有効にします。有効にすると、ドキュメントの内容が AI プロバイダーに送信されます。学習目的でデータを保持しないプロバイダーのみを使用し、利用可能な場合は欧州地域を優先します。"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "署名順序を有効にする"
msgid "Enable SSO portal"
msgstr "SSO ポータルを有効にする"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "エラー"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "アカウント連携の拒否時にエラーが発生しました"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "アカウント連携時にエラーが発生しました"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "外部 ID"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "連絡先情報を抽出しています"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "失敗"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "ドキュメントの完了に失敗しました。もう一度お試しください。"
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Webhook の更新に失敗しました"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "CSV のアップロードに失敗しました。ファイル形式を確認してから、もう一度お試しください。"
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "パスワードをお忘れですか?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "無料"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "無料"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "ドキュメントへ移動"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "最初のページへ移動"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "最後のページへ移動"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "次のページへ移動"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "所有者ページへ移動"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "前のページへ移動"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "他の署名者のためにドキュメントの完了を手伝います
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "AI が正しい受信者にフィールドを割り当てられるように支援します。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "ここでは組織のブランディング設定を行えます。チー
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "ここでは、チーム用のブランディング設定を行うことができます。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "ここでチームの優先設定と既定値を設定できます。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "ここでは、全般的なブランディング設定を行うことができます。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "ここでは、ドキュメント全般の設定を行うことができます。"
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID をクリップボードにコピーしました"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "入力フィールドを特定しています"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "受信者を特定しています"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "重要: これが意味すること"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "無効"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "認証方法を継承"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "ログ"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "フォームフィールドを探しています"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "署名フィールドを探しています"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "リンク済みアカウントを管理"
msgid "Manage organisation"
msgstr "組織を管理"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "組織を管理"
@@ -5706,7 +5726,7 @@ msgstr "マネージャー以上"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "フィールドを受信者に対応付けています"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "次の受信者の名前"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "いいえ"
@@ -5975,11 +5996,11 @@ msgstr "文書が見つかりません"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "メールアドレスが検出されませんでした"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "ドキュメント内でフィールドが検出されませんでした。"
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "受信者なし"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "ドキュメント内で受信者が検出されませんでした。"
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "QR コードをスキャンするかコードを手動で入力したら
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "DNS レコードを更新した後、反映が完了するまで最大 48 時間かかる場合があります。DNS の伝播が完了したら、再度ここに戻り、\"Sync\" domains ボタンを押してください。"
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "問題が発生しました。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "メニューを開く"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "ページ {0} / {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "有料"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "パスワードを更新しました。"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "支払い遅延"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "<0>署名に関する開示</0>をすべて読む。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "ドキュメントを読み込んでいます"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "受信者"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "受信者 {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "組織メンバーを削除"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "受信者を削除"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "返信先メール"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "返信先メールアドレス <0>(任意)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "再試行"
msgid "Return"
msgstr "戻る"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Documenso のサインインページへ戻る"
@@ -8120,7 +8146,7 @@ msgstr "サイト設定"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "スキップ"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "<0>{0}</0> のメールアドレスの認証中に問題が発生しま
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "フィールドの検出中に問題が発生しました。"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "受信者の検出中に問題が発生しました。"
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "このメールアドレスの表示名です"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "ドキュメントは正常に削除されました。"
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "ドキュメントは正常に移動されました。"
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "ドキュメントは正常に却下されました。"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "この却下内容について、ドキュメントの所有者に通知
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "お客様の決定について、ドキュメントの所有者に通知しました。必要に応じて、追加の手順について連絡がある場合があります。"
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "文書は作成されましたが、受信者に送信できませんでした。"
@@ -8870,7 +8902,7 @@ msgstr "お探しのメールドメインは削除されたか、名前が変更
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "入力されたメールアドレスまたはパスワードが正しくありません。"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "次のエラーが発生しました。"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "次の受信者にはメールアドレスが必要です:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "パスワードリセットに使用したトークンは、有効期限
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "入力された二要素認証コードが正しくありません。"
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "ユーザーの二要素認証を正常にリセットしました。"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "受信者に対するドキュメントの表示範囲です。"
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "この操作は元に戻すことができますが、アカウントに
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "ドキュメントのサイズによっては、1~2 分かかる場合があります。"
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "この文書はダイレクトリンクから作成されました。"
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "このドキュメントは <0>Documenso</0> を使用して送信されました。"
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "トークン名"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "リクエストが多すぎます"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "ユーザー総数"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "ドキュメントを別のチームに転送する"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "トリガー"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "再試行"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "AI検出をオンにすると、ドキュメント内の受信者とフィールドを自動的に検出できます。AIプロバイダーは、トレーニング目的でお客様のデータを保持しません。"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "未完了"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "元に戻す"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "不明なエラーが発生しました"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "不明な名前"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "あなたの順番待ち"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "このようなスマートな署名リンクを送りたいですか?<0>Documenso をチェックしてみてください</0>。"
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "Stripe 顧客を作成できませんでした。もう一度お試し
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "現在AI機能を有効にできませんでした。もう一度お試しください。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "アカウントの削除中に不明なエラーが発生しました。
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "ドキュメントの削除を試行中に不明なエラーが発生しました。後でもう一度お試しください。"
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "できるだけ早くメールでご連絡いたします。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "署名欄、テキスト入力、チェックボックスなどのフォームフィールドを見つけるためにドキュメントをスキャンします。検出されたフィールドは、確認用として提案されます。"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "署名フィールドを見つけて、誰が署名する必要があるかを特定するためにドキュメントをスキャンします。検出された受信者は、確認用として提案されます。"
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "年額"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "はい"
@@ -10955,12 +10988,12 @@ msgstr "現在、<0>{0}</0> を更新しています"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "現在、<0>{memberName}</0> を更新しています。"
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "現在、<0>{organisationMemberName}</0> を更新しています。"
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "このユーザーの二要素認証をリセットする権限があり
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "エディターでフィールドを手動で追加できます。"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "エディターで受信者を手動で追加できます。"
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "このチームに対して、すべての組織メンバーへのデフ
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "ここでメール通知の設定を管理できます。"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "ドラフトの封筒でのみフィールドを検出できます"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "Documenso のチーム設定から、いつでもアクセス権を取り消すことができます。<0>こちら</0>。"
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "自分より権限の高いロールを持つグループは削除でき
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "このドキュメントはすでに受信者に送信されているため、この項目を削除することはできません。"
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "現在、ドキュメントをアップロードすることはできま
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "暗号化された PDF はアップロードできません。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "現在、この組織内のいずれのチームにもアクセスでき
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "このチームのトークンを作成する権限がありません。"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "まだ文書を作成または受信していません。文書を作成
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "1つの封筒にアップロードできるファイル数の上限に達しました。"
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "全員の署名が完了すると、署名済みドキュメントのコ
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "あなたは管理者です。このチーム向けのAI機能をすぐに有効にできます。有効化されると、チームの全員にAI検出が表示されるようになります。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "検出リクエストが多すぎます。1 分ほど待ってから、もう一度お試しください。"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "あなたのダイレクト署名テンプレート"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "ドキュメントの内容は、検出のためだけに安全な方法で当社のAIプロバイダーに送信され、保存されたり学習に利用されたりすることはありません。"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "文書を正常にアップロードしました。テンプレートペ
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "ドキュメントは、データを保持しない AI サービスを使用して安全に処理されます。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, other {(#자 초과)}}"
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, other {{2} / #개 행이 선택되었습니다.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, other {폴더 #개}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, other {AI 감지에서 #명의 수신자가 추가되었습니다.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, other {#명 수신자}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, other {페이지 {1}/{2} - 필드 #개 발견됨}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, other {페이지 {1}/{2} - 수신자 #명 발견됨}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, other {수신자 추가됨}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, other {#명의 수신자 대기 중}}"
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, other {문서에서 필드 #개를 발견했습니다.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, other {문서에서 수신자 #명을 발견했습니다.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, other {패스키는 #개를 초과하여 가
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, other {하나의 봉투에는 최대 #개의 항목만 업로드할 수 있습니다.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0>에서 귀하의 기존 Documenso 계정을 조
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 이 문서를 승인해 달라고 초대했습니다."
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 이 문서를 처리하는 데 참여해 달라고 초대했습니다."
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 이 문서에 서명해 달라고 초대했습니다."
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 이 문서를 열람해 달라고 초대했습니다."
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 \"{0}\"을(를) 대신하여 이 문서를 승인해 달라고 초대했습니다."
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 \"{0}\"을(를) 대신하여 이 문서를 처리하는 데 참여해 달라고 초대했습니다."
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 \"{0}\"을(를) 대신하여 이 문서에 서명해 달라고 초대했습니다."
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 님이 \"{0}\"을(를) 대신하여 이 문서를 열람해 달라고 초대했습니다."
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>계정 관리:</0> 계정 설정, 권한 및 기본 설정 변경"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>관리자 전용</0> - 관리자만 이 문서에 접근하고 열람할 수 있습니다."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>이벤트:</0> 전체"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>모든 사용자</0> - 모든 사용자가 이 문서에 접근하고 열람할 수 있습니다."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>인증 방식 상속</0> - \"일반 설정\" 단계에서 구성한
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>관리자 이상</0> - 관리자 이상만 문서에 접근하고 열람할 수 있습니다."
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "계정 활성화됨"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "계정 연결이 거부되었습니다."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "계정이 성공적으로 연결되었습니다."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "활성"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "활성"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "이메일 도메인 추가"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "필드 추가"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "플레이스홀더 추가"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "수신자 추가"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "제출이 완료되면 문서가 자동으로 생성되어 문서 페이
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "AI 기능"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "AI 기능이 현재 팀에서 비활성화되어 있습니다. 팀 소유자 또는 조직 소유자에게 AI 기능을 활성화해 달라고 요청하세요."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "생체 인증, 비밀번호 관리자, 하드웨어 키 등을 사용해
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "거의 완료되었습니다."
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "문서를 자동 서명하는 동안 오류가 발생하여 일부 필
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "문서를 완료하는 중 오류가 발생했습니다. 다시 시도해 주세요."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "템플릿을 이동하는 중 오류가 발생했습니다."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "문서를 거부하는 중 오류가 발생했습니다. 다시 시도해 주세요."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "폴더를 이동하는 동안 알 수 없는 오류가 발생했습니
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "페이지 레이아웃 분석 중"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "페이지 분석 중"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "체크박스"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "체크박스 옵션"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "콘텐츠"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "컨텍스트"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "복사됨"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "필드를 복사했습니다."
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "필드를 클립보드에 복사했습니다."
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "날짜 설정"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David는 직원이고, Lucas는 관리자입니다."
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "기본 시간대"
msgid "Default Value"
msgstr "기본값"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "delete"
@@ -3274,48 +3278,48 @@ msgstr "세부 정보"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "감지"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "필드 감지"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "수신자 감지"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "AI로 수신자 감지"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "AI로 감지"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "감지된 필드"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "감지된 수신자"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "필드 감지 중"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "수신자 감지 중"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "서명 영역 감지 중"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "감지 실패"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "디바이스"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "비밀번호 변경을 요청하지 않으셨나요? 계정을 안전하게 보호하실 수 있도록 도와드리겠습니다. <0>문의하기</0>만 해 주세요."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "문서가 열렸습니다."
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "문서 보류 중"
@@ -3873,7 +3882,7 @@ msgstr "계정이 없으신가요? <0>가입하기</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "전송하지 않음(모든 문서 삭제)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "예: 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "계정 활성화"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "AI 감지 활성화"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "AI 기능 활성화"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "자동 수신자 감지와 같은 AI 기반 기능을 활성화합니다. 활성화하면 문서 내용이 AI 제공업체로 전송됩니다. 당사는 학습용으로 데이터를 보관하지 않는 제공업체만 사용하며, 가능한 경우 유럽 리전을 우선적으로 사용합니다."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "서명 순서 활성화"
msgid "Enable SSO portal"
msgstr "SSO 포털 활성화"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "오류"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "계정 연결 거부 중 오류가 발생했습니다."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "계정 연결 중 오류가 발생했습니다."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "외부 ID"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "연락처 정보 추출 중"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "실패"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "문서를 완료하지 못했습니다. 다시 시도해 주세요."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "웹훅을 업데이트하지 못했습니다"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "CSV 업로드에 실패했습니다. 파일 형식을 확인한 뒤 다시 시도해 주세요."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "비밀번호를 잊으셨나요?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "무료"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "무료"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "문서로 이동"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "첫 페이지로 이동하기"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "마지막 페이지로 이동하기"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "다음 페이지로 이동하기"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "소유자로 이동"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "이전 페이지로 이동하기"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "다른 서명자들을 대신해 문서를 완료하도록 도와주세
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "AI가 올바른 수신자에게 필드를 할당할 수 있도록 도와주세요."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "여기에서 조직의 브랜딩 기본 설정을 설정할 수 있습
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "여기에서 팀의 브랜딩 기본 설정을 구성할 수 있습니다."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "여기에서 팀에 대한 환경설정과 기본값을 설정할 수
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "여기에서 일반 브랜딩 기본 설정을 구성할 수 있습니다."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "여기에서 문서에 대한 일반 기본 설정을 구성할 수 있습니다."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID가 클립보드에 복사되었습니다."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "입력 필드 식별 중"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "수신자 식별 중"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "중요: 이것이 의미하는 것"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "비활성"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "인증 방식 상속"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "로그"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "양식 필드를 찾는 중"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "서명 필드를 찾는 중"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "연결된 계정 관리"
msgid "Manage organisation"
msgstr "조직 관리"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "조직 관리"
@@ -5706,7 +5726,7 @@ msgstr "관리자 이상"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "필드를 수신자에 매핑하는 중"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "다음 수신자 이름"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "아니요"
@@ -5975,11 +5996,11 @@ msgstr "문서를 찾을 수 없습니다"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "이메일이 감지되지 않았습니다."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "문서에서 감지된 필드가 없습니다."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "수신자 없음"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "문서에서 감지된 수신자가 없습니다."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "QR 코드를 스캔하거나 코드를 직접 입력한 후, 인증 앱
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "DNS 레코드를 업데이트한 후 전파가 완료되기까지 최대 48시간이 걸릴 수 있습니다. DNS 전파가 완료되면 다시 이곳으로 돌아와서 \\\"도메인 동기화\\\" 버튼을 눌러야 합니다."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "문제가 발생했습니다."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "메뉴 열기"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "페이지 {0}/{numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "유료"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "비밀번호가 업데이트되었습니다!"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "연체"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "전체 <0>전자 서명 고지</0>를 읽어 보세요."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "문서를 읽는 중"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "수신자"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "수신자 {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "조직 구성원 제거"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "수신자 제거"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "회신 이메일"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "이메일 회신 <0>(선택 사항)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "재시도"
msgid "Return"
msgstr "돌아가기"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "여기를 눌러 Documenso 로그인 페이지로 돌아가기"
@@ -8120,7 +8146,7 @@ msgstr "사이트 설정"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "건너뛰기"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "<0>{0}</0> 팀의 이메일 주소를 확인하는 중 문제가 발생
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "필드를 감지하는 동안 문제가 발생했습니다."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "수신자를 감지하는 동안 문제가 발생했습니다."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "이 이메일 주소의 표시 이름입니다."
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "문서가 성공적으로 삭제되었습니다."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "문서가 성공적으로 이동되었습니다."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "문서가 성공적으로 거부되었습니다."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "문서 소유자에게 이 거부 사실이 통보되었습니다. 현
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "문서 소유자에게 귀하의 결정이 이미 전달되었습니다. 필요할 경우 추가 안내를 위해 연락을 드릴 수 있습니다."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "문서는 생성되었지만 수신자에게 발송되지 않았습니다."
@@ -8870,7 +8902,7 @@ msgstr "찾고 있는 이메일 도메인은 삭제되었거나 이름이 변경
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "입력하신 이메일 또는 비밀번호가 올바르지 않습니다."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "다음 오류가 발생했습니다."
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "다음 수신자에게는 이메일 주소가 필요합니다:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "사용한 토큰이 만료되었거나 존재하지 않습니다. 여전
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "입력하신 2단계 인증 코드가 올바르지 않습니다."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "사용자의 2단계 인증이 성공적으로 재설정되었습니다.
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "수신자에게 보이는 문서의 가시성입니다."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "이 작업은 되돌릴 수 있지만, 계정 설정 및 콘텐츠가
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "문서 크기에 따라 1~2분 정도 소요될 수 있습니다."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "이 문서는 직접 링크를 사용해 생성되었습니다."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "이 문서는 <0>Documenso</0>를 사용하여 전송되었습니다."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "토큰 이름"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "요청이 너무 많습니다."
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "전체 사용자 수"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "문서를 다른 팀으로 전송"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "트리거"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "다시 시도"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "AI 감지를 켜서 문서에서 수신인과 필드를 자동으로 찾을 수 있습니다. AI 공급자는 학습을 위해 귀하의 데이터를 보관하지 않습니다."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "미완료"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "실행 취소"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "알 수 없는 오류"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "이름을 알 수 없음"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "내 차례를 기다리는 중"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "이와 같이 세련된 서명 링크를 보내고 싶으신가요? <0>Documenso를 확인해 보세요</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "Stripe 고객을 생성하지 못했습니다. 다시 시도해 주세
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "지금은 AI 기능을 활성화할 수 없습니다. 다시 시도해 주세요."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "계정을 삭제하는 중 알 수 없는 오류가 발생했습니다.
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "문서를 삭제하는 동안 알 수 없는 오류가 발생했습니다. 잠시 후 다시 시도해 주세요."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "가능한 한 빨리 이메일로 다시 연락드리겠습니다."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "문서에서 서명 줄, 텍스트 입력란, 체크박스 등과 같은 양식 필드를 찾기 위해 스캔합니다. 감지된 필드는 검토할 수 있도록 제안됩니다."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "문서에서 서명 필드를 찾고 누가 서명해야 하는지 식별하기 위해 스캔합니다. 감지된 수신자는 검토할 수 있도록 제안됩니다."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "연간"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "예"
@@ -10955,12 +10988,12 @@ msgstr "현재 <0>{0}</0>을(를) 업데이트하고 있습니다."
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "현재 <0>{memberName}</0>을(를) 수정하고 있습니다."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "현재 <0>{organisationMemberName}</0>을(를) 수정하고 있습니다."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "이 사용자의 2단계 인증을 재설정할 권한이 없습니다."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "편집기에서 필드를 수동으로 추가할 수 있습니다."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "편집기에서 수신자를 수동으로 추가할 수 있습니다."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "조직의 모든 구성원이 기본적으로 이 팀에 접근할 수
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "이메일 기본 설정은 여기에서 관리할 수 있습니다."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "필드는 초안 봉투에서만 감지할 수 있습니다."
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "언제든지 Documenso의 팀 설정에서 <0>여기</0>에서 액세스를 취소할 수 있습니다."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "본인보다 높은 역할을 가진 그룹은 삭제할 수 없습니
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "이 문서는 이미 수신자에게 전송되었기 때문에 이 항목을 삭제할 수 없습니다."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "현재는 문서를 업로드할 수 없습니다."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "암호화된 PDF는 업로드할 수 없습니다."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "현재 이 조직 내 어느 팀에도 접근 권한이 없습니다.
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "이 팀에 대한 토큰을 생성할 권한이 없습니다."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "아직 문서를 생성하거나 받지 않았습니다. 문서를 생
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "하나의 봉투에 포함할 수 있는 파일 수 한도에 도달했습니다."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "모두 서명하면 서명된 문서의 사본이 이메일로 전송됩
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "관리자이므로 지금 바로 이 팀에 대해 AI 기능을 활성화할 수 있습니다. 활성화되면 팀의 모든 구성원이 AI 감지를 사용할 수 있습니다."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "감지 요청을 너무 많이 보냈습니다. 잠시 후 다시 시도해 주세요."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "직접 서명 템플릿"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "문서 내용은 감지 목적에 한해 안전하게 AI 공급자에게 전송되며, 저장되거나 학습용으로 사용되지 않습니다."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "문서가 성공적으로 업로드되었습니다. 템플릿 페이지
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "문서는 데이터를 보관하지 않는 AI 서비스를 사용해 안전하게 처리됩니다."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 06:05\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {(1 teken te veel)} other {(# tekens te veel)}}"
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, one {{1} van # rij geselecteerd.} other {{2} van # rijen geselecteerd.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# map} other {# mappen}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, one {# ontvanger is toegevoegd via AI-detectie.} other {# ontvangers zijn toegevoegd via AI-detectie.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 ontvanger} other {# ontvangers}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, one {Pagina {1} van {2} - # veld gevonden} other {Pagina {3} van {4} - # velden gevonden}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, one {Pagina {1} van {2} - # ontvanger gevonden} other {Pagina {3} van {4} - # ontvangers gevonden}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, one {Ontvanger toegevoegd} other {Ontvangers toegevoegd}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {Wacht op 1 ontvanger} other {Wacht op # ontvangers}}"
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, one {We hebben # veld in je document gevonden.} other {We hebben # velden in je document gevonden.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, one {We hebben # ontvanger in je document gevonden.} other {We hebben # ontvangers in je document gevonden.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {U kunt niet meer dan # passkey hebben.}
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, one {Je kunt niet meer dan # item per envelop uploaden.} other {Je kunt niet meer dan # items per envelop uploaden.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> heeft verzocht om je huidige Documenso-account
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> heeft je uitgenodigd om dit document goed te keuren"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> heeft je uitgenodigd om bij dit document te assisteren"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> heeft je uitgenodigd om dit document te ondertekenen"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> heeft je uitgenodigd om dit document te bekijken"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> namens \"{0}\" heeft je uitgenodigd om dit document goed te keuren"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> namens \"{0}\" heeft je uitgenodigd om bij dit document te assisteren"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> namens \"{0}\" heeft je uitgenodigd om dit document te ondertekenen"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> namens \"{0}\" heeft je uitgenodigd om dit document te bekijken"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>Accountbeheer:</0> Je accountinstellingen, rechten en voorkeuren wijz
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>Alleen beheerders</0> - Alleen beheerders kunnen toegang krijgen tot en het document bekijken"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>Gebeurtenissen:</0> Alle"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>Iedereen</0> - Iedereen kan toegang krijgen tot en het document bekijken"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>Authenticatiemethode overnemen</0> - Gebruik de globale authenticatie
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>Managers en hoger</0> - Alleen managers en hoger kunnen het document openen en bekijken."
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "Account ingeschakeld"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "Koppeling van account geweigerd"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "Account succesvol gekoppeld"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "Actief"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "Actief"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "E-maildomein toevoegen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "Velden toevoegen"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "Placeholders toevoegen"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "Ontvangers toevoegen"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "Na indiening wordt er automatisch een document gegenereerd en toegevoegd
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "AI-functies"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "AI-functies zijn uitgeschakeld voor je team. Vraag de eigenaar van je team of de eigenaar van de organisatie om ze in te schakelen."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "Maakt authenticatie mogelijk met biometrie, wachtwoordbeheerders, hardwa
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "Bijna klaar"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "Er is een fout opgetreden tijdens het automatisch ondertekenen van het d
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "Er is een fout opgetreden bij het voltooien van het document. Probeer het opnieuw."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "Er is een fout opgetreden bij het verplaatsen van de sjabloon."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "Er is een fout opgetreden bij het afwijzen van het document. Probeer het opnieuw."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "Er is een onbekende fout opgetreden tijdens het verplaatsen van de map."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "Paginalay-out analyseren"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "Pagina's analyseren"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "Selectievakje"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "Checkbox-optie"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "Inhoud"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "Context"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "Gekopieerd"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "Veld gekopieerd"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "Veld naar klembord gekopieerd"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "Datuminstellingen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David is de werknemer, Lucas is de manager"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "Standaardtijdzone"
msgid "Default Value"
msgstr "Standaardwaarde"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "verwijderen"
@@ -3274,48 +3278,48 @@ msgstr "Details"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "Detecteren"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "Velden detecteren"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "Ontvangers detecteren"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "Ontvangers met AI detecteren"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "Detecteren met AI"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "Gedetecteerde velden"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "Gedetecteerde ontvangers"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "Velden detecteren"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "Ontvangers detecteren"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "Handtekeninggebieden detecteren"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "Detectie mislukt"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "Apparaat"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "Geen wachtwoordwijziging aangevraagd? We helpen je graag je account te beveiligen, neem gewoon <0>contact met ons op</0>."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Document geopend"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Document in behandeling"
@@ -3873,7 +3882,7 @@ msgstr "Nog geen account? <0>Registreer</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "Niet overdragen (alle documenten verwijderen)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "Bijv. 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "Account inschakelen"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "AI-detectie inschakelen"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "AI-functies inschakelen"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "Schakel AI-functies in, zoals automatische detectie van ontvangers. Wanneer dit is ingeschakeld, wordt de documentinhoud naar AI-providers verzonden. We gebruiken alleen providers die geen gegevens bewaren voor training en geven waar mogelijk de voorkeur aan Europese regio's."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "Ondertekeningsvolgorde inschakelen"
msgid "Enable SSO portal"
msgstr "SSO-portaal inschakelen"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "Fout"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "Fout bij weigeren van accountkoppeling"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "Fout bij koppelen van account"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "Externe ID"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "Contactgegevens extraheren"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "Mislukt"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "Het is niet gelukt om het document te voltooien. Probeer het opnieuw."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Bijwerken van webhook mislukt"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "CSV uploaden is mislukt. Controleer de bestandsindeling en probeer het opnieuw."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "Wachtwoord vergeten?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "Gratis"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "Gratis"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "Ga naar document"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "Ga naar eerste pagina"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "Ga naar laatste pagina"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "Ga naar volgende pagina"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "Ga naar eigenaar"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "Ga naar vorige pagina"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "Help het document voor andere ondertekenaars te voltooien."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "Help de AI om velden aan de juiste ontvangers toe te wijzen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "Hier kun je brandingvoorkeuren instellen voor je organisatie. Teams neme
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "Hier kun je de brandingvoorkeuren voor je team instellen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "Hier kun je voorkeuren en standaardinstellingen voor je team instellen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "Hier kun je je algemene brandingvoorkeuren instellen."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "Hier kun je je algemene documentvoorkeuren instellen."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID naar klembord gekopieerd"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "Invoervelden identificeren"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "Ontvangers identificeren"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "Belangrijk: wat dit betekent"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "Inactief"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "Authenticatiemethode overnemen"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "Logboeken"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "Zoeken naar formulier­velden"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "Zoeken naar handtekeningvelden"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "Gekoppelde accounts beheren"
msgid "Manage organisation"
msgstr "Organisatie beheren"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Organisaties beheren"
@@ -5706,7 +5726,7 @@ msgstr "Managers en hoger"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "Velden aan ontvangers koppelen"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "Naam volgende ontvanger"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "Nee"
@@ -5975,11 +5996,11 @@ msgstr "Geen documenten gevonden"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "Geen e-mailadres gedetecteerd"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "Er zijn geen velden in uw document gedetecteerd."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "Geen ontvangers"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "Er zijn geen ontvangers in uw document gedetecteerd."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "Zodra je de QRcode hebt gescand of de code handmatig hebt ingevoerd,
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "Zodra je je DNS-records hebt bijgewerkt, kan het tot 48 uur duren voordat deze zijn doorgevoerd. Zodra de DNS-propagatie is voltooid, moet je hier terugkomen en op de knop \"Domeinen synchroniseren\" klikken."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "Oeps! Er is iets misgegaan."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "Menu openen"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "Pagina {0} van {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "Betaald"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "Wachtwoord bijgewerkt."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "Achterstallig"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "Lees de volledige <0>kennisgeving elektronische handtekening</0>."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "Uw document wordt gelezen"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "Ontvanger"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "Ontvanger {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "Organisatielid verwijderen"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "Ontvanger verwijderen"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "Reply-to e-mailadres"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "Antwoord op e-mail <0>(optioneel)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "Opnieuw proberen"
msgid "Return"
msgstr "Terugkeren"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Ga hier terug naar de Documenso-aanmeldpagina"
@@ -8120,7 +8146,7 @@ msgstr "Siteinstellingen"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "Overslaan"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "Er is iets misgegaan bij het verifiëren van je emailadres voor <0>{0
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "Er is iets misgegaan bij het detecteren van velden."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "Er is iets misgegaan bij het detecteren van ontvangers."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "De weergavenaam voor dit e-mailadres"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "Het document is succesvol verwijderd."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "Het document is succesvol verplaatst."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "Het document is succesvol afgewezen."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "De documenteigenaar is op de hoogte gebracht van deze weigering. Er is o
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "De documenteigenaar is op de hoogte gebracht van je beslissing. Indien nodig kan diegene contact met je opnemen met verdere instructies."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "Het document is aangemaakt, maar kon niet naar ontvangers worden verzonden."
@@ -8870,7 +8902,7 @@ msgstr "Het e-maildomein dat u zoekt, is mogelijk verwijderd, hernoemd of heeft
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "Het opgegeven e-mailadres of wachtwoord is onjuist."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "De volgende fouten zijn opgetreden:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "De volgende ontvangers hebben een e-mailadres nodig:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "Het token waarmee je je wachtwoord probeerde te resetten, is verlopen of
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "De opgegeven code voor multifactorauthenticatie is onjuist."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "De tweefactorauthenticatie van de gebruiker is succesvol gereset."
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "De zichtbaarheid van het document voor de ontvanger."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "Deze actie is omkeerbaar, maar wees voorzichtig, want het account kan bl
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "Dit kan een of twee minuten duren, afhankelijk van de grootte van uw document."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "Dit document is aangemaakt met een directe link."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "Dit document is verzonden met <0>Documenso</0>."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "Tokennaam"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "Te veel verzoeken"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "Totaal aantal gebruikers"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "Documenten overdragen naar een ander team"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "Triggers"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "Opnieuw proberen"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "Schakel AI-detectie in om automatisch ontvangers en velden in je documenten te vinden. AI-aanbieders bewaren je gegevens niet voor trainingsdoeleinden."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "Onvoltooid"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "Ongedaan maken"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "Onbekende fout"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "Onbekende naam"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "Wachten op jouw beurt"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "Wil je ook van die strakke ondertekenlinks versturen zoals deze? <0>Bekijk Documenso</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "We konden geen Stripe-klant aanmaken. Probeer het opnieuw."
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "We konden AI-functies nu niet inschakelen. Probeer het opnieuw."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "Er is een onbekende fout opgetreden bij het verwijderen van je account.
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "Er is een onbekende fout opgetreden bij het proberen verwijderen van uw document. Probeer het later opnieuw."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "We nemen zo snel mogelijk per e-mail contact met u op."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "We scannen uw document om formuliervelden te vinden, zoals handtekeningsregels, tekstvelden, selectievakjes en meer. Gedetecteerde velden worden als voorstel weergegeven zodat u ze kunt controleren."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "We scannen uw document om handtekeningvelden te vinden en te bepalen wie moet ondertekenen. Gedetecteerde ontvangers worden als voorstel weergegeven zodat u ze kunt controleren."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "Jaarlijks"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Ja"
@@ -10955,12 +10988,12 @@ msgstr "Je werkt momenteel <0>{0}</0> bij"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "Je werkt momenteel <0>{memberName}</0> bij."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "Je werkt momenteel <0>{organisationMemberName}</0> bij."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "U bent niet gemachtigd om de tweefactorauthenticatie voor deze gebruiker
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "U kunt velden handmatig toevoegen in de editor."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "U kunt ontvangers handmatig toevoegen in de editor."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "Je kunt de toegang inschakelen zodat alle organisatieleden standaard toe
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "Je kunt hier je e-mailvoorkeuren beheren."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "U kunt alleen velden detecteren in concept-enveloppen"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "Je kunt de toegang op elk moment intrekken in je teaminstellingen op Documenso, <0>hier</0>."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "Je kunt geen groep verwijderen die een hogere rol heeft dan jij."
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "Je kunt dit item niet verwijderen, omdat het document naar ontvangers is verzonden."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "Je kunt op dit moment geen documenten uploaden."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "Je kunt geen versleutelde pdf-bestanden uploaden."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "Je hebt momenteel geen toegang tot teams binnen deze organisatie. Neem c
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "Je hebt geen toestemming om een token voor dit team te maken."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "Je hebt nog geen documenten aangemaakt of ontvangen. Upload een document
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "Je hebt het limiet bereikt voor het aantal bestanden per envelop."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "U ontvangt een kopie van het ondertekende document per e-mail zodra iede
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "Je bent een beheerder. Je kunt AI-functies voor dit team direct inschakelen. Iedereen in het team ziet AI-detectie zodra deze is ingeschakeld."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "U heeft te veel detectieverzoeken gedaan. Wacht een minuut voordat u het opnieuw probeert."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "Je directe ondertekeningssjablonen"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "De inhoud van je document wordt veilig naar onze AI-aanbieder verzonden uitsluitend voor detectie en wordt niet opgeslagen of gebruikt voor training."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "Je document is succesvol geüpload. Je wordt doorgestuurd naar de sjablo
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "Uw document wordt veilig verwerkt met AI-diensten die uw gegevens niet bewaren."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+158 -125
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 18:05\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, one {Przekroczono 1 znak} few {Przekroczono # znaki} many {P
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, one {Zaznaczono {1} z # wiersza.} few {Zaznaczono {2} z # wierszy.} many {Zaznaczono {2} z # wierszy.} other {Zaznaczono {2} z # wierszy.}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, one {# folder} few {# foldery} many {# folderów} other {# f
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, one {Dodano # odbiorcę na podstawie wykrycia przez AI.} few {Dodano # odbiorców na podstawie wykrycia przez AI.} many {Dodano # odbiorców na podstawie wykrycia przez AI.} other {Dodano # odbiorców na podstawie wykrycia przez AI.}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, one {1 odbiorca} few {# odbiorców} many {# odbiorców} othe
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, one {Strona {1} z {2} - znaleziono # pole} few {Strona {3} z {4} - znaleziono # pola} many {Strona {3} z {4} - znaleziono # pól} other {Strona {3} z {4} - znaleziono # pól}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, one {Strona {1} z {2} - znaleziono # odbiorcę} few {Strona {3} z {4} - znaleziono # odbiorców} many {Strona {3} z {4} - znaleziono # odbiorców} other {Strona {3} z {4} - znaleziono # odbiorców}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, one {Odbiorca został dodany} few {Odbiorcy zostali dodani} many {Odbiorcy zostali dodani} other {Odbiorcy zostali dodani}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, one {Oczekiwanie na 1 odbiorcę} few {Oczekiwanie na # odbio
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, one {Znaleźliśmy # pole w dokumencie.} few {Znaleźliśmy # pola w dokumencie.} many {Znaleźliśmy # pól w dokumencie.} other {Znaleźliśmy # pól w dokumencie.}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, one {Znaleźliśmy # odbiorcę w dokumencie.} few {Znaleźliśmy # odbiorców w dokumencie.} many {Znaleźliśmy # odbiorców w dokumencie.} other {Znaleźliśmy # odbiorców w dokumencie.}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, one {Nie możesz mieć więcej niż # klucz d
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, one {Nie możesz przesłać więcej niż # element na kopertę.} few {Nie możesz przesłać więcej niż # elementy na kopertę.} many {Nie możesz przesłać więcej niż # elementów na kopertę.} other {Nie możesz przesłać więcej niż # elementów na kopertę.}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "Organizacja <0>{organisationName}</0> poprosiła o połączenie Twojego
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> zaprosił Cię do zatwierdzenia dokumentu"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> zaprosił Cię do przygotowania dokumentu"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> zaprosił Cię do podpisania dokumentu"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> zaprosił Cię do wyświetlenia dokumentu"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> z zespołu „{0}” zaprosił Cię do zatwierdzenia dokumentu"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> z zespołu „{0}” zaprosił Cię do przygotowania dokumentu"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> z zespołu „{0}” zaprosił Cię do podpisania dokumentu"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "Użytkownik <0>{senderName} {senderEmail}</0> z zespołu „{0}” zaprosił Cię do wyświetlenia dokumentu"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>Zarządzanie kontem:</0> Zmienianie ustawień konta i uprawnień"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>Tylko dla administratorów</0> Tylko administratorzy mogą uzyskać dostęp do dokumentu i go wyświetlić"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>Zdarzenia:</0> Wszystkie"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>Wszyscy</0> Każdy może uzyskać dostęp do dokumentu i go wyświetlić"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>Odziedzicz metodę uwierzytelniania</0> Użyj metody uwierzytelni
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>Managerowie i wyżej</0> Tylko managerowie i wyżej mogą uzyskać dostęp do dokumentu"
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "Konto zostało włączone"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "Połączenie konta zostało odrzucone"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "Konto zostało połączone"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1042,12 +1042,12 @@ msgstr "Akcje"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx
msgid "Active"
msgstr "Aktywne"
msgstr "Aktywny"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "Aktywna"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "Dodaj domenę"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "Dodaj pola"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "Dodaj domyślny tekst"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "Dodaj odbiorców"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "Przesłany dokument zostanie automatycznie dodany do Twojej strony dokum
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "Funkcje AI"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "Funkcje AI są wyłączone w zespole. Poproś właściciela zespołu lub organizacji o ich włączenie."
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "Zezwalaj na uwierzytelnianie za pomocą biometrii, menedżerów haseł,
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "Prawie gotowe"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "Wystąpił błąd podczas automatycznego podpisywania dokumentu. Niektó
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "Wystąpił błąd podczas próby zakończenia dokumentu. Spróbuj ponownie."
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "Wystąpił błąd podczas przenoszenia szablonu."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "Wystąpił błąd podczas odrzucania dokumentu. Spróbuj ponownie."
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "Wystąpił nieznany błąd podczas przenoszenia folderu."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "Analizowanie układu strony"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "Analizowanie stron"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "Pole wyboru"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "Opcja pola wyboru"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "Zawartość"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "Kontekst"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "Skopiowano"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "Skopiowano pole"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "Pole zostało skopiowane do schowka"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "Ustawienia daty"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David jest pracownikiem. Lucas jest managerem."
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "Domyślna strefa czasowa"
msgid "Default Value"
msgstr "Domyślna wartość"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "usuń"
@@ -3274,48 +3278,48 @@ msgstr "Szczegóły"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "Wykryj"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "Wykryj pola"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "Wykryj odbiorców"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "Wykryj odbiorców za pomocą AI"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "Wykryj za pomocą AI"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "Wykryte pola"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "Wykryci odbiorcy"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "Wykrywanie pól"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "Wykrywanie odbiorców"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "Wykrywanie pól podpisu"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "Wykrywanie nie powiodło się"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "Urządzenie"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "To nie Twoja prośba? Jesteśmy tutaj, aby pomóc Ci zabezpieczyć konto. <0>Skontaktuj się z nami</0>."
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3583,7 +3587,7 @@ msgstr "Tworzenie dokumentu"
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
msgid "Document deleted"
msgstr "Dokument usunięty"
msgstr "Usunięto dokument"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Otwarto dokument"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Dokument oczekujący"
@@ -3698,7 +3707,7 @@ msgstr "Dokument został ponownie wysłany"
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document rejected"
msgstr "Dokument odrzucony"
msgstr "Odrzucono dokument"
#: apps/remix/app/components/embed/embed-document-rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
@@ -3873,7 +3882,7 @@ msgstr "Nie masz konta? <0>Zarejestruj się</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "Nie przenoś (usuń wszystkie dokumenty)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "Np. 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "Włącz konto"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "Włącz wykrywanie za pomocą AI"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "Włącz funkcje AI"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "Włącz funkcje oparte na sztucznej inteligencji, takie jak automatyczne wykrywanie odbiorców. Po włączeniu tej funkcji treść dokumentu zostanie przesłana do dostawców usług AI. Korzystamy wyłącznie z usług, które nie wykorzystują danych do trenowania modeli i preferujemy przetwarzanie danych w rejonach europejskich, o ile są dostępne."
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "Włącz kolejność podpisywania"
msgid "Enable SSO portal"
msgstr "Włącz logowanie SSO"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "Błąd"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "Wystąpił błąd podczas odrzucania połączenia konta"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "Wystąpił błąd podczas łączenia konta"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "Identyfikator zewnętrzny"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "Wyodrębnianie danych kontaktowych"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "Niepowodzenie"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "Nie udało się zakończyć dokumentu. Spróbuj ponownie."
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "Nie udało się zaktualizować webhooku"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "Nie udało się przesłać pliku CSV. Sprawdź format pliku i spróbuj ponownie."
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "Nie pamiętasz hasła?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "Darmowy"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "Darmowa"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "Przejdź do dokumentu"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "Przejdź do pierwszej strony"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "Przejdź do ostatniej strony"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "Przejdź do następnej strony"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "Przejdź do właściciela"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "Przejdź do poprzedniej strony"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "Przygotuj dokument dla innych podpisujących."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "Pomóż AI przypisać pola do właściwych odbiorców."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "Tutaj możesz ustawić ustawienia brandingu dla swojej organizacji. Zesp
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "Tutaj możesz ustawić branding dla swojego zespołu."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "Tutaj możesz ustawić domyślne ustawienia zespołu."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "Tutaj możesz ustawić ogólne ustawienia brandingu."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "Tutaj możesz ustawić ogólne ustawienia dokumentów."
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "Identyfikator został skopiowany do schowka"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "Identyfikowanie pól formularzy"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "Identyfikowanie odbiorców"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "Uwaga: Co to oznacza"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "Nieaktywna"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "Odziedzicz metodę uwierzytelniania"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "Logi"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "Wyszukiwanie pól formularza"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "Wyszukiwanie pól podpisu"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "Zarządzaj połączonymi kontami"
msgid "Manage organisation"
msgstr "Zarządzaj organizacją"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Zarządzaj organizacjami"
@@ -5706,7 +5726,7 @@ msgstr "Managerowie i wyżej"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "Mapowanie pól dla odbiorców"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "Nazwa następnego odbiorcy"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "Nie"
@@ -5975,11 +5996,11 @@ msgstr "Nie znaleziono dokumentów"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "Nie wykryto adresu e-mail"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "Nie wykryto żadnych pól."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "Brak odbiorców"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "Nie wykryto żadnych odbiorców."
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "Po zeskanowaniu kodu QR lub ręcznym wprowadzeniu kodu, wpisz poniżej k
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "Po zaktualizowaniu rekordów DNS może minąć do 48 godzin, zanim zmiany zostaną wprowadzone. Po zakończeniu propagacji DNS wróć do strony i kliknij przycisk domeny „Synchronizuj”."
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "Ups! Coś poszło nie tak."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "Otwórz menu"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "Strona {0} z {numPages}"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "Opłacona"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "Hasło zostało zaktualizowane!"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "Przeterminowana"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "Przeczytaj <0>informacje o podpisie elektronicznym</0>."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "Odczytywanie dokumentu"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "Odbiorca"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "Odbiorca {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "Usuń użytkownika organizacji"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "Usuń odbiorcę"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "Odpowiedz na adres"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "Odpowiedź na e-mail <0>(opcjonalnie)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "Spróbuj ponownie"
msgid "Return"
msgstr "Wróć"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Powrót do strony logowania Documenso"
@@ -8120,7 +8146,7 @@ msgstr "Ustawienia strony"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "Pomiń"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "Coś poszło nie tak podczas próby weryfikacji adresu e-mail zespołu <
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "Coś poszło nie tak podczas wykrywania pól."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "Coś poszło nie tak podczas wykrywania odbiorców."
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "Nazwa wyświetlana dla adresu e-mail"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "Dokument został pomyślnie usunięty."
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "Dokument został pomyślnie przeniesiony."
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "Dokument został odrzucony."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "Właściciel został poinformowany o odrzuceniu dokumentu. Może się z
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "Właściciel dokumentu został poinformowany o Twojej decyzji. Może się z Tobą skontaktować, jeśli będzie to konieczne."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "Dokument został utworzony, ale nie mógł zostać wysłany do odbiorców."
@@ -8870,7 +8902,7 @@ msgstr "Domena, której szukasz, mogła zostać usunięta, zmieniona lub mogła
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "Adres e-mail lub hasło są nieprawidłowe."
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "Wystąpiły następujące błędy:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "Następujący odbiorcy wymagają adresu e-mail:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "Token użyty do zresetowania hasła wygasł lub nie istnieje. Jeśli nad
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "Kod weryfikacyjny jest nieprawidłowy."
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "Weryfikacja dwuetapowa została zresetowana."
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "Widoczność dokumentu dla odbiorcy."
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "Ta akcja jest odwracalna, ale zachowaj ostrożność, ponieważ konto mo
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "Może to potrwać minutę lub dwie, w zależności od rozmiaru dokumentu."
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "Dokument został utworzony za pomocą bezpośredniego linku."
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "Dokument został wysłany za pomocą <0>Documenso</0>."
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "Nazwa tokena"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "Zbyt wiele żądań"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "Łączna liczba użytkowników"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "Przenieś dokumenty do innego zespołu"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "Wyzwalacze"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "Spróbuj ponownie"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "Włącz wykrywanie za pomocą AI, aby automatycznie znaleźć odbiorców i pola w dokumentach. Dostawcy AI nie wykorzystują danych do trenowania modeli."
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "Niezakończono"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "Cofnij"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "Nieznany błąd"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "Nieznana nazwa"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "Oczekiwanie na Ciebie"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "Chcesz wysyłać eleganckie linki do podpisywania, takie jak ten? <0>Sprawdź Documenso</0>."
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "Nie mogliśmy utworzyć klienta Stripe. Spróbuj ponownie."
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "Nie mogliśmy włączyć funkcji AI. Spróbuj ponownie."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "Wystąpił nieznany błąd podczas próby usunięcia konta. Spróbuj pon
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "Wystąpił nieznany błąd podczas próby usunięcia dokumentu. Spróbuj ponownie później."
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "Skontaktujemy się z Tobą wkrótce."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "Przeskanujemy dokument, aby znaleźć pola formularzy, takie jak linie podpisu, pola tekstowe, pola wyboru i inne. Wykryte pola zostaną zaproponowane do sprawdzenia."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "Przeskanujemy dokument, aby znaleźć pola podpisów i zidentyfikować podpisujących. Wykryte pola zostaną zaproponowane do sprawdzenia."
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "Rocznie"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Tak"
@@ -10955,12 +10988,12 @@ msgstr "Aktualizujesz adres <0>{0}</0>"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "Aktualizujesz adres <0>{memberName}</0>."
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "Aktualnie aktualizujesz <0>{organisationMemberName}</0>."
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "Nie masz uprawnień do zresetowania weryfikacji dwuetapowej tego użytko
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "Możesz ręcznie dodać pola w edytorze."
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "Możesz ręcznie dodać odbiorców w edytorze."
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "Możesz włączyć domyślny dostęp, aby wszyscy użytkownicy organizac
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "Tutaj możesz zarządzać ustawieniami wiadomości."
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "Możesz wykrywać pola tylko w kopertach w wersji roboczej"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "W każdej chwili możesz unieważnić dostęp w <0>ustawieniach zespołu</0> w Documenso."
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "Nie możesz usunąć grupy, która ma wyższą rolę niż Ty."
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "Nie możesz usunąć elementu, ponieważ dokument został wysłany do odbiorców."
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "Nie możesz przesyłać dokumentów w tej chwili."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "Nie możesz przesyłać zaszyfrowanych plików PDF."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "Obecnie nie masz dostępu do żadnych zespołów w organizacji. Skontakt
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "Nie masz uprawnień do utworzenia tokena dla tego zespołu."
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "Brak utworzonych lub odebranych dokumentów. Prześlij, aby utworzyć."
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "Osiągnięto maksymalną liczbę plików na kopertę."
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "Otrzymasz kopię dokumentu, gdy wszyscy go podpiszą."
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "Jesteś administratorem. Możesz od razu włączyć funkcje AI dla zespołu. Po włączeniu funkcji użytkownicy zespołu będą widzieć wykryte przez AI treści."
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "Wysłano zbyt wiele żądań wykrywania. Poczekaj minutę przed ponowną próbą."
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "Twoje bezpośrednie szablony do podpisywania"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "Treść dokumentu zostanie bezpiecznie przesłana do naszego dostawcy AI wyłącznie w celu wykrycia pół i nie będzie przechowywana ani wykorzystywana do trenowania modeli."
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "Dokument został pomyślnie przesłany. Zostaniesz przekierowany na stro
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "Dokument jest przetwarzany w bezpieczny sposób za pomocą usług AI, które nie wykorzystują Twoich danych."
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+33
View File
@@ -3104,6 +3104,10 @@ msgstr "Fuso Horário Padrão"
msgid "Default Value"
msgstr "Valor Padrão"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "excluir"
@@ -3667,6 +3671,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "Documento aberto"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "Documento pendente"
@@ -4008,6 +4017,7 @@ msgstr "Ex: 100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4273,6 +4283,10 @@ msgstr "Ativar ordem de assinatura"
msgid "Enable SSO portal"
msgstr "Ativar portal SSO"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -5157,6 +5171,7 @@ msgstr "Herdar método de autenticação"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5549,6 +5564,7 @@ msgid "Looking for signature fields"
msgstr "Procurando campos de assinatura"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5609,6 +5625,10 @@ msgstr "Gerenciar contas vinculadas"
msgid "Manage organisation"
msgstr "Gerenciar organização"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "Gerenciar organizações"
@@ -5955,6 +5975,7 @@ msgstr "Nome do Próximo Destinatário"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "Não"
@@ -7327,6 +7348,11 @@ msgstr "Tentar novamente"
msgid "Return"
msgstr "Retornar"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "Retornar para a página de login do Documenso aqui"
@@ -8830,6 +8856,12 @@ msgstr "O proprietário do documento foi notificado sobre esta rejeição. Nenhu
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "O proprietário do documento foi notificado sobre sua decisão. Eles podem entrar em contato com você com mais instruções, se necessário."
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "O documento foi criado, mas não pôde ser enviado aos destinatários."
@@ -10837,6 +10869,7 @@ msgstr "Anual"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "Sim"
+155 -122
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-27 05:32\n"
"PO-Revision-Date: 2025-12-15 02:39\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -68,7 +68,7 @@ msgstr "{0, plural, other {(# 个字符超出)}}"
#. placeholder {2}: table.getFilteredSelectedRowModel().rows.length
#: packages/ui/primitives/data-table-pagination.tsx
msgid "{0, plural, one {{1} of # row selected.} other {{2} of # rows selected.}}"
msgstr ""
msgstr "{0, plural, other {{2} / 共 # 行已选择。}}"
#. placeholder {0}: Math.abs(remaningLength)
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
@@ -104,7 +104,7 @@ msgstr "{0, plural, other {# 个文件夹}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {# recipient have been added from AI detection.} other {# recipients have been added from AI detection.}}"
msgstr ""
msgstr "{0, plural, other {已通过 AI 检测添加了 # 位收件人。}}"
#. placeholder {0}: template.recipients.length
#: apps/remix/app/routes/_recipient+/d.$token+/_index.tsx
@@ -163,7 +163,7 @@ msgstr "{0, plural, other {# 位收件人}}"
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # field found} other {Page {3} of {4} - # fields found}}"
msgstr ""
msgstr "{0, plural, other {第 {1} 页,共 {2} 页 - 找到 # 个字段}}"
#. placeholder {0}: progress.recipientsDetected
#. placeholder {1}: progress.pagesProcessed
@@ -172,12 +172,12 @@ msgstr ""
#. placeholder {4}: progress.totalPages
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {Page {1} of {2} - # recipient found} other {Page {3} of {4} - # recipients found}}"
msgstr ""
msgstr "{0, plural, other {第 {1} 页,共 {2} 页 - 找到 # 位收件人}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "{0, plural, one {Recipient added} other {Recipients added}}"
msgstr ""
msgstr "{0, plural, other {已添加收件人}}"
#. placeholder {0}: pendingRecipients.length
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id._index.tsx
@@ -187,12 +187,12 @@ msgstr "{0, plural, other {正在等待 # 位收件人}}"
#. placeholder {0}: detectedFields.length
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "{0, plural, one {We found # field in your document.} other {We found # fields in your document.}}"
msgstr ""
msgstr "{0, plural, other {我们在您的文档中找到了 # 个字段。}}"
#. placeholder {0}: detectedRecipients.length
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "{0, plural, one {We found # recipient in your document.} other {We found # recipients in your document.}}"
msgstr ""
msgstr "{0, plural, other {我们在您的文档中找到了 # 位收件人。}}"
#. placeholder {0}: _(FRIENDLY_FIELD_TYPE[fieldType as FieldType])
#. placeholder {0}: route.label
@@ -312,7 +312,7 @@ msgstr "{MAXIMUM_PASSKEYS, plural, other {您不能拥有超过 # 个通行密
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "{maximumEnvelopeItemCount, plural, one {You cannot upload more than # item per envelope.} other {You cannot upload more than # items per envelope.}}"
msgstr ""
msgstr "{maximumEnvelopeItemCount, plural, other {每个信封最多只能上传 # 个项目。}}"
#: packages/lib/utils/document-audit-logs.ts
msgid "{prefix} added a field"
@@ -547,39 +547,39 @@ msgstr "<0>{organisationName}</0> 请求将您当前的 Documenso 账户关联
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 邀请你审批此文档"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 邀请你协助处理此文档"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 邀请你签署此文档"
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 邀请你查看此文档"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to approve this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 代表 \"{0}\" 邀请你审批此文档"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to assist this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 代表 \"{0}\" 邀请你协助处理此文档"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to sign this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 代表 \"{0}\" 邀请你签署此文档"
#. placeholder {0}: document.team?.name
#: apps/remix/app/components/general/document-signing/document-signing-page-view-v1.tsx
msgid "<0>{senderName} {senderEmail}</0> on behalf of \"{0}\" has invited you to view this document"
msgstr ""
msgstr "<0>{senderName} {senderEmail}</0> 代表 \"{0}\" 邀请你查看此文档"
#: packages/email/templates/confirm-team-email.tsx
msgid "<0>{teamName}</0> has requested to use your email address for their team on Documenso."
@@ -591,7 +591,7 @@ msgstr "<0>账户管理:</0> 修改您的账户设置、权限和偏好"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Admins only</0> - Only admins can access and view the document"
msgstr ""
msgstr "<0>仅限管理员</0> - 只有管理员可以访问并查看此文档"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Data access:</0> Access all data associated with your account"
@@ -612,7 +612,7 @@ msgstr "<0>事件:</0>全部"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Everyone</0> - Everyone can access and view the document"
msgstr ""
msgstr "<0>所有人</0> - 所有人都可以访问并查看此文档"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "<0>Full account access:</0> View all your profile information, settings, and activity"
@@ -624,7 +624,7 @@ msgstr "<0>继承认证方式</0> - 使用在“常规设置”步骤中配置
#: packages/ui/components/document/document-visibility-select.tsx
msgid "<0>Managers and above</0> - Only managers and above can access and view the document"
msgstr ""
msgstr "<0>经理及以上</0> - 只有经理及以上可以访问和查看该文档"
#: packages/ui/components/document/document-global-auth-action-select.tsx
msgid "<0>No restrictions</0> - No authentication required"
@@ -981,11 +981,11 @@ msgstr "账户已被启用"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account link declined"
msgstr ""
msgstr "账户关联已被拒绝"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account linked successfully"
msgstr ""
msgstr "账户已成功关联"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Account Linking Request"
@@ -1047,7 +1047,7 @@ msgstr "启用"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Active"
msgstr ""
msgstr "启用"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -1144,7 +1144,7 @@ msgstr "添加邮箱域名"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Add fields"
msgstr ""
msgstr "添加字段"
#: apps/remix/app/components/general/document/document-edit-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
@@ -1212,7 +1212,7 @@ msgstr "添加占位符"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Add recipients"
msgstr ""
msgstr "添加收件人"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Add Recipients"
@@ -1316,11 +1316,11 @@ msgstr "提交后,将自动生成一个文档并添加到您的“文档”页
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "AI Features"
msgstr ""
msgstr "AI 功能"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "AI features are disabled for your team. Please ask your team owner or organisation owner to enable them."
msgstr ""
msgstr "您团队的 AI 功能已被禁用。请联系您团队的所有者或组织所有者为其启用。"
#: apps/remix/app/components/general/document/document-status.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -1418,7 +1418,7 @@ msgstr "允许使用生物识别、密码管理器、硬件密钥等方式进行
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Almost done"
msgstr ""
msgstr "即将完成"
#: apps/remix/app/components/forms/signup.tsx
msgid "Already have an account? <0>Sign in instead</0>"
@@ -1512,7 +1512,7 @@ msgstr "自动签署文档时发生错误,部分字段可能未签署。请检
#: apps/remix/app/components/general/document-signing/document-signing-form.tsx
msgid "An error occurred while completing the document. Please try again."
msgstr ""
msgstr "完成文档时发生错误。请重试。"
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "An error occurred while creating document from template."
@@ -1560,7 +1560,7 @@ msgstr "移动模板时发生错误。"
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "An error occurred while rejecting the document. Please try again."
msgstr ""
msgstr "拒绝文档时发生错误。请重试。"
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx
@@ -1726,11 +1726,11 @@ msgstr "移动文件夹时发生未知错误。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Analyzing page layout"
msgstr ""
msgstr "正在分析页面布局"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Analyzing pages"
msgstr ""
msgstr "正在分析页面"
#: apps/remix/app/routes/_authenticated+/inbox.tsx
msgid "Any documents that you have been invited to will appear here"
@@ -2301,7 +2301,7 @@ msgstr "复选框"
#: packages/ui/primitives/document-flow/field-content.tsx
msgid "Checkbox option"
msgstr ""
msgstr "复选框选项"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Checkbox Settings"
@@ -2624,7 +2624,7 @@ msgstr "内容"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Context"
msgstr ""
msgstr "上下文"
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
@@ -2707,13 +2707,13 @@ msgstr "已复制"
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field"
msgstr ""
msgstr "已复制字段"
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
#: packages/ui/primitives/document-flow/add-fields.tsx
#: packages/ui/primitives/template-flow/add-template-fields.tsx
msgid "Copied field to clipboard"
msgstr ""
msgstr "字段已复制到剪贴板"
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
@@ -3060,7 +3060,7 @@ msgstr "日期设置"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "David is the Employee, Lucas is the Manager"
msgstr ""
msgstr "David 是员工,Lucas 是经理"
#: apps/remix/app/components/general/organisations/organisation-invitations.tsx
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
@@ -3109,6 +3109,10 @@ msgstr "默认时区"
msgid "Default Value"
msgstr "默认值"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Delegate Document Ownership"
msgstr ""
#: apps/remix/app/components/dialogs/document-delete-dialog.tsx
msgid "delete"
msgstr "delete"
@@ -3274,48 +3278,48 @@ msgstr "详情"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect"
msgstr ""
msgstr "检测"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detect fields"
msgstr ""
msgstr "检测字段"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detect recipients"
msgstr ""
msgstr "检测收件人"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Detect recipients with AI"
msgstr ""
msgstr "使用 AI 检测收件人"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Detect with AI"
msgstr ""
msgstr "使用 AI 检测"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detected fields"
msgstr ""
msgstr "已检测到的字段"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detected recipients"
msgstr ""
msgstr "已检测到的收件人"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting fields"
msgstr ""
msgstr "正在检测字段"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detecting recipients"
msgstr ""
msgstr "正在检测收件人"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Detecting signature areas"
msgstr ""
msgstr "正在检测签名区域"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Detection failed"
msgstr ""
msgstr "检测失败"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "Developer Mode"
@@ -3329,7 +3333,7 @@ msgstr "设备"
#: packages/email/templates/reset-password.tsx
msgid "Didn't request a password change? We are here to help you secure your account, just <0>contact us</0>."
msgstr ""
msgstr "如果你没有请求更改密码?我们可以帮助你保护账户安全,只需<0>联系我们</0>。"
#: apps/remix/app/components/general/template/template-direct-link-badge.tsx
#: apps/remix/app/components/tables/templates-table.tsx
@@ -3672,6 +3676,11 @@ msgctxt "Audit log format"
msgid "Document opened"
msgstr "文档已打开"
#: packages/lib/utils/document-audit-logs.ts
msgctxt "Audit log format"
msgid "Document ownership delegated"
msgstr ""
#: apps/remix/app/components/general/document/document-status.tsx
msgid "Document pending"
msgstr "文档待处理"
@@ -3873,7 +3882,7 @@ msgstr "还没有账号?<0>注册</0>"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Don't transfer (Delete all documents)"
msgstr ""
msgstr "不要转移(删除所有文档)"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx
@@ -4013,6 +4022,7 @@ msgstr "例如:100"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/general/teams/team-email-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
@@ -4231,16 +4241,16 @@ msgstr "启用账户"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
msgid "Enable AI detection"
msgstr ""
msgstr "启用 AI 检测"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Enable AI features"
msgstr ""
msgstr "启用 AI 功能"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable AI-powered features such as automatic recipient detection. When enabled, document content will be sent to AI providers. We only use providers that do not retain data for training and prefer European regions where available."
msgstr ""
msgstr "启用由 AI 驱动的功能,例如自动收件人检测。启用后,文档内容将被发送给 AI 提供商。我们只使用不会保留数据用于训练的提供商,并在可用时优先选择欧洲区域。"
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx
msgid "Enable Authenticator App"
@@ -4278,6 +4288,10 @@ msgstr "启用签署顺序"
msgid "Enable SSO portal"
msgstr "启用 SSO 门户"
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Enable team API tokens to delegate document ownership to another team member."
msgstr ""
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
@@ -4476,11 +4490,11 @@ msgstr "错误"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error declining account link"
msgstr ""
msgstr "拒绝账户关联时出错"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Error linking account"
msgstr ""
msgstr "关联账户时出错"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "Error uploading file"
@@ -4538,7 +4552,7 @@ msgstr "外部 ID"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Extracting contact details"
msgstr ""
msgstr "正在提取联系方式"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
@@ -4547,7 +4561,7 @@ msgstr "失败"
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
msgid "Failed to complete the document. Please try again."
msgstr ""
msgstr "未能完成文档。请重试。"
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
msgid "Failed to create folder"
@@ -4619,7 +4633,7 @@ msgstr "更新 Webhook 失败"
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
msgid "Failed to upload CSV. Please check the file format and try again."
msgstr ""
msgstr "CSV 上传失败。请检查文件格式后重试。"
#: packages/email/templates/bulk-send-complete.tsx
msgid "Failed: {failedCount}"
@@ -4779,13 +4793,13 @@ msgstr "忘记密码?"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgctxt "Plan price"
msgid "Free"
msgstr ""
msgstr "免费"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Free"
msgstr ""
msgstr "免费"
#: packages/lib/utils/fields.ts
#: packages/ui/primitives/document-flow/types.ts
@@ -4878,15 +4892,15 @@ msgstr "前往文档"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to first page"
msgstr ""
msgstr "转到第一页"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to last page"
msgstr ""
msgstr "转到最后一页"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to next page"
msgstr ""
msgstr "转到下一页"
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
msgid "Go to owner"
@@ -4894,7 +4908,7 @@ msgstr "前往所有者"
#: packages/ui/primitives/data-table-pagination.tsx
msgid "Go to previous page"
msgstr ""
msgstr "转到上一页"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Go to team"
@@ -4953,7 +4967,7 @@ msgstr "帮助其他签署人完成文档。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Help the AI assign fields to the right recipients."
msgstr ""
msgstr "帮助 AI 将字段分配给正确的收件人。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
msgid "Here you can add email domains to your organisation."
@@ -4977,7 +4991,7 @@ msgstr "您可以在此为组织设置品牌偏好。团队将默认继承这些
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set branding preferences for your team."
msgstr ""
msgstr "在这里,你可以为你的团队设置品牌偏好。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set document preferences for your organisation. Teams will inherit these settings by default."
@@ -4993,11 +5007,11 @@ msgstr "你可以在此设置团队的偏好和默认值。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.branding.tsx
msgid "Here you can set your general branding preferences."
msgstr ""
msgstr "在这里,你可以设置通用品牌偏好。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
msgid "Here you can set your general document preferences."
msgstr ""
msgstr "在这里,你可以设置通用文档偏好。"
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
msgid "Here's how it works:"
@@ -5090,11 +5104,11 @@ msgstr "ID 已复制到剪贴板"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Identifying input fields"
msgstr ""
msgstr "正在识别输入字段"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Identifying recipients"
msgstr ""
msgstr "正在识别收件人"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "If there is any issue with your subscription, please contact us at <0>{SUPPORT_EMAIL}</0>."
@@ -5123,7 +5137,7 @@ msgstr "重要:这意味着什么"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Inactive"
msgstr ""
msgstr "未启用"
#: apps/remix/app/components/general/app-nav-mobile.tsx
#: apps/remix/app/components/general/app-nav-mobile.tsx
@@ -5162,6 +5176,7 @@ msgstr "继承认证方式"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
#: apps/remix/app/components/forms/email-preferences-form.tsx
msgid "Inherit from organisation"
@@ -5547,13 +5562,14 @@ msgstr "日志"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Looking for form fields"
msgstr ""
msgstr "正在查找表单字段"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Looking for signature fields"
msgstr ""
msgstr "正在查找签名字段"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
#: apps/remix/app/components/tables/organisation-groups-table.tsx
#: apps/remix/app/components/tables/organisation-teams-table.tsx
#: apps/remix/app/components/tables/user-organisations-table.tsx
msgid "Manage"
@@ -5614,6 +5630,10 @@ msgstr "管理关联账户"
msgid "Manage organisation"
msgstr "管理组织"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Manage Organisation"
msgstr ""
#: apps/remix/app/routes/_authenticated+/admin+/organisations._index.tsx
msgid "Manage organisations"
msgstr "管理组织"
@@ -5706,7 +5726,7 @@ msgstr "管理者及以上"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Mapping fields to recipients"
msgstr ""
msgstr "正在将字段映射到收件人"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Mark as viewed"
@@ -5960,6 +5980,7 @@ msgstr "下一位收件人姓名"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "No"
msgstr "否"
@@ -5975,11 +5996,11 @@ msgstr "未找到文档"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No email detected"
msgstr ""
msgstr "未检测到电子邮件"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "No fields were detected in your document."
msgstr ""
msgstr "在您的文档中未检测到任何字段。"
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
@@ -6027,7 +6048,7 @@ msgstr "无收件人"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "No recipients were detected in your document."
msgstr ""
msgstr "在您的文档中未检测到任何收件人。"
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
#: packages/ui/primitives/recipient-selector.tsx
@@ -6168,7 +6189,7 @@ msgstr "扫描二维码或手动输入代码后,请在下方输入你的验证
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
msgid "Once you update your DNS records, it may take up to 48 hours for it to be propogated. Once the DNS propagation is complete you will need to come back and press the \"Sync\" domains button."
msgstr ""
msgstr "更新 DNS 记录后,最多可能需要 48 小时才能完成传播。DNS 传播完成后,你需要返回此处并点击“同步”域按钮。"
#: packages/lib/constants/template.ts
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
@@ -6204,7 +6225,7 @@ msgstr "噢!出错了。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
msgid "Open menu"
msgstr ""
msgstr "打开菜单"
#: apps/remix/app/components/general/stack-avatars-with-tooltip.tsx
msgid "Opened"
@@ -6408,7 +6429,7 @@ msgstr "第 {0} 页,共 {numPages} 页"
#: apps/remix/app/components/tables/admin-organisations-table.tsx
msgctxt "Subscription status"
msgid "Paid"
msgstr ""
msgstr "已付费"
#: apps/remix/app/components/forms/signin.tsx
#: apps/remix/app/components/general/document-signing/document-signing-auth-dialog.tsx
@@ -6490,7 +6511,7 @@ msgstr "密码已更新!"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgctxt "Subscription status"
msgid "Past Due"
msgstr ""
msgstr "逾期"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
@@ -6925,7 +6946,7 @@ msgstr "阅读完整的<0>签名披露</0>。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Reading your document"
msgstr ""
msgstr "正在读取您的文档"
#: apps/remix/app/components/general/document/document-page-view-recipients.tsx
msgid "Ready"
@@ -6988,7 +7009,7 @@ msgstr "收件人"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx
#: apps/remix/app/components/general/envelope-editor/envelope-recipient-selector.tsx
msgid "Recipient {0}"
msgstr ""
msgstr "收件人 {0}"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
#: packages/ui/components/recipient/recipient-action-auth-select.tsx
@@ -7170,7 +7191,7 @@ msgstr "移除组织成员"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Remove recipient"
msgstr ""
msgstr "移除收件人"
#: apps/remix/app/components/dialogs/team-email-delete-dialog.tsx
msgid "Remove team email"
@@ -7195,7 +7216,7 @@ msgstr "回复邮箱"
#: packages/ui/primitives/document-flow/add-subject.tsx
#: packages/ui/primitives/template-flow/add-template-settings.tsx
msgid "Reply To Email <0>(Optional)</0>"
msgstr ""
msgstr "回复电子邮件 <0>(可选)</0>"
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
msgid "Request"
@@ -7332,6 +7353,11 @@ msgstr "重试"
msgid "Return"
msgstr "返回"
#: apps/remix/app/routes/_recipient+/sign.$token+/rejected.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/waiting.tsx
msgid "Return Home"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Return to Documenso sign in page here"
msgstr "在此返回 Documenso 登录页面"
@@ -8120,7 +8146,7 @@ msgstr "站点设置"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Skip"
msgstr ""
msgstr "跳过"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
@@ -8182,11 +8208,11 @@ msgstr "尝试验证你在 <0>{0}</0> 的邮箱地址时出错。请稍后再试
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "Something went wrong while detecting fields."
msgstr ""
msgstr "检测字段时出现问题。"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Something went wrong while detecting recipients."
msgstr ""
msgstr "检测收件人时出现问题。"
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
#: packages/ui/components/pdf-viewer/pdf-viewer-konva.tsx
@@ -8808,7 +8834,7 @@ msgstr "此邮箱地址的显示名称"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "The Document has been deleted successfully."
msgstr ""
msgstr "文档已成功删除。"
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
msgid "The document has been moved successfully."
@@ -8816,7 +8842,7 @@ msgstr "文档已成功移动。"
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
msgid "The document has been successfully rejected."
msgstr ""
msgstr "文档已成功被拒绝。"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
msgid "The document is already saved and cannot be changed."
@@ -8835,6 +8861,12 @@ msgstr "文档所有者已收到此次拒签的通知。当前您无需再进行
msgid "The document owner has been notified of your decision. They may contact you with further instructions if necessary."
msgstr "文档所有者已收到您的决定通知。如有需要,他们可能会联系您并提供进一步说明。"
#. placeholder {0}: data.delegatedOwnerName || data.delegatedOwnerEmail
#. placeholder {1}: data.teamName
#: packages/lib/utils/document-audit-logs.ts
msgid "The document ownership was delegated to {0} on behalf of {1}"
msgstr ""
#: apps/remix/app/components/dialogs/template-use-dialog.tsx
msgid "The document was created but could not be sent to recipients."
msgstr "文档已创建,但无法发送给收件人。"
@@ -8870,7 +8902,7 @@ msgstr "您要查找的邮箱域名可能已被删除、重命名,或从未存
#: apps/remix/app/components/forms/signin.tsx
msgid "The email or password provided is incorrect."
msgstr ""
msgstr "提供的邮箱或密码不正确。"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -8903,7 +8935,7 @@ msgstr "发生以下错误:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following recipients require an email address:"
msgstr ""
msgstr "以下收件人需要电子邮件地址:"
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
msgid "The following signers are missing signature fields:"
@@ -9069,7 +9101,7 @@ msgstr "你用于重置密码的令牌已过期或不存在。如果你仍然忘
#: apps/remix/app/components/forms/signin.tsx
msgid "The two-factor authentication code provided is incorrect."
msgstr ""
msgstr "提供的双重身份验证代码不正确。"
#: apps/remix/app/components/forms/editor/editor-field-signature-form.tsx
msgid "The typed signature font size"
@@ -9094,7 +9126,7 @@ msgstr "该用户的双重身份验证已成功重置。"
#: packages/ui/components/document/document-visibility-select.tsx
msgid "The visibility of the document to the recipient."
msgstr ""
msgstr "文档对收件人的可见性。"
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx
msgid "The webhook has been successfully deleted."
@@ -9165,7 +9197,7 @@ msgstr "此操作可撤销,但请务必小心,因为账户可能会受到永
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "This can take a minute or two depending on the size of your document."
msgstr ""
msgstr "根据文档大小,这可能需要一到两分钟。"
#: apps/remix/app/components/dialogs/claim-delete-dialog.tsx
msgid "This claim is locked and cannot be deleted."
@@ -9240,7 +9272,7 @@ msgstr "此文档是通过直接链接创建的。"
#: packages/email/template-components/template-footer.tsx
msgid "This document was sent using <0>Documenso</0>."
msgstr ""
msgstr "此文档是使用 <0>Documenso</0> 发送的。"
#: apps/remix/app/components/dialogs/envelope-duplicate-dialog.tsx
msgid "This document will be duplicated."
@@ -9545,7 +9577,7 @@ msgstr "令牌名称"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Too many requests"
msgstr ""
msgstr "请求过多"
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
msgid "Top"
@@ -9573,7 +9605,7 @@ msgstr "用户总数"
#: apps/remix/app/components/dialogs/team-delete-dialog.tsx
msgid "Transfer documents to a different team"
msgstr ""
msgstr "将文档转移到其他团队"
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx
#: apps/remix/app/components/dialogs/webhook-edit-dialog.tsx
@@ -9585,11 +9617,11 @@ msgstr "触发条件"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Try again"
msgstr ""
msgstr "重试"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Turn on AI detection to automatically find recipients and fields in your documents. AI providers do not retain your data for training."
msgstr ""
msgstr "开启 AI 检测,可在文档中自动查找收件人和字段。AI 服务提供商不会保留您的数据用于训练。"
#: apps/remix/app/routes/_authenticated+/settings+/security._index.tsx
msgid "Two factor authentication"
@@ -9739,7 +9771,7 @@ msgstr "未完成"
#: packages/ui/primitives/signature-pad/signature-pad-draw.tsx
msgid "Undo"
msgstr ""
msgstr "撤销"
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
@@ -9759,7 +9791,7 @@ msgstr "未知错误"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Unknown name"
msgstr ""
msgstr "未知姓名"
#: apps/remix/app/components/tables/admin-claims-table.tsx
msgid "Unlimited"
@@ -10354,7 +10386,7 @@ msgstr "正在等待你的顺序"
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
#: apps/remix/app/routes/_recipient+/sign.$token+/_index.tsx
msgid "Want to send slick signing links like this one? <0>Check out Documenso</0>."
msgstr ""
msgstr "想要发送像这样顺畅好用的签署链接吗?<0>来了解一下 Documenso</0>。"
#: apps/remix/app/routes/_profile+/_layout.tsx
msgid "Want your own public profile?"
@@ -10391,7 +10423,7 @@ msgstr "我们无法创建 Stripe 客户。请重试。"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "We couldn't enable AI features right now. Please try again."
msgstr ""
msgstr "我们现在无法启用 AI 功能。请重试。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
msgid "We couldn't update the group. Please try again."
@@ -10476,7 +10508,7 @@ msgstr "尝试删除你的账号时出现未知错误。请稍后再试。"
#: apps/remix/app/components/dialogs/admin-document-delete-dialog.tsx
msgid "We encountered an unknown error while attempting to delete your document. Please try again later."
msgstr ""
msgstr "尝试删除您的文档时遇到未知错误。请稍后重试。"
#: apps/remix/app/components/dialogs/team-inherit-member-disable-dialog.tsx
msgid "We encountered an unknown error while attempting to disable access."
@@ -10686,11 +10718,11 @@ msgstr "我们会尽快通过电子邮件回复您。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "We'll scan your document to find form fields like signature lines, text inputs, checkboxes, and more. Detected fields will be suggested for you to review."
msgstr ""
msgstr "我们将扫描您的文档,以查找签名行、文本输入、复选框等表单字段。检测到的字段将作为建议供您审核。"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "We'll scan your document to find signature fields and identify who needs to sign. Detected recipients will be suggested for you to review."
msgstr ""
msgstr "我们将扫描您的文档,以查找签名字段并识别谁需要签名。检测到的收件人将作为建议供您审核。"
#: apps/remix/app/components/general/document-signing/access-auth-2fa-form.tsx
msgid "We'll send a 6-digit code to your email"
@@ -10842,6 +10874,7 @@ msgstr "按年"
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
#: apps/remix/app/components/forms/document-preferences-form.tsx
msgid "Yes"
msgstr "是"
@@ -10955,12 +10988,12 @@ msgstr "您当前正在更新 <0>{0}</0>"
#: apps/remix/app/components/dialogs/team-member-update-dialog.tsx
msgid "You are currently updating <0>{memberName}</0>."
msgstr ""
msgstr "你当前正在更新 <0>{memberName}</0>。"
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
#: apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx
msgid "You are currently updating <0>{organisationMemberName}</0>."
msgstr ""
msgstr "你当前正在更新 <0>{organisationMemberName}</0>。"
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
msgid "You are currently updating the <0>{passkeyName}</0> passkey."
@@ -10997,11 +11030,11 @@ msgstr "您无权为此用户重置双重身份验证。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
msgid "You can add fields manually in the editor."
msgstr ""
msgstr "您可以在编辑器中手动添加字段。"
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You can add recipients manually in the editor."
msgstr ""
msgstr "您可以在编辑器中手动添加收件人。"
#: packages/email/template-components/template-confirmation-email.tsx
msgid "You can also copy and paste this link into your browser: {confirmationLink} (link expires in 1 hour)"
@@ -11022,15 +11055,15 @@ msgstr "您可以启用访问,以默认允许所有组织成员访问此团队
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.email.tsx
msgid "You can manage your email preferences here."
msgstr ""
msgstr "你可以在此管理你的电子邮件偏好。"
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
msgid "You can only detect fields in draft envelopes"
msgstr ""
msgstr "您只能在草稿信封中检测字段"
#: packages/email/templates/confirm-team-email.tsx
msgid "You can revoke access at any time in your team settings on Documenso <0>here</0>."
msgstr ""
msgstr "你可以随时在 Documenso 的团队设置中撤销访问权限,入口在<0>这里</0>。"
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "You can update the profile URL by updating the team URL in the general settings page."
@@ -11064,7 +11097,7 @@ msgstr "您不能删除角色高于您的组。"
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
msgid "You cannot delete this item because the document has been sent to recipients."
msgstr ""
msgstr "你无法删除此项目,因为该文档已发送给收件人。"
#: apps/remix/app/components/dialogs/team-group-update-dialog.tsx
msgid "You cannot modify a group which has a higher role than you."
@@ -11091,7 +11124,7 @@ msgstr "您目前无法上传文档。"
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You cannot upload encrypted PDFs."
msgstr ""
msgstr "你无法上传已加密的 PDF。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.billing.tsx
msgid "You currently have an inactive <0>{currentProductName}</0> subscription"
@@ -11103,7 +11136,7 @@ msgstr "您当前对该组织内的任何团队都没有访问权限。请联系
#: apps/remix/app/components/forms/token.tsx
msgid "You do not have permission to create a token for this team."
msgstr ""
msgstr "您没有权限为此团队创建令牌。"
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
msgid "You don't manage billing for any organisations."
@@ -11173,7 +11206,7 @@ msgstr "你还没有创建或接收任何文档。要创建文档,请先上传
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
#: apps/remix/app/components/general/envelope/envelope-upload-button.tsx
msgid "You have reached the limit of the number of files per envelope."
msgstr ""
msgstr "您已达到每个信封允许上传的文件数量上限。"
#. placeholder {0}: quota.directTemplates
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
@@ -11330,12 +11363,12 @@ msgstr "当所有人签署完成后,您将收到一份已签署文档的电子
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "You're an admin. You can enable AI features for this team right away. Everyone on the team will see AI detection once enabled."
msgstr ""
msgstr "您是管理员,您可以立即为此团队启用 AI 功能。启用后,团队中的所有成员都能看到 AI 检测。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "You've made too many detection requests. Please wait a minute before trying again."
msgstr ""
msgstr "您发起了太多检测请求。请等待一分钟后再试。"
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
msgid "Your Account"
@@ -11392,7 +11425,7 @@ msgstr "你的直接签署模板"
#: apps/remix/app/components/dialogs/ai-features-enable-dialog.tsx
msgid "Your document content will be sent securely to our AI provider solely for detection and will not be stored or used for training."
msgstr ""
msgstr "您的文档内容将被安全地发送给我们的 AI 服务提供商,仅用于检测,不会被存储或用于训练。"
#: apps/remix/app/components/embed/authoring/configure-document-upload.tsx
#: apps/remix/app/components/general/document/document-upload-button-legacy.tsx
@@ -11436,7 +11469,7 @@ msgstr "你的文档已成功上传。你将被重定向到模板页面。"
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
msgid "Your document is processed securely using AI services that don't retain your data."
msgstr ""
msgstr "您的文档将通过不保留您数据的 AI 服务进行安全处理。"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.document.tsx
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.document.tsx
+14
View File
@@ -44,6 +44,7 @@ export const ZDocumentAuditLogTypeSchema = z.enum([
'DOCUMENT_TITLE_UPDATED', // When the document title is updated.
'DOCUMENT_EXTERNAL_ID_UPDATED', // When the document external ID is updated.
'DOCUMENT_MOVED_TO_TEAM', // When the document is moved to a team.
'DOCUMENT_DELEGATED_OWNER_CREATED', // When the document delegated owner is created.
// ACCESS AUTH 2FA events.
'DOCUMENT_ACCESS_AUTH_2FA_REQUESTED', // When ACCESS AUTH 2FA is requested.
@@ -681,6 +682,18 @@ export const ZDocumentAuditLogEventDocumentMovedToTeamSchema = z.object({
}),
});
/**
* Event: Document delegated owner created.
*/
export const ZDocumentAuditLogEventDocumentDelegatedOwnerCreatedSchema = z.object({
type: z.literal(DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_DELEGATED_OWNER_CREATED),
data: z.object({
delegatedOwnerName: z.string().nullable(),
delegatedOwnerEmail: z.string(),
teamName: z.string(),
}),
});
export const ZDocumentAuditLogBaseSchema = z.object({
id: z.string(),
createdAt: z.date(),
@@ -701,6 +714,7 @@ export const ZDocumentAuditLogSchema = ZDocumentAuditLogBaseSchema.and(
ZDocumentAuditLogEventDocumentCreatedSchema,
ZDocumentAuditLogEventDocumentDeletedSchema,
ZDocumentAuditLogEventDocumentMovedToTeamSchema,
ZDocumentAuditLogEventDocumentDelegatedOwnerCreatedSchema,
ZDocumentAuditLogEventDocumentFieldsAutoInsertedSchema,
ZDocumentAuditLogEventDocumentFieldInsertedSchema,
ZDocumentAuditLogEventDocumentFieldUninsertedSchema,
+37 -2
View File
@@ -115,5 +115,40 @@ export type TEnvelopeLite = z.infer<typeof ZEnvelopeLiteSchema>;
/**
* A version of the envelope response schema when returning multiple envelopes at once from a single API endpoint.
*/
// export const ZEnvelopeManySchema = X
// export type TEnvelopeMany = z.infer<typeof ZEnvelopeManySchema>;
export const ZEnvelopeManySchema = EnvelopeSchema.pick({
internalVersion: true,
type: true,
status: true,
source: true,
visibility: true,
templateType: true,
id: true,
secondaryId: true,
externalId: true,
createdAt: true,
updatedAt: true,
completedAt: true,
deletedAt: true,
title: true,
authOptions: true,
formValues: true,
publicTitle: true,
publicDescription: true,
userId: true,
teamId: true,
folderId: true,
templateId: true,
}).extend({
user: z.object({
id: z.number(),
name: z.string(),
email: z.string(),
}),
recipients: ZEnvelopeRecipientLiteSchema.array(),
team: TeamSchema.pick({
id: true,
url: true,
}).nullable(),
});
export type TEnvelopeMany = z.infer<typeof ZEnvelopeManySchema>;
@@ -530,6 +530,13 @@ export const formatDocumentAuditLogAction = (
anonymous: msg`Envelope item deleted`,
identified: msg`${prefix} deleted an envelope item with title ${data.envelopeItemTitle}`,
}))
.with({ type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_DELEGATED_OWNER_CREATED }, ({ data }) => ({
anonymous: msg({
message: `Document ownership delegated`,
context: `Audit log format`,
}),
identified: msg`The document ownership was delegated to ${data.delegatedOwnerName || data.delegatedOwnerEmail} on behalf of ${data.teamName}`,
}))
.exhaustive();
return {
+97
View File
@@ -18,6 +18,8 @@ const ZDocumentIdSchema = z.string().regex(/^document_\d+$/);
const ZTemplateIdSchema = z.string().regex(/^template_\d+$/);
const ZEnvelopeIdSchema = z.string().regex(/^envelope_.{2,}$/);
const MAX_ENVELOPE_IDS_PER_REQUEST = 20;
export type EnvelopeIdOptions =
| {
type: 'envelopeId';
@@ -32,6 +34,20 @@ export type EnvelopeIdOptions =
id: number;
};
export type EnvelopeIdsOptions =
| {
type: 'envelopeId';
ids: string[];
}
| {
type: 'documentId';
ids: number[];
}
| {
type: 'templateId';
ids: number[];
};
/**
* Parses an unknown document or template ID.
*
@@ -89,6 +105,87 @@ export const unsafeBuildEnvelopeIdQuery = (
.exhaustive();
};
/**
* Parses multiple document or template IDs and builds a query filter.
*
* This is UNSAFE because it does not validate access, it only validates ID format and builds the query.
*
* @throws AppError if any ID is invalid or if the array exceeds the maximum limit
*/
export const unsafeBuildEnvelopeIdsQuery = (
options: EnvelopeIdsOptions,
expectedEnvelopeType: EnvelopeType | null,
) => {
if (!options.ids || options.ids.length === 0) {
throw new AppError(AppErrorCode.INVALID_BODY, {
message: 'At least one ID is required',
});
}
if (options.ids.length > MAX_ENVELOPE_IDS_PER_REQUEST) {
throw new AppError(AppErrorCode.INVALID_BODY, {
message: `Cannot request more than ${MAX_ENVELOPE_IDS_PER_REQUEST} envelopes at once`,
});
}
return match(options)
.with({ type: 'envelopeId' }, (value) => {
const validatedIds: string[] = [];
for (const id of value.ids) {
const parsed = ZEnvelopeIdSchema.safeParse(id);
if (!parsed.success) {
throw new AppError(AppErrorCode.INVALID_BODY, {
message: `Invalid envelope ID: ${id}`,
});
}
validatedIds.push(parsed.data);
}
if (expectedEnvelopeType) {
return {
id: { in: validatedIds },
type: expectedEnvelopeType,
};
}
return {
id: { in: validatedIds },
};
})
.with({ type: 'documentId' }, (value) => {
if (expectedEnvelopeType && expectedEnvelopeType !== EnvelopeType.DOCUMENT) {
throw new AppError(AppErrorCode.INVALID_BODY, {
message: 'Invalid document ID type',
});
}
const secondaryIds = value.ids.map((id) => mapDocumentIdToSecondaryId(id));
return {
type: EnvelopeType.DOCUMENT,
secondaryId: { in: secondaryIds },
};
})
.with({ type: 'templateId' }, (value) => {
if (expectedEnvelopeType && expectedEnvelopeType !== EnvelopeType.TEMPLATE) {
throw new AppError(AppErrorCode.INVALID_BODY, {
message: 'Invalid template ID type',
});
}
const secondaryIds = value.ids.map((id) => mapTemplateIdToSecondaryId(id));
return {
type: EnvelopeType.TEMPLATE,
secondaryId: { in: secondaryIds },
};
})
.exhaustive();
};
/**
* Maps a legacy document ID number to an envelope secondary ID.
*
+1
View File
@@ -117,6 +117,7 @@ export const generateDefaultOrganisationSettings = (): Omit<
documentLanguage: 'en',
documentTimezone: null, // Null means local timezone.
documentDateFormat: DEFAULT_DOCUMENT_DATE_FORMAT,
delegateDocumentOwnership: false,
includeSenderDetails: true,
includeSigningCertificate: true,
+1
View File
@@ -184,6 +184,7 @@ export const generateDefaultTeamSettings = (): Omit<TeamGlobalSettings, 'id' | '
documentLanguage: null,
documentTimezone: null,
documentDateFormat: null,
delegateDocumentOwnership: null,
includeSenderDetails: null,
includeSigningCertificate: null,
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "OrganisationGlobalSettings" ADD COLUMN "delegateDocumentOwnership" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "TeamGlobalSettings" ADD COLUMN "delegateDocumentOwnership" BOOLEAN;
+6 -4
View File
@@ -818,6 +818,7 @@ model OrganisationGlobalSettings {
includeAuditLog Boolean @default(false)
documentTimezone String? // Nullable to allow using local timezones if not set.
documentDateFormat String @default("yyyy-MM-dd hh:mm a")
delegateDocumentOwnership Boolean @default(false)
typedSignatureEnabled Boolean @default(true)
uploadSignatureEnabled Boolean @default(true)
@@ -844,10 +845,11 @@ model TeamGlobalSettings {
id String @id
team Team?
documentVisibility DocumentVisibility?
documentLanguage String?
documentTimezone String?
documentDateFormat String?
documentVisibility DocumentVisibility?
documentLanguage String?
documentTimezone String?
documentDateFormat String?
delegateDocumentOwnership Boolean?
includeSenderDetails Boolean?
includeSigningCertificate Boolean?
+4 -4
View File
@@ -13,9 +13,9 @@
"@documenso/lib": "*",
"@documenso/prisma": "*",
"@tanstack/react-query": "5.90.10",
"@trpc/client": "11.7.1",
"@trpc/react-query": "11.7.1",
"@trpc/server": "11.7.1",
"@trpc/client": "11.8.1",
"@trpc/react-query": "11.8.1",
"@trpc/server": "11.8.1",
"@ts-rest/core": "^3.52.1",
"formidable": "^3.5.4",
"luxon": "^3.7.2",
@@ -29,4 +29,4 @@
"devDependencies": {
"@types/formidable": "^3.4.6"
}
}
}
@@ -0,0 +1,65 @@
import { EnvelopeType } from '@prisma/client';
import { getMultipleEnvelopeWhereInput } from '@documenso/lib/server-only/envelope/get-envelopes-by-ids';
import { mapEnvelopesToDocumentMany } from '@documenso/lib/utils/document';
import { prisma } from '@documenso/prisma';
import { authenticatedProcedure } from '../trpc';
import {
ZGetDocumentsByIdsRequestSchema,
ZGetDocumentsByIdsResponseSchema,
getDocumentsByIdsMeta,
} from './get-documents-by-ids.types';
export const getDocumentsByIdsRoute = authenticatedProcedure
.meta(getDocumentsByIdsMeta)
.input(ZGetDocumentsByIdsRequestSchema)
.output(ZGetDocumentsByIdsResponseSchema)
.mutation(async ({ input, ctx }) => {
const { teamId, user } = ctx;
const { documentIds } = input;
ctx.logger.info({
input: {
documentIds,
},
});
const { envelopeWhereInput } = await getMultipleEnvelopeWhereInput({
ids: {
type: 'documentId',
ids: documentIds,
},
userId: user.id,
teamId,
type: EnvelopeType.DOCUMENT,
});
const envelopes = await prisma.envelope.findMany({
where: envelopeWhereInput,
include: {
user: {
select: {
id: true,
name: true,
email: true,
},
},
recipients: {
orderBy: {
id: 'asc',
},
},
team: {
select: {
id: true,
url: true,
},
},
},
});
return {
data: envelopes.map((envelope) => mapEnvelopesToDocumentMany(envelope)),
};
});
@@ -0,0 +1,26 @@
import { z } from 'zod';
import { ZDocumentManySchema } from '@documenso/lib/types/document';
import type { TrpcRouteMeta } from '../trpc';
export const getDocumentsByIdsMeta: TrpcRouteMeta = {
openapi: {
method: 'POST',
path: '/document/get-many',
summary: 'Get multiple documents',
description: 'Retrieve multiple documents by their IDs',
tags: ['Document'],
},
};
export const ZGetDocumentsByIdsRequestSchema = z.object({
documentIds: z.array(z.number()).min(1),
});
export const ZGetDocumentsByIdsResponseSchema = z.object({
data: z.array(ZDocumentManySchema),
});
export type TGetDocumentsByIdsRequest = z.infer<typeof ZGetDocumentsByIdsRequestSchema>;
export type TGetDocumentsByIdsResponse = z.infer<typeof ZGetDocumentsByIdsResponseSchema>;
@@ -19,6 +19,7 @@ import { findDocumentsInternalRoute } from './find-documents-internal';
import { findInboxRoute } from './find-inbox';
import { getDocumentRoute } from './get-document';
import { getDocumentByTokenRoute } from './get-document-by-token';
import { getDocumentsByIdsRoute } from './get-documents-by-ids';
import { getInboxCountRoute } from './get-inbox-count';
import { redistributeDocumentRoute } from './redistribute-document';
import { searchDocumentRoute } from './search-document';
@@ -27,6 +28,7 @@ import { updateDocumentRoute } from './update-document';
export const documentRouter = router({
get: getDocumentRoute,
getMany: getDocumentsByIdsRoute,
find: findDocumentsRoute,
create: createDocumentRoute,
update: updateDocumentRoute,
@@ -32,6 +32,7 @@ export const createEnvelopeRoute = authenticatedProcedure
folderId,
meta,
attachments,
delegatedDocumentOwner,
} = payload;
ctx.logger.info({
@@ -144,6 +145,7 @@ export const createEnvelopeRoute = authenticatedProcedure
recipients: recipientsToCreate,
folderId,
envelopeItems,
delegatedDocumentOwner,
},
attachments,
meta,
@@ -41,6 +41,11 @@ export const createEnvelopeMeta: TrpcRouteMeta = {
export const ZCreateEnvelopePayloadSchema = z.object({
title: ZDocumentTitleSchema,
type: z.nativeEnum(EnvelopeType),
delegatedDocumentOwner: z
.string()
.email()
.describe('The email of the user who will own the document.')
.optional(),
externalId: ZDocumentExternalIdSchema.optional(),
visibility: ZDocumentVisibilitySchema.optional(),
globalAccessAuth: z.array(ZDocumentAccessAuthTypesSchema).optional(),
@@ -0,0 +1,56 @@
import { findEnvelopes } from '@documenso/lib/server-only/envelope/find-envelopes';
import { authenticatedProcedure } from '../trpc';
import {
ZFindEnvelopesRequestSchema,
ZFindEnvelopesResponseSchema,
findEnvelopesMeta,
} from './find-envelopes.types';
export const findEnvelopesRoute = authenticatedProcedure
.meta(findEnvelopesMeta)
.input(ZFindEnvelopesRequestSchema)
.output(ZFindEnvelopesResponseSchema)
.query(async ({ input, ctx }) => {
const { user, teamId } = ctx;
const {
query,
type,
templateId,
page,
perPage,
orderByDirection,
orderByColumn,
source,
status,
folderId,
} = input;
ctx.logger.info({
input: {
query,
type,
templateId,
source,
status,
folderId,
page,
perPage,
},
});
return await findEnvelopes({
userId: user.id,
teamId,
type,
templateId,
query,
source,
status,
page,
perPage,
folderId,
orderBy: orderByColumn ? { column: orderByColumn, direction: orderByDirection } : undefined,
});
});
@@ -0,0 +1,46 @@
import { DocumentSource, DocumentStatus, EnvelopeType } from '@prisma/client';
import { z } from 'zod';
import { ZEnvelopeManySchema } from '@documenso/lib/types/envelope';
import { ZFindResultResponse, ZFindSearchParamsSchema } from '@documenso/lib/types/search-params';
import type { TrpcRouteMeta } from '../trpc';
export const findEnvelopesMeta: TrpcRouteMeta = {
openapi: {
method: 'GET',
path: '/envelope',
summary: 'Find envelopes',
description: 'Find envelopes based on search criteria',
tags: ['Envelope'],
},
};
export const ZFindEnvelopesRequestSchema = ZFindSearchParamsSchema.extend({
type: z
.nativeEnum(EnvelopeType)
.describe('Filter envelopes by type (DOCUMENT or TEMPLATE).')
.optional(),
templateId: z
.number()
.describe('Filter envelopes by the template ID used to create it.')
.optional(),
source: z
.nativeEnum(DocumentSource)
.describe('Filter envelopes by how it was created.')
.optional(),
status: z
.nativeEnum(DocumentStatus)
.describe('Filter envelopes by the current status.')
.optional(),
folderId: z.string().describe('Filter envelopes by folder ID.').optional(),
orderByColumn: z.enum(['createdAt']).optional(),
orderByDirection: z.enum(['asc', 'desc']).describe('Sort direction.').default('desc'),
});
export const ZFindEnvelopesResponseSchema = ZFindResultResponse.extend({
data: ZEnvelopeManySchema.array(),
});
export type TFindEnvelopesRequest = z.infer<typeof ZFindEnvelopesRequestSchema>;
export type TFindEnvelopesResponse = z.infer<typeof ZFindEnvelopesResponseSchema>;

Some files were not shown because too many files have changed in this diff Show More