mirror of
https://github.com/documenso/documenso.git
synced 2026-06-23 04:42:09 +10:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| db1087d76d | |||
| ef0a5b54ba | |||
| 1f985e2cd3 | |||
| 525dd92a56 | |||
| d21b99825d | |||
| dfbf68e4cd | |||
| 8b0231825f | |||
| 03e2e4f171 | |||
| 7f5f2b22ed | |||
| 7d3a56a006 | |||
| f1323679aa |
@@ -0,0 +1,151 @@
|
||||
---
|
||||
date: 2026-03-04
|
||||
title: Swap Subscription Between Orgs
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Add the ability for admins to move a subscription (and its associated Stripe customerId) from one organisation to another, when viewing a user in the admin panel. The target org must be owned by the same user and must be on the free plan (no existing active subscription).
|
||||
|
||||
## Context & Data Model
|
||||
|
||||
- `Organisation` has a 1:1 optional `Subscription` and a `customerId` (Stripe customer ID, `@unique`)
|
||||
- `Organisation` has a 1:1 `OrganisationClaim` that tracks entitlements (team count, member count, feature flags)
|
||||
- `Subscription` also stores a redundant `customerId` and has `organisationId` (`@unique`)
|
||||
- When a subscription is removed from an org, its `OrganisationClaim` should be reset to the FREE claim
|
||||
- Relationship chain: `User --owns--> Organisation --has--> Subscription + OrganisationClaim`
|
||||
|
||||
## Constraints
|
||||
|
||||
- **paid → free only**: The target org must NOT have an active subscription (status ACTIVE or PAST_DUE). It must be on the free plan.
|
||||
- **same owner**: Both source and target orgs must be owned by the same user (the user being viewed).
|
||||
- The `customerId` must move with the subscription to the target org (cleared from source, set on target).
|
||||
- The Stripe subscription object itself is NOT modified — only the DB-level mapping changes. The Stripe customer stays the same; we just reassociate it to a different org.
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
### 1. Backend: TRPC Admin Route
|
||||
|
||||
**Files to create:**
|
||||
|
||||
- `packages/trpc/server/admin-router/swap-organisation-subscription.types.ts`
|
||||
- `packages/trpc/server/admin-router/swap-organisation-subscription.ts`
|
||||
|
||||
**Request schema (`ZSwapOrganisationSubscriptionRequestSchema`):**
|
||||
|
||||
```ts
|
||||
z.object({
|
||||
sourceOrganisationId: z.string(),
|
||||
targetOrganisationId: z.string(),
|
||||
});
|
||||
```
|
||||
|
||||
**Response schema:** `z.void()`
|
||||
|
||||
**Route logic (in a single `prisma.$transaction`):**
|
||||
|
||||
1. Fetch source org with `subscription` + `organisationClaim`
|
||||
2. Fetch target org with `subscription` + `organisationClaim`
|
||||
3. Validate:
|
||||
- Source org has an active subscription (status `ACTIVE` or `PAST_DUE`)
|
||||
- Target org does NOT have an active subscription (no subscription record, or status `INACTIVE`)
|
||||
- Both orgs have the same `ownerUserId`
|
||||
4. In a transaction:
|
||||
a. Clear `customerId` on source org (set to `null`)
|
||||
b. Set `customerId` on target org to the source's `customerId`
|
||||
c. Move the `Subscription` record: update `organisationId` to target org ID
|
||||
d. Copy the source org's `OrganisationClaim` entitlements to the target org's `OrganisationClaim` (`originalSubscriptionClaimId`, `teamCount`, `memberCount`, `envelopeItemCount`, `flags`)
|
||||
e. Reset the source org's `OrganisationClaim` to the FREE claim (using `createOrganisationClaimUpsertData(internalClaims[INTERNAL_CLAIM_ID.FREE])` pattern from `on-subscription-deleted.ts`)
|
||||
|
||||
**Note on ordering:** Because `Organisation.customerId` is `@unique`, we must clear the source first, then set the target — or do both in a transaction that handles the constraint. Prisma transactions handle this correctly as they apply all writes atomically.
|
||||
|
||||
**Register the route:**
|
||||
|
||||
- Import in `packages/trpc/server/admin-router/router.ts`
|
||||
- Add under `organisation` as `swapSubscription`
|
||||
- Call path: `trpc.admin.organisation.swapSubscription`
|
||||
|
||||
### 2. Frontend: Dialog Component
|
||||
|
||||
**File to create:**
|
||||
|
||||
- `apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx`
|
||||
|
||||
**Props:**
|
||||
|
||||
```ts
|
||||
type AdminSwapSubscriptionDialogProps = {
|
||||
trigger?: React.ReactNode;
|
||||
sourceOrganisationId: string;
|
||||
sourceOrganisationName: string;
|
||||
userId: number;
|
||||
} & Omit<DialogPrimitive.DialogProps, 'children'>;
|
||||
```
|
||||
|
||||
**Dialog behavior:**
|
||||
|
||||
1. Opens when the trigger is clicked (from the organisations table actions dropdown)
|
||||
2. Fetches the user's owned orgs via `trpc.admin.organisation.find.useQuery({ ownerUserId: userId })`
|
||||
3. Filters to only show orgs that are on the free plan (no active subscription) and excludes the source org
|
||||
4. Displays a select dropdown to pick the target org
|
||||
5. Shows a warning alert: "This will move the subscription from {source} to {target}. The source organisation will be reset to the free plan."
|
||||
6. On submit, calls `trpc.admin.organisation.swapSubscription.useMutation()`
|
||||
7. On success, shows a toast, invalidates relevant queries, and closes the dialog
|
||||
|
||||
**UI layout (following existing dialog patterns like `admin-organisation-create-dialog.tsx`):**
|
||||
|
||||
- `DialogHeader` with title "Move Subscription" and description
|
||||
- A select dropdown listing eligible target orgs (name + url)
|
||||
- An `Alert` explaining what will happen
|
||||
- `DialogFooter` with Cancel + "Move Subscription" buttons (submit button uses `loading` prop)
|
||||
|
||||
### 3. Frontend: Wire into the Organisations Table
|
||||
|
||||
**File to modify:**
|
||||
|
||||
- `apps/remix/app/components/tables/admin-organisations-table.tsx`
|
||||
|
||||
**Changes:**
|
||||
|
||||
- Import the `AdminSwapSubscriptionDialog`
|
||||
- Add a new prop `ownerUserId?: number` to `AdminOrganisationsTableOptions` (needed so the dialog can query other owned orgs)
|
||||
- Add a new dropdown menu item in the actions column: "Move Subscription" with `ArrowRightLeftIcon` from lucide
|
||||
- Only render this item when the org row has an active subscription (`subscription?.status === 'ACTIVE' || subscription?.status === 'PAST_DUE'`)
|
||||
- The menu item renders inside `AdminSwapSubscriptionDialog` with `trigger` prop as the menu item
|
||||
|
||||
### 4. Frontend: Pass userId from User Detail Page
|
||||
|
||||
**File to modify:**
|
||||
|
||||
- `apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx`
|
||||
|
||||
**Changes:**
|
||||
|
||||
- Pass `ownerUserId={user.id}` to `<AdminOrganisationsTable>` so it can forward this to the swap dialog
|
||||
|
||||
## File Change Summary
|
||||
|
||||
| File | Action | Description |
|
||||
| --------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- |
|
||||
| `packages/trpc/server/admin-router/swap-organisation-subscription.types.ts` | **Create** | Request/response Zod schemas + TS types |
|
||||
| `packages/trpc/server/admin-router/swap-organisation-subscription.ts` | **Create** | Admin mutation with prisma transaction |
|
||||
| `packages/trpc/server/admin-router/router.ts` | **Modify** | Register route at `organisation.swapSubscription` |
|
||||
| `apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx` | **Create** | Dialog for selecting target org |
|
||||
| `apps/remix/app/components/tables/admin-organisations-table.tsx` | **Modify** | Add "Move Subscription" action + accept `ownerUserId` prop |
|
||||
| `apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx` | **Modify** | Pass `ownerUserId={user.id}` to table |
|
||||
|
||||
## Edge Cases & Considerations
|
||||
|
||||
1. **Stripe customer stays the same**: The Stripe subscription is tied to a Stripe customer. We move the `customerId` to the target org, so webhook lookups (`findFirst where customerId`) will correctly resolve to the target org going forward.
|
||||
|
||||
2. **`@unique` constraint on `Organisation.customerId`**: Must clear source before setting target within the transaction. Prisma interactive transactions handle this correctly.
|
||||
|
||||
3. **`@unique` constraint on `Subscription.organisationId`**: Since the target org should not have a subscription record, updating the existing subscription's `organisationId` to the target should work. If the target has an INACTIVE subscription record, we need to delete it first.
|
||||
|
||||
4. **Target org has INACTIVE subscription**: The target org might have a stale INACTIVE subscription from a previous cancellation. In this case, delete the target's old subscription record before moving the source's subscription over.
|
||||
|
||||
5. **Seat-based plans**: If the subscription is seat-based, the Stripe quantity may not match the target org's member count. Consider calling `syncMemberCountWithStripeSeatPlan` after the swap as a post-transaction step.
|
||||
|
||||
6. **OrganisationClaim transfer**: Copy `originalSubscriptionClaimId`, `teamCount`, `memberCount`, `envelopeItemCount`, and `flags` from source claim to target claim. Reset source claim to FREE.
|
||||
|
||||
7. **No Stripe API calls needed**: This is purely a DB-level reassociation. The Stripe subscription, customer, and payment method all remain unchanged.
|
||||
@@ -269,6 +269,10 @@ Returns the full document object including recipients, fields, and envelope item
|
||||
|
||||
Create a new document with optional recipients and fields in a single request.
|
||||
|
||||
<Callout type="info">
|
||||
This endpoint automatically scans uploaded PDFs for [placeholder patterns](/docs/users/documents/advanced/pdf-placeholders) like `{"{{signature, r1}}"}` and creates fields at those locations.
|
||||
</Callout>
|
||||
|
||||
```
|
||||
POST /envelope/create
|
||||
Content-Type: multipart/form-data
|
||||
|
||||
@@ -473,6 +473,10 @@ Instead of specifying exact coordinates, you can position fields using placehold
|
||||
|
||||
This approach is useful when generating PDFs programmatically or using templates with consistent layouts.
|
||||
|
||||
<Callout type="info">
|
||||
Placeholder support is only available in `envelope.*` endpoints. `POST /template/use` does not support placeholder parsing.
|
||||
</Callout>
|
||||
|
||||
See the [PDF Placeholders](/docs/users/documents/advanced/pdf-placeholders) guide for the full placeholder format reference, including supported field types, recipient identifiers, and field options.
|
||||
|
||||
---
|
||||
|
||||
@@ -240,6 +240,10 @@ Returns the full template object including recipients, fields, and metadata.
|
||||
|
||||
Create a new document using a template. This is the primary way to use templates programmatically.
|
||||
|
||||
<Callout type="info">
|
||||
This endpoint does not support [PDF placeholder parsing](/docs/users/documents/advanced/pdf-placeholders). Use `POST /envelope/create` for placeholder-based field positioning.
|
||||
</Callout>
|
||||
|
||||
```
|
||||
|
||||
POST /template/use
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
import { useEffect, useMemo, useState } from 'react';
|
||||
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { Trans } from '@lingui/react/macro';
|
||||
|
||||
import { AppError } from '@documenso/lib/errors/app-error';
|
||||
import { trpc } from '@documenso/trpc/react';
|
||||
import { Alert, AlertDescription } from '@documenso/ui/primitives/alert';
|
||||
import { Button } from '@documenso/ui/primitives/button';
|
||||
import {
|
||||
Dialog,
|
||||
DialogContent,
|
||||
DialogDescription,
|
||||
DialogFooter,
|
||||
DialogHeader,
|
||||
DialogTitle,
|
||||
} from '@documenso/ui/primitives/dialog';
|
||||
import {
|
||||
Select,
|
||||
SelectContent,
|
||||
SelectItem,
|
||||
SelectTrigger,
|
||||
SelectValue,
|
||||
} from '@documenso/ui/primitives/select';
|
||||
import { useToast } from '@documenso/ui/primitives/use-toast';
|
||||
|
||||
export type AdminSwapSubscriptionDialogProps = {
|
||||
open: boolean;
|
||||
onOpenChange: (open: boolean) => void;
|
||||
sourceOrganisationId: string;
|
||||
sourceOrganisationName: string;
|
||||
userId: number;
|
||||
};
|
||||
|
||||
export const AdminSwapSubscriptionDialog = ({
|
||||
open,
|
||||
onOpenChange,
|
||||
sourceOrganisationId,
|
||||
sourceOrganisationName,
|
||||
userId,
|
||||
}: AdminSwapSubscriptionDialogProps) => {
|
||||
const { t } = useLingui();
|
||||
const { toast } = useToast();
|
||||
|
||||
const [selectedOrgId, setSelectedOrgId] = useState<string>('');
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
|
||||
const { data: orgsData } = trpc.admin.organisation.find.useQuery(
|
||||
{
|
||||
ownerUserId: userId,
|
||||
perPage: 100,
|
||||
},
|
||||
{
|
||||
enabled: open,
|
||||
},
|
||||
);
|
||||
|
||||
const trpcUtils = trpc.useUtils();
|
||||
|
||||
const eligibleOrgs = useMemo(() => {
|
||||
if (!orgsData?.data) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return orgsData.data.filter((org) => {
|
||||
if (org.id === sourceOrganisationId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const hasActiveSubscription =
|
||||
org.subscription &&
|
||||
(org.subscription.status === 'ACTIVE' || org.subscription.status === 'PAST_DUE');
|
||||
|
||||
return !hasActiveSubscription;
|
||||
});
|
||||
}, [orgsData, sourceOrganisationId]);
|
||||
|
||||
const selectedOrg = eligibleOrgs.find((org) => org.id === selectedOrgId);
|
||||
|
||||
const { mutateAsync: swapSubscription } = trpc.admin.organisation.swapSubscription.useMutation();
|
||||
|
||||
const onSubmit = async () => {
|
||||
if (!selectedOrgId) {
|
||||
return;
|
||||
}
|
||||
|
||||
setIsSubmitting(true);
|
||||
|
||||
try {
|
||||
await swapSubscription({
|
||||
sourceOrganisationId,
|
||||
targetOrganisationId: selectedOrgId,
|
||||
});
|
||||
|
||||
await trpcUtils.admin.organisation.find.invalidate();
|
||||
await trpcUtils.admin.organisation.get.invalidate();
|
||||
|
||||
onOpenChange(false);
|
||||
|
||||
toast({
|
||||
title: t`Success`,
|
||||
description: t`Subscription moved successfully`,
|
||||
duration: 5000,
|
||||
});
|
||||
} catch (err) {
|
||||
const error = AppError.parseError(err);
|
||||
|
||||
console.error(error);
|
||||
|
||||
toast({
|
||||
title: t`Error`,
|
||||
description: t`Failed to move subscription. Please try again.`,
|
||||
variant: 'destructive',
|
||||
});
|
||||
} finally {
|
||||
setIsSubmitting(false);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!open) {
|
||||
setSelectedOrgId('');
|
||||
}
|
||||
}, [open]);
|
||||
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={(value) => !isSubmitting && onOpenChange(value)}>
|
||||
<DialogContent position="center">
|
||||
<DialogHeader>
|
||||
<DialogTitle>
|
||||
<Trans>Move Subscription</Trans>
|
||||
</DialogTitle>
|
||||
|
||||
<DialogDescription>
|
||||
<Trans>
|
||||
Move the subscription from "{sourceOrganisationName}" to another organisation owned by
|
||||
this user.
|
||||
</Trans>
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
<fieldset className="flex flex-col space-y-4" disabled={isSubmitting}>
|
||||
<div className="flex flex-col gap-2">
|
||||
<label className="text-sm font-medium">
|
||||
<Trans>Target Organisation</Trans>
|
||||
</label>
|
||||
|
||||
<Select value={selectedOrgId} onValueChange={setSelectedOrgId}>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder={t`Select an organisation`} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{eligibleOrgs.map((org) => (
|
||||
<SelectItem key={org.id} value={org.id}>
|
||||
{org.name} ({org.url})
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
{eligibleOrgs.length === 0 && orgsData && (
|
||||
<p className="text-sm text-muted-foreground">
|
||||
<Trans>No eligible organisations found. The target must be on the free plan.</Trans>
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{selectedOrg && (
|
||||
<Alert variant="warning">
|
||||
<AlertDescription className="mt-0">
|
||||
<Trans>
|
||||
This will move the subscription from "{sourceOrganisationName}" to "
|
||||
{selectedOrg.name}". The source organisation will be reset to the free plan.
|
||||
</Trans>
|
||||
</AlertDescription>
|
||||
</Alert>
|
||||
)}
|
||||
|
||||
<DialogFooter>
|
||||
<Button type="button" variant="secondary" onClick={() => onOpenChange(false)}>
|
||||
<Trans>Cancel</Trans>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
type="button"
|
||||
onClick={onSubmit}
|
||||
disabled={!selectedOrgId}
|
||||
loading={isSubmitting}
|
||||
>
|
||||
<Trans>Move Subscription</Trans>
|
||||
</Button>
|
||||
</DialogFooter>
|
||||
</fieldset>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
);
|
||||
};
|
||||
@@ -258,7 +258,7 @@ export const EditorFieldNumberForm = ({
|
||||
<FormControl>
|
||||
<Input
|
||||
className="bg-background"
|
||||
placeholder="E.g. 0"
|
||||
placeholder={t`E.g. 0`}
|
||||
{...field}
|
||||
value={field.value ?? ''}
|
||||
onChange={(e) =>
|
||||
@@ -282,7 +282,7 @@ export const EditorFieldNumberForm = ({
|
||||
<FormControl>
|
||||
<Input
|
||||
className="bg-background"
|
||||
placeholder="E.g. 100"
|
||||
placeholder={t`E.g. 100`}
|
||||
{...field}
|
||||
value={field.value ?? ''}
|
||||
onChange={(e) =>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useMemo, useState } from 'react';
|
||||
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { Trans } from '@lingui/react/macro';
|
||||
import {
|
||||
ArrowRightLeftIcon,
|
||||
CreditCardIcon,
|
||||
ExternalLinkIcon,
|
||||
MoreHorizontalIcon,
|
||||
@@ -29,6 +30,8 @@ import {
|
||||
import { Skeleton } from '@documenso/ui/primitives/skeleton';
|
||||
import { TableCell } from '@documenso/ui/primitives/table';
|
||||
|
||||
import { AdminSwapSubscriptionDialog } from '~/components/dialogs/admin-swap-subscription-dialog';
|
||||
|
||||
type AdminOrganisationsTableOptions = {
|
||||
ownerUserId?: number;
|
||||
memberUserId?: number;
|
||||
@@ -44,6 +47,12 @@ export const AdminOrganisationsTable = ({
|
||||
}: AdminOrganisationsTableOptions) => {
|
||||
const { t, i18n } = useLingui();
|
||||
|
||||
const [swapSource, setSwapSource] = useState<{
|
||||
id: string;
|
||||
name: string;
|
||||
ownerId: number;
|
||||
} | null>(null);
|
||||
|
||||
const [searchParams] = useSearchParams();
|
||||
const updateSearchParams = useUpdateSearchParams();
|
||||
|
||||
@@ -131,7 +140,7 @@ export const AdminOrganisationsTable = ({
|
||||
target="_blank"
|
||||
className="flex flex-row items-center gap-2"
|
||||
>
|
||||
{SUBSCRIPTION_STATUS_MAP[row.original.subscription.status]}
|
||||
{i18n._(SUBSCRIPTION_STATUS_MAP[row.original.subscription.status])}
|
||||
<ExternalLinkIcon className="h-4 w-4" />
|
||||
</Link>
|
||||
) : (
|
||||
@@ -143,7 +152,7 @@ export const AdminOrganisationsTable = ({
|
||||
cell: ({ row }) => (
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger>
|
||||
<MoreHorizontalIcon className="text-muted-foreground h-5 w-5" />
|
||||
<MoreHorizontalIcon className="h-5 w-5 text-muted-foreground" />
|
||||
</DropdownMenuTrigger>
|
||||
|
||||
<DropdownMenuContent className="w-52" align="start" forceMount>
|
||||
@@ -172,12 +181,29 @@ export const AdminOrganisationsTable = ({
|
||||
{!row.original.customerId && <span> (N/A)</span>}
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
|
||||
{row.original.subscription &&
|
||||
(row.original.subscription.status === 'ACTIVE' ||
|
||||
row.original.subscription.status === 'PAST_DUE') && (
|
||||
<DropdownMenuItem
|
||||
onClick={() =>
|
||||
setSwapSource({
|
||||
id: row.original.id,
|
||||
name: row.original.name,
|
||||
ownerId: row.original.owner.id,
|
||||
})
|
||||
}
|
||||
>
|
||||
<ArrowRightLeftIcon className="mr-2 h-4 w-4" />
|
||||
<Trans>Move Subscription</Trans>
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
),
|
||||
},
|
||||
] satisfies DataTableColumnDef<(typeof results)['data'][number]>[];
|
||||
}, []);
|
||||
}, [i18n, t, memberUserId, showOwnerColumn]);
|
||||
|
||||
return (
|
||||
<div>
|
||||
@@ -227,6 +253,20 @@ export const AdminOrganisationsTable = ({
|
||||
) : null
|
||||
}
|
||||
</DataTable>
|
||||
|
||||
{swapSource && (
|
||||
<AdminSwapSubscriptionDialog
|
||||
sourceOrganisationId={swapSource.id}
|
||||
sourceOrganisationName={swapSource.name}
|
||||
userId={swapSource.ownerId}
|
||||
open={true}
|
||||
onOpenChange={(open) => {
|
||||
if (!open) {
|
||||
setSwapSource(null);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Trans } from '@lingui/react/macro';
|
||||
import {
|
||||
AlertTriangleIcon,
|
||||
BarChart3,
|
||||
Building2Icon,
|
||||
FileStack,
|
||||
@@ -123,6 +124,20 @@ export default function AdminLayout({ loaderData }: Route.ComponentProps) {
|
||||
</Link>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="ghost"
|
||||
className={cn(
|
||||
'justify-start md:w-full',
|
||||
pathname?.startsWith('/admin/unsealed-documents') && 'bg-secondary',
|
||||
)}
|
||||
asChild
|
||||
>
|
||||
<Link to="/admin/unsealed-documents">
|
||||
<AlertTriangleIcon className="mr-2 h-5 w-5" />
|
||||
<Trans>Unsealed Documents</Trans>
|
||||
</Link>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="ghost"
|
||||
className={cn(
|
||||
|
||||
@@ -56,7 +56,7 @@ export default function OrganisationGroupSettingsPage({
|
||||
}: Route.ComponentProps) {
|
||||
const { licenseFlags } = loaderData;
|
||||
|
||||
const { t } = useLingui();
|
||||
const { t, i18n } = useLingui();
|
||||
const { toast } = useToast();
|
||||
|
||||
const navigate = useNavigate();
|
||||
@@ -98,7 +98,7 @@ export default function OrganisationGroupSettingsPage({
|
||||
accessorKey: 'url',
|
||||
},
|
||||
] satisfies DataTableColumnDef<TGetAdminOrganisationResponse['teams'][number]>[];
|
||||
}, []);
|
||||
}, [t]);
|
||||
|
||||
const organisationMembersColumns = useMemo(() => {
|
||||
return [
|
||||
@@ -143,7 +143,7 @@ export default function OrganisationGroupSettingsPage({
|
||||
},
|
||||
},
|
||||
] satisfies DataTableColumnDef<TGetAdminOrganisationResponse['members'][number]>[];
|
||||
}, [organisation]);
|
||||
}, [organisation, t]);
|
||||
|
||||
if (isLoadingOrganisation) {
|
||||
return (
|
||||
@@ -209,7 +209,8 @@ export default function OrganisationGroupSettingsPage({
|
||||
<AlertDescription className="mr-2">
|
||||
{organisation.subscription ? (
|
||||
<span>
|
||||
{SUBSCRIPTION_STATUS_MAP[organisation.subscription.status]} subscription found
|
||||
{i18n._(SUBSCRIPTION_STATUS_MAP[organisation.subscription.status])} subscription
|
||||
found
|
||||
</span>
|
||||
) : (
|
||||
<span>
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
import { Trans } from '@lingui/react/macro';
|
||||
import { AlertTriangleIcon, Loader } from 'lucide-react';
|
||||
import { DateTime } from 'luxon';
|
||||
import { Link, useSearchParams } from 'react-router';
|
||||
|
||||
import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params';
|
||||
import { trpc } from '@documenso/trpc/react';
|
||||
import { Badge } from '@documenso/ui/primitives/badge';
|
||||
import { Button } from '@documenso/ui/primitives/button';
|
||||
import type { DataTableColumnDef } from '@documenso/ui/primitives/data-table';
|
||||
import { DataTable } from '@documenso/ui/primitives/data-table';
|
||||
import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination';
|
||||
import { useToast } from '@documenso/ui/primitives/use-toast';
|
||||
|
||||
const SIX_HOURS_MS = 6 * 60 * 60 * 1000;
|
||||
|
||||
export default function AdminUnsealedDocumentsPage() {
|
||||
const { _, i18n } = useLingui();
|
||||
const { toast } = useToast();
|
||||
|
||||
const [searchParams] = useSearchParams();
|
||||
const updateSearchParams = useUpdateSearchParams();
|
||||
|
||||
const page = searchParams?.get?.('page') ? Number(searchParams.get('page')) : undefined;
|
||||
const perPage = searchParams?.get?.('perPage') ? Number(searchParams.get('perPage')) : undefined;
|
||||
|
||||
const {
|
||||
data: findUnsealedData,
|
||||
isPending: isLoading,
|
||||
refetch,
|
||||
} = trpc.admin.document.findUnsealed.useQuery(
|
||||
{
|
||||
page: page || 1,
|
||||
perPage: perPage || 20,
|
||||
},
|
||||
{
|
||||
placeholderData: (previousData) => previousData,
|
||||
},
|
||||
);
|
||||
|
||||
const { mutateAsync: resealDocument, isPending: isResealing } =
|
||||
trpc.admin.document.reseal.useMutation({
|
||||
onSuccess: () => {
|
||||
toast({ title: _(msg`Seal job triggered`), variant: 'default' });
|
||||
void refetch();
|
||||
},
|
||||
onError: () => {
|
||||
toast({ title: _(msg`Failed to trigger seal`), variant: 'destructive' });
|
||||
},
|
||||
});
|
||||
|
||||
const results = findUnsealedData ?? {
|
||||
data: [],
|
||||
perPage: 20,
|
||||
currentPage: 1,
|
||||
totalPages: 1,
|
||||
};
|
||||
|
||||
const columns = useMemo(() => {
|
||||
return [
|
||||
{
|
||||
header: _(msg`Title`),
|
||||
accessorKey: 'title',
|
||||
cell: ({ row }) => {
|
||||
return (
|
||||
<Link
|
||||
to={`/admin/documents/${row.original.id}`}
|
||||
className="block max-w-[10rem] truncate font-medium hover:underline md:max-w-[15rem]"
|
||||
>
|
||||
{row.original.title}
|
||||
</Link>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
header: _(msg`Owner`),
|
||||
accessorKey: 'ownerEmail',
|
||||
cell: ({ row }) => (
|
||||
<div className="text-sm text-muted-foreground">
|
||||
<div>{row.original.ownerName}</div>
|
||||
<div>{row.original.ownerEmail}</div>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
{
|
||||
header: _(msg`Last Signed`),
|
||||
accessorKey: 'lastSignedAt',
|
||||
cell: ({ row }) => {
|
||||
if (!row.original.lastSignedAt) {
|
||||
return <span className="text-muted-foreground">-</span>;
|
||||
}
|
||||
|
||||
return i18n.date(row.original.lastSignedAt, {
|
||||
dateStyle: 'medium',
|
||||
timeStyle: 'short',
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
header: _(msg`Stuck For`),
|
||||
accessorKey: 'stuckDuration',
|
||||
cell: ({ row }) => {
|
||||
if (!row.original.lastSignedAt) {
|
||||
return <span className="text-muted-foreground">-</span>;
|
||||
}
|
||||
|
||||
const signedAt = DateTime.fromJSDate(new Date(row.original.lastSignedAt));
|
||||
const stuckMs = Date.now() - signedAt.toMillis();
|
||||
const isOld = stuckMs > SIX_HOURS_MS;
|
||||
const label = signedAt.toRelative() ?? '';
|
||||
|
||||
return <Badge variant={isOld ? 'destructive' : 'warning'}>{label}</Badge>;
|
||||
},
|
||||
},
|
||||
{
|
||||
header: _(msg`Created`),
|
||||
accessorKey: 'createdAt',
|
||||
cell: ({ row }) => i18n.date(row.original.createdAt),
|
||||
},
|
||||
{
|
||||
header: _(msg`Actions`),
|
||||
accessorKey: 'actions',
|
||||
cell: ({ row }) => {
|
||||
return (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
disabled={isResealing}
|
||||
onClick={() => void resealDocument({ id: row.original.id })}
|
||||
>
|
||||
<Trans>Reseal</Trans>
|
||||
</Button>
|
||||
);
|
||||
},
|
||||
},
|
||||
] satisfies DataTableColumnDef<(typeof results)['data'][number]>[];
|
||||
}, [isResealing]);
|
||||
|
||||
const onPaginationChange = (newPage: number, newPerPage: number) => {
|
||||
updateSearchParams({
|
||||
page: newPage,
|
||||
perPage: newPerPage,
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="flex items-center gap-3">
|
||||
<AlertTriangleIcon className="h-8 w-8 text-destructive" />
|
||||
<h2 className="text-4xl font-semibold">
|
||||
<Trans>Unsealed Documents</Trans>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
<Trans>
|
||||
Documents where all recipients have signed but the document has not been sealed. Documents
|
||||
stuck for more than 6 hours are no longer retried by the sweep job.
|
||||
</Trans>
|
||||
</p>
|
||||
|
||||
<div className="relative mt-8">
|
||||
<DataTable
|
||||
columns={columns}
|
||||
data={results.data}
|
||||
perPage={results.perPage ?? 20}
|
||||
currentPage={results.currentPage ?? 1}
|
||||
totalPages={results.totalPages ?? 1}
|
||||
onPaginationChange={onPaginationChange}
|
||||
>
|
||||
{(table) => <DataTablePagination additionalInformation="VisibleCount" table={table} />}
|
||||
</DataTable>
|
||||
|
||||
{isLoading && (
|
||||
<div className="absolute inset-0 flex items-center justify-center bg-white/50">
|
||||
<Loader className="h-8 w-8 animate-spin text-gray-500" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -105,5 +105,5 @@
|
||||
"vite-plugin-babel-macros": "^1.0.6",
|
||||
"vite-tsconfig-paths": "^5.1.4"
|
||||
},
|
||||
"version": "2.7.0"
|
||||
"version": "2.7.1"
|
||||
}
|
||||
|
||||
Generated
+3
-3
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@documenso/root",
|
||||
"version": "2.7.0",
|
||||
"version": "2.7.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@documenso/root",
|
||||
"version": "2.7.0",
|
||||
"version": "2.7.1",
|
||||
"hasInstallScript": true,
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
@@ -651,7 +651,7 @@
|
||||
},
|
||||
"apps/remix": {
|
||||
"name": "@documenso/remix",
|
||||
"version": "2.7.0",
|
||||
"version": "2.7.1",
|
||||
"dependencies": {
|
||||
"@cantoo/pdf-lib": "^2.5.3",
|
||||
"@documenso/api": "*",
|
||||
|
||||
+3
-3
@@ -5,12 +5,12 @@
|
||||
"apps/*",
|
||||
"packages/*"
|
||||
],
|
||||
"version": "2.7.0",
|
||||
"version": "2.7.1",
|
||||
"scripts": {
|
||||
"postinstall": "patch-package",
|
||||
"build": "turbo run build",
|
||||
"dev": "turbo run dev --filter=@documenso/remix",
|
||||
"dev:remix": "turbo run dev --filter=@documenso/remix",
|
||||
"dev": "npm run translate:compile && turbo run dev --filter=@documenso/remix",
|
||||
"dev:remix": "npm run translate:compile && turbo run dev --filter=@documenso/remix",
|
||||
"dev:docs": "turbo run dev --filter=@documenso/documentation",
|
||||
"dev:openpage-api": "turbo run dev --filter=@documenso/openpage-api",
|
||||
"start": "turbo run start --filter=@documenso/remix --filter=@documenso/documentation --filter=@documenso/openpage-api",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { SubscriptionStatus } from '@prisma/client';
|
||||
|
||||
export enum STRIPE_PLAN_TYPE {
|
||||
@@ -12,7 +13,16 @@ export enum STRIPE_PLAN_TYPE {
|
||||
export const FREE_TIER_DOCUMENT_QUOTA = 5;
|
||||
|
||||
export const SUBSCRIPTION_STATUS_MAP = {
|
||||
[SubscriptionStatus.ACTIVE]: 'Active',
|
||||
[SubscriptionStatus.INACTIVE]: 'Inactive',
|
||||
[SubscriptionStatus.PAST_DUE]: 'Past Due',
|
||||
[SubscriptionStatus.ACTIVE]: msg({
|
||||
message: 'Active',
|
||||
context: 'Subscription status',
|
||||
}),
|
||||
[SubscriptionStatus.INACTIVE]: msg({
|
||||
message: 'Inactive',
|
||||
context: 'Subscription status',
|
||||
}),
|
||||
[SubscriptionStatus.PAST_DUE]: msg({
|
||||
message: 'Past Due',
|
||||
context: 'Subscription status',
|
||||
}),
|
||||
};
|
||||
|
||||
@@ -16,6 +16,7 @@ import { EXECUTE_WEBHOOK_JOB_DEFINITION } from './definitions/internal/execute-w
|
||||
import { EXPIRE_RECIPIENTS_SWEEP_JOB_DEFINITION } from './definitions/internal/expire-recipients-sweep';
|
||||
import { PROCESS_RECIPIENT_EXPIRED_JOB_DEFINITION } from './definitions/internal/process-recipient-expired';
|
||||
import { SEAL_DOCUMENT_JOB_DEFINITION } from './definitions/internal/seal-document';
|
||||
import { SEAL_DOCUMENT_SWEEP_JOB_DEFINITION } from './definitions/internal/seal-document-sweep';
|
||||
import { SYNC_EMAIL_DOMAINS_JOB_DEFINITION } from './definitions/internal/sync-email-domains';
|
||||
|
||||
/**
|
||||
@@ -29,6 +30,7 @@ export const jobsClient = new JobClient([
|
||||
SEND_ORGANISATION_MEMBER_LEFT_EMAIL_JOB_DEFINITION,
|
||||
SEND_TEAM_DELETED_EMAIL_JOB_DEFINITION,
|
||||
SEAL_DOCUMENT_JOB_DEFINITION,
|
||||
SEAL_DOCUMENT_SWEEP_JOB_DEFINITION,
|
||||
SEND_PASSWORD_RESET_SUCCESS_EMAIL_JOB_DEFINITION,
|
||||
SEND_SIGNING_REJECTION_EMAILS_JOB_DEFINITION,
|
||||
SEND_RECIPIENT_SIGNED_EMAIL_JOB_DEFINITION,
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
import { DocumentStatus, EnvelopeType, RecipientRole, SigningStatus } from '@prisma/client';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import { kyselyPrisma, sql } from '@documenso/prisma';
|
||||
|
||||
import { mapSecondaryIdToDocumentId } from '../../../utils/envelope';
|
||||
import { jobs } from '../../client';
|
||||
import type { JobRunIO } from '../../client/_internal/job';
|
||||
import type { TSealDocumentSweepJobDefinition } from './seal-document-sweep';
|
||||
|
||||
export const run = async ({ io }: { payload: TSealDocumentSweepJobDefinition; io: JobRunIO }) => {
|
||||
const now = DateTime.now();
|
||||
const fifteenMinutesAgo = now.minus({ minutes: 15 }).toJSDate();
|
||||
const sixHoursAgo = now.minus({ hours: 6 }).toJSDate();
|
||||
|
||||
// Find all PENDING envelopes that should have been sealed but weren't.
|
||||
//
|
||||
// A document is ready to seal when either:
|
||||
// 1. All recipients are SIGNED or have role CC (normal completion)
|
||||
// 2. Any recipient has REJECTED (rejection triggers immediate seal)
|
||||
//
|
||||
// We only look at documents where the last action was between 15 minutes
|
||||
// and 6 hours ago. The lower bound avoids racing with the normal seal-document
|
||||
// job that fires on completion. The upper bound stops us from endlessly retrying
|
||||
// documents that are stuck due to a deeper issue (e.g. corrupt PDF).
|
||||
const unsealedEnvelopes = await kyselyPrisma.$kysely
|
||||
.selectFrom('Envelope')
|
||||
.select(['Envelope.id', 'Envelope.secondaryId'])
|
||||
.where('Envelope.status', '=', sql.lit(DocumentStatus.PENDING))
|
||||
.where('Envelope.type', '=', sql.lit(EnvelopeType.DOCUMENT))
|
||||
.where('Envelope.deletedAt', 'is', null)
|
||||
// Ensure there is at least one recipient.
|
||||
.where((eb) =>
|
||||
eb.exists(eb.selectFrom('Recipient').whereRef('Recipient.envelopeId', '=', 'Envelope.id')),
|
||||
)
|
||||
// Document is ready to seal: all recipients are SIGNED/CC, or any recipient REJECTED.
|
||||
.where((eb) =>
|
||||
eb.or([
|
||||
// Case 1: All recipients are either SIGNED or CC.
|
||||
eb.not(
|
||||
eb.exists(
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.where('Recipient.signingStatus', '!=', sql.lit(SigningStatus.SIGNED))
|
||||
.where('Recipient.role', '!=', sql.lit(RecipientRole.CC)),
|
||||
),
|
||||
),
|
||||
// Case 2: Any recipient has rejected.
|
||||
eb.exists(
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.where('Recipient.signingStatus', '=', sql.lit(SigningStatus.REJECTED)),
|
||||
),
|
||||
]),
|
||||
)
|
||||
// Exclude envelopes where a recipient signed/rejected within the last 15 minutes
|
||||
// to avoid racing with the standard completion flow.
|
||||
.where((eb) =>
|
||||
eb.not(
|
||||
eb.exists(
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.where('Recipient.signedAt', '>', fifteenMinutesAgo),
|
||||
),
|
||||
),
|
||||
)
|
||||
// Exclude envelopes where all activity is older than 6 hours.
|
||||
// These are likely stuck due to a deeper issue and should not be retried.
|
||||
.where((eb) =>
|
||||
eb.exists(
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.where('Recipient.signedAt', '>', sixHoursAgo),
|
||||
),
|
||||
)
|
||||
.limit(100)
|
||||
.execute();
|
||||
|
||||
if (unsealedEnvelopes.length === 0) {
|
||||
io.logger.info('No unsealed documents found');
|
||||
return;
|
||||
}
|
||||
|
||||
io.logger.info(`Found ${unsealedEnvelopes.length} unsealed documents`);
|
||||
|
||||
await Promise.allSettled(
|
||||
unsealedEnvelopes.map(async (envelope) => {
|
||||
const documentId = mapSecondaryIdToDocumentId(envelope.secondaryId);
|
||||
|
||||
io.logger.info(`Triggering seal for document ${documentId} (${envelope.id})`);
|
||||
|
||||
await jobs.triggerJob({
|
||||
name: 'internal.seal-document',
|
||||
payload: {
|
||||
documentId,
|
||||
isResealing: true,
|
||||
},
|
||||
});
|
||||
}),
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
import { type JobDefinition } from '../../client/_internal/job';
|
||||
|
||||
const SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_ID = 'internal.seal-document-sweep';
|
||||
|
||||
const SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_SCHEMA = z.object({});
|
||||
|
||||
export type TSealDocumentSweepJobDefinition = z.infer<
|
||||
typeof SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_SCHEMA
|
||||
>;
|
||||
|
||||
export const SEAL_DOCUMENT_SWEEP_JOB_DEFINITION = {
|
||||
id: SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_ID,
|
||||
name: 'Seal Document Sweep',
|
||||
version: '1.0.0',
|
||||
trigger: {
|
||||
name: SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_ID,
|
||||
schema: SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_SCHEMA,
|
||||
cron: '*/15 * * * *', // Every 15 minutes.
|
||||
},
|
||||
handler: async ({ payload, io }) => {
|
||||
const handler = await import('./seal-document-sweep.handler');
|
||||
|
||||
await handler.run({ payload, io });
|
||||
},
|
||||
} as const satisfies JobDefinition<
|
||||
typeof SEAL_DOCUMENT_SWEEP_JOB_DEFINITION_ID,
|
||||
TSealDocumentSweepJobDefinition
|
||||
>;
|
||||
@@ -46,6 +46,14 @@ export const run = async ({ io }: { payload: TSyncEmailDomainsJobDefinition; io:
|
||||
batch.map(async (domain) => {
|
||||
const shouldReregister = domain.createdAt < reregisterCutoff;
|
||||
|
||||
const { isVerified } = await verifyEmailDomain(domain.id);
|
||||
|
||||
if (isVerified) {
|
||||
io.logger.info(`Domain "${domain.domain}" is verified`);
|
||||
|
||||
return 'verified' as const;
|
||||
}
|
||||
|
||||
if (shouldReregister) {
|
||||
io.logger.info(
|
||||
`Domain "${domain.domain}" has been pending since ${domain.createdAt.toISOString()}, attempting re-registration`,
|
||||
@@ -55,9 +63,7 @@ export const run = async ({ io }: { payload: TSyncEmailDomainsJobDefinition; io:
|
||||
return 'reregistered' as const;
|
||||
}
|
||||
|
||||
const { isVerified } = await verifyEmailDomain(domain.id);
|
||||
|
||||
return isVerified ? ('verified' as const) : ('pending' as const);
|
||||
return 'pending' as const;
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
import { DocumentStatus, EnvelopeType, RecipientRole, SigningStatus } from '@prisma/client';
|
||||
|
||||
import { kyselyPrisma, sql } from '@documenso/prisma';
|
||||
|
||||
import type { FindResultResponse } from '../../types/search-params';
|
||||
|
||||
export type AdminUnsealedDocument = {
|
||||
id: string;
|
||||
secondaryId: string;
|
||||
title: string;
|
||||
status: string;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
userId: number;
|
||||
teamId: number;
|
||||
ownerName: string | null;
|
||||
ownerEmail: string;
|
||||
lastSignedAt: Date | null;
|
||||
};
|
||||
|
||||
export type AdminFindUnsealedDocumentsOptions = {
|
||||
page?: number;
|
||||
perPage?: number;
|
||||
};
|
||||
|
||||
export const adminFindUnsealedDocuments = async ({
|
||||
page = 1,
|
||||
perPage = 20,
|
||||
}: AdminFindUnsealedDocumentsOptions): Promise<FindResultResponse<AdminUnsealedDocument[]>> => {
|
||||
const offset = Math.max(page - 1, 0) * perPage;
|
||||
|
||||
const baseQuery = kyselyPrisma.$kysely
|
||||
.selectFrom('Envelope')
|
||||
.where('Envelope.status', '=', sql.lit(DocumentStatus.PENDING))
|
||||
.where('Envelope.type', '=', sql.lit(EnvelopeType.DOCUMENT))
|
||||
.where('Envelope.deletedAt', 'is', null)
|
||||
// Must have at least one recipient.
|
||||
.where((eb) =>
|
||||
eb.exists(eb.selectFrom('Recipient').whereRef('Recipient.envelopeId', '=', 'Envelope.id')),
|
||||
)
|
||||
// Document is ready to seal: all recipients are SIGNED/CC, or any recipient REJECTED.
|
||||
.where((eb) =>
|
||||
eb.or([
|
||||
// Case 1: All recipients are either SIGNED or CC.
|
||||
eb.not(
|
||||
eb.exists(
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.where('Recipient.signingStatus', '!=', sql.lit(SigningStatus.SIGNED))
|
||||
.where('Recipient.role', '!=', sql.lit(RecipientRole.CC)),
|
||||
),
|
||||
),
|
||||
// Case 2: Any recipient has rejected.
|
||||
eb.exists(
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.where('Recipient.signingStatus', '=', sql.lit(SigningStatus.REJECTED)),
|
||||
),
|
||||
]),
|
||||
);
|
||||
|
||||
const [data, countResult] = await Promise.all([
|
||||
baseQuery
|
||||
.innerJoin('User', 'User.id', 'Envelope.userId')
|
||||
.select([
|
||||
'Envelope.id',
|
||||
'Envelope.secondaryId',
|
||||
'Envelope.title',
|
||||
'Envelope.status',
|
||||
'Envelope.createdAt',
|
||||
'Envelope.updatedAt',
|
||||
'Envelope.userId',
|
||||
'Envelope.teamId',
|
||||
'User.name as ownerName',
|
||||
'User.email as ownerEmail',
|
||||
])
|
||||
.select((eb) =>
|
||||
eb
|
||||
.selectFrom('Recipient')
|
||||
.whereRef('Recipient.envelopeId', '=', 'Envelope.id')
|
||||
.select(sql<Date>`max("Recipient"."signedAt")`.as('lastSignedAt'))
|
||||
.as('lastSignedAt'),
|
||||
)
|
||||
.orderBy('Envelope.createdAt', 'desc')
|
||||
.limit(perPage)
|
||||
.offset(offset)
|
||||
.execute(),
|
||||
baseQuery.select(({ fn }) => [fn.countAll().as('count')]).execute(),
|
||||
]);
|
||||
|
||||
const count = Number(countResult[0]?.count ?? 0);
|
||||
|
||||
return {
|
||||
data: data as unknown as AdminUnsealedDocument[],
|
||||
count,
|
||||
currentPage: Math.max(page, 1),
|
||||
perPage,
|
||||
totalPages: Math.ceil(count / perPage),
|
||||
};
|
||||
};
|
||||
@@ -8,6 +8,7 @@ import { validateRadioField } from '@documenso/lib/advanced-fields-validation/va
|
||||
import { validateTextField } from '@documenso/lib/advanced-fields-validation/validate-text';
|
||||
import { DOCUMENT_AUDIT_LOG_TYPE } from '@documenso/lib/types/document-audit-logs';
|
||||
import {
|
||||
FIELD_META_DEFAULT_VALUES,
|
||||
type TFieldMetaSchema as FieldMeta,
|
||||
ZCheckboxFieldMeta,
|
||||
ZDropdownFieldMeta,
|
||||
@@ -143,7 +144,7 @@ export const setFieldsForDocument = async ({
|
||||
|
||||
const parsedFieldMeta = field.fieldMeta
|
||||
? ZFieldMetaSchema.parse(field.fieldMeta)
|
||||
: undefined;
|
||||
: FIELD_META_DEFAULT_VALUES[field.type];
|
||||
|
||||
if (field.type === FieldType.TEXT && field.fieldMeta) {
|
||||
const textFieldParsedMeta = ZTextFieldMeta.parse(field.fieldMeta);
|
||||
|
||||
@@ -6,6 +6,7 @@ import { validateNumberField } from '@documenso/lib/advanced-fields-validation/v
|
||||
import { validateRadioField } from '@documenso/lib/advanced-fields-validation/validate-radio';
|
||||
import { validateTextField } from '@documenso/lib/advanced-fields-validation/validate-text';
|
||||
import {
|
||||
FIELD_META_DEFAULT_VALUES,
|
||||
type TFieldMetaSchema as FieldMeta,
|
||||
ZCheckboxFieldMeta,
|
||||
ZDropdownFieldMeta,
|
||||
@@ -116,7 +117,9 @@ export const setFieldsForTemplate = async ({
|
||||
// Disabling as wrapping promises here causes type issues
|
||||
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
||||
linkedFields.map(async (field) => {
|
||||
const parsedFieldMeta = field.fieldMeta ? ZFieldMetaSchema.parse(field.fieldMeta) : undefined;
|
||||
const parsedFieldMeta = field.fieldMeta
|
||||
? ZFieldMetaSchema.parse(field.fieldMeta)
|
||||
: FIELD_META_DEFAULT_VALUES[field.type];
|
||||
|
||||
if (field.type === FieldType.TEXT && field.fieldMeta) {
|
||||
const textFieldParsedMeta = ZTextFieldMeta.parse(field.fieldMeta);
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "Aktion"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2003,11 +2004,11 @@ msgstr "Mindestens ein Signaturtyp muss aktiviert sein"
|
||||
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
msgid "Attachment added successfully."
|
||||
msgstr "Anlage erfolgreich hinzugefügt."
|
||||
msgstr "Anhang erfolgreich hinzugefügt."
|
||||
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
msgid "Attachment removed successfully."
|
||||
msgstr "<<<<<<< Updated upstream======="
|
||||
msgstr "Anhang erfolgreich entfernt."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "Person nicht gefunden?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Ccers"
|
||||
msgid "Center"
|
||||
msgstr "Zentrum"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Empfänger ändern"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Zeichenbeschränkung"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "Checkbox-Werte"
|
||||
msgid "Checkout"
|
||||
msgstr "Abrechnung"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Wählen Sie einen vorhandenen Empfänger unten aus, um fortzufahren"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Dokumenteneinstellungen und Optionen vor dem Versand konfigurieren."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "E-Mail-Einstellungen für das Dokument konfigurieren"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Konfigurieren Sie die allgemeinen Einstellungen für die Vorlage."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Sicherheitseinstellungen für das Dokument konfigurieren"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensign
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "Dokumente, die Ihre Aufmerksamkeit erfordern, erscheinen hier"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Dokumente angesehen"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "Vorlage duplizieren"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "Doppelte Werte sind nicht erlaubt"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Z. B. 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "Beigefügte Dokument"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Beigefügte Dokumente"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "Umschlagtitel"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Umschlag aktualisiert"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "Fehler beim Laden des Dokuments"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Ordner konnte nicht verschoben werden"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "E-Mail-Domain konnte nicht erneut registriert werden"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "Fehler beim Abmelden aller Sitzungen"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Lizenz konnte nicht synchronisiert werden"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Konto konnte nicht entkoppelt werden"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "Freie Unterschrift"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Einstellungen für freie Unterschrift"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "DKIM-Datensätze generieren"
|
||||
msgid "Generate Links"
|
||||
msgstr "Links generieren"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Globale Empfängerauthentifizierung"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "Es ist momentan nicht Ihre Runde zum Unterschreiben. Bitte schauen Sie b
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "Es ist derzeit nicht deine Reihe zu unterschreiben. Du erhältst eine E-Mail mit Anweisungen, sobald es deine Reihe ist, das Dokument zu unterschreiben."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Tritt {organisationName} auf Documenso bei"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "Beigetreten"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Beigetreten {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "Zuletzt geändert"
|
||||
msgid "Last Retried"
|
||||
msgstr "Zuletzt erneut versucht"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "Dokumente in Ordner verschieben"
|
||||
msgid "Move Folder"
|
||||
msgstr "Ordner verschieben"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Vorlage in Ordner verschieben"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "Vorlage in Ordner verschieben"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Vorlagen in Ordner verschieben"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "Keine aktiven Entwürfe"
|
||||
msgid "No documents found"
|
||||
msgstr "Keine Dokumente gefunden"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "Keine E‑Mail erkannt"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "Organisationseinstellungen überschreiben"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "Bitte laden Sie ein Dokument hoch, um fortzufahren."
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Bitte laden Sie ein Logo hoch"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "Erforderliches Feld"
|
||||
msgid "Required scopes"
|
||||
msgstr "Erforderliche Bereiche"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Dokument wieder versiegeln"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "Speichern fehlgeschlagen"
|
||||
msgid "Save Template"
|
||||
msgstr "Vorlage speichern"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Versiegelungsauftrag gestartet"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "Wählen Sie einen Ereignistyp aus"
|
||||
msgid "Select an option"
|
||||
msgstr "Option auswählen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Wählen Sie eine Organisation, um Teams anzuzeigen"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "Quelle"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Durch Leerzeichen getrennte Liste von Domains. Leer lassen, um alle Domains zuzulassen."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Stripe-Kunde erfolgreich erstellt"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Stripe-Kunden-ID"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Betreff"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "Abonnementansprüche"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Abonnement ungültig"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Abonnementstatus"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "Systemanforderungen"
|
||||
msgid "System Theme"
|
||||
msgstr "Systemthema"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "Dadurch werden der Status aller E-Mail-Domains dieser Organisation über
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "Dadurch wird die bestehende SES-Identität für <0>{0}</0> gelöscht und mit denselben DKIM-Schlüsseln neu erstellt. Der Benutzer muss seine DNS-Einträge nicht aktualisieren. Der Domainstatus wird auf \"Ausstehend\" zurückgesetzt."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Diese werden NUR Funktionsflags zurückspielen, die auf wahr gesetzt sind; alles, was im ursprünglichen Anspruch deaktiviert ist, wird nicht zurückportiert."
|
||||
@@ -10107,6 +10224,7 @@ msgstr "Zeitzone"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "Verknüpfung aufheben"
|
||||
msgid "Unpin"
|
||||
msgstr "Lösen"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Unbetitelte Gruppe"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "Ihr Verifizierungscode:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -1077,7 +1077,9 @@ msgstr "Action"
|
||||
#: apps/remix/app/components/tables/team-members-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -1085,6 +1087,9 @@ msgid "Actions"
|
||||
msgstr "Actions"
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx
|
||||
msgid "Active"
|
||||
@@ -1325,6 +1330,7 @@ msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Admin Actions"
|
||||
msgstr "Admin Actions"
|
||||
|
||||
@@ -1433,6 +1439,10 @@ msgstr "All signatures have been voided."
|
||||
msgid "All signing links have been copied to your clipboard."
|
||||
msgstr "All signing links have been copied to your clipboard."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "All Statuses"
|
||||
msgstr "All Statuses"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "All templates"
|
||||
msgstr "All templates"
|
||||
@@ -1993,7 +2003,7 @@ msgstr "Attachment added successfully."
|
||||
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
msgid "Attachment removed successfully."
|
||||
msgstr "Attachment removed successfully.<<<<<<< Updated upstream======="
|
||||
msgstr "Attachment removed successfully."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
@@ -2222,6 +2232,7 @@ msgstr "Can't find someone?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2310,6 +2321,7 @@ msgstr "Can't find someone?"
|
||||
#: apps/remix/app/components/general/teams/team-email-usage.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
|
||||
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx
|
||||
@@ -2363,10 +2375,18 @@ msgstr "Ccers"
|
||||
msgid "Center"
|
||||
msgstr "Center"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr "Change language"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Change Recipient"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr "Change theme"
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Character limit"
|
||||
@@ -2408,6 +2428,10 @@ msgstr "Checkbox values"
|
||||
msgid "Checkout"
|
||||
msgstr "Checkout"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr "Chinese"
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Choose an existing recipient from below to continue"
|
||||
@@ -2615,8 +2639,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Configure document settings and options before sending."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "Configure email settings for the document"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr "Configure email settings for the document."
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2633,8 +2657,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Configure general settings for the template."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Configure security settings for the document"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr "Configure security settings for the document."
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -2826,6 +2850,7 @@ msgstr "Copied field to clipboard"
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-logs-table.tsx
|
||||
#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
#: packages/ui/components/document/document-share-button.tsx
|
||||
@@ -2859,6 +2884,10 @@ msgstr "Copy Signing Links"
|
||||
msgid "Copy token"
|
||||
msgstr "Copy token"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Copy Value"
|
||||
msgstr "Copy Value"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
@@ -3059,6 +3088,10 @@ msgstr "Create your account and start using state-of-the-art document signing. O
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -3574,6 +3607,7 @@ msgstr "Discord"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Display Name"
|
||||
msgstr "Display Name"
|
||||
|
||||
@@ -3593,6 +3627,7 @@ msgstr "Distribution Method"
|
||||
msgid "DKIM records generated. Please add the DNS records to verify your domain."
|
||||
msgstr "DKIM records generated. Please add the DNS records to verify your domain."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
msgid "DNS Records"
|
||||
msgstr "DNS Records"
|
||||
@@ -4004,7 +4039,12 @@ msgstr "Documents that require your attention will appear here"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Documents Viewed"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
msgstr "Domain"
|
||||
|
||||
@@ -4020,6 +4060,10 @@ msgstr "Domain already in use"
|
||||
msgid "Domain Name"
|
||||
msgstr "Domain Name"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Domain re-registered"
|
||||
msgstr "Domain re-registered"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx
|
||||
#: apps/remix/app/routes/_unauthenticated+/signin.tsx
|
||||
msgid "Don't have an account? <0>Sign up</0>"
|
||||
@@ -4157,6 +4201,10 @@ msgstr "Duplicate Template"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "Duplicate values are not allowed"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr "Dutch"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "E.g. 0"
|
||||
@@ -4229,6 +4277,7 @@ msgstr "Electronic Signature Disclosure"
|
||||
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -4278,6 +4327,10 @@ msgstr "Email Confirmed!"
|
||||
msgid "Email Created"
|
||||
msgstr "Email Created"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Email Domain"
|
||||
msgstr "Email Domain"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
msgid "Email domain not found"
|
||||
msgstr "Email domain not found"
|
||||
@@ -4286,6 +4339,8 @@ msgstr "Email domain not found"
|
||||
msgid "Email Domain Settings"
|
||||
msgstr "Email Domain Settings"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
|
||||
@@ -4381,6 +4436,8 @@ msgid "Email verification has been resent"
|
||||
msgstr "Email verification has been resent"
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
msgid "Emails"
|
||||
msgstr "Emails"
|
||||
@@ -4489,6 +4546,10 @@ msgstr "Enclosed Document"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Enclosed Documents"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr "English"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4623,6 +4684,7 @@ msgstr "Envelope Title"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Envelope updated"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4687,6 +4749,7 @@ msgstr "Envelope updated"
|
||||
#: apps/remix/app/components/general/template/template-edit-form.tsx
|
||||
#: apps/remix/app/components/general/verify-email-banner.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
@@ -4823,6 +4886,14 @@ msgstr "Failed to load document"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Failed to move folder"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr "Failed to move subscription. Please try again."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "Failed to re-register email domain"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Failed to reseal document"
|
||||
msgstr "Failed to reseal document"
|
||||
@@ -4843,6 +4914,10 @@ msgstr "Failed to sign out all sessions"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Failed to sync license"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr "Failed to trigger seal"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Failed to unlink account"
|
||||
@@ -4963,6 +5038,10 @@ msgstr "File size exceeds the limit of {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB"
|
||||
msgid "Fill in the details to create a new subscription claim."
|
||||
msgstr "Fill in the details to create a new subscription claim."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Filter by status"
|
||||
msgstr "Filter by status"
|
||||
|
||||
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
@@ -5051,6 +5130,10 @@ msgstr "Free Signature"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Free Signature Settings"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr "French"
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5083,6 +5166,10 @@ msgstr "Generate DKIM Records"
|
||||
msgid "Generate Links"
|
||||
msgstr "Generate Links"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr "German"
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Global recipient action authentication"
|
||||
@@ -5349,6 +5436,7 @@ msgstr "I'm sure! Delete it"
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -5619,6 +5707,14 @@ msgstr "It's currently not your turn to sign. Please check back soon as this doc
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr "Italian"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr "Japanese"
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Join {organisationName} on Documenso"
|
||||
@@ -5636,6 +5732,10 @@ msgstr "Joined"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Joined {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr "Korean"
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5689,6 +5789,10 @@ msgstr "Last modified"
|
||||
msgid "Last Retried"
|
||||
msgstr "Last Retried"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr "Last Signed"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -5707,6 +5811,11 @@ msgstr "Last updated at"
|
||||
msgid "Last used"
|
||||
msgstr "Last used"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Last Verified"
|
||||
msgstr "Last Verified"
|
||||
|
||||
#: apps/remix/app/components/filters/date-range-filter.tsx
|
||||
msgid "Last Year"
|
||||
msgstr "Last Year"
|
||||
@@ -5849,6 +5958,7 @@ msgstr "Loading suggestions..."
|
||||
#: apps/remix/app/components/embed/embed-client-loading.tsx
|
||||
#: apps/remix/app/components/general/default-recipients-multiselect-combobox.tsx
|
||||
#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: packages/ui/components/pdf-viewer/pdf-viewer-konva-lazy.tsx
|
||||
#: packages/ui/primitives/pdf-viewer/lazy.tsx
|
||||
msgid "Loading..."
|
||||
@@ -6185,6 +6295,12 @@ msgstr "Move Documents to Folder"
|
||||
msgid "Move Folder"
|
||||
msgstr "Move Folder"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr "Move Subscription"
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Move Template to Folder"
|
||||
@@ -6193,6 +6309,10 @@ msgstr "Move Template to Folder"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Move Templates to Folder"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6236,6 +6356,7 @@ msgstr "N/A"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: packages/lib/utils/fields.ts
|
||||
@@ -6329,10 +6450,18 @@ msgstr "No active drafts"
|
||||
msgid "No documents found"
|
||||
msgstr "No documents found"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr "No eligible organisations found. The target must be on the free plan."
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "No email detected"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "No emails configured for this domain."
|
||||
msgstr "No emails configured for this domain."
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No features enabled"
|
||||
msgstr "No features enabled"
|
||||
@@ -6627,6 +6756,8 @@ msgstr "Or continue with"
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Organisation"
|
||||
msgstr "Organisation"
|
||||
@@ -6778,6 +6909,7 @@ msgstr "Override organisation settings"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -6907,6 +7039,9 @@ msgstr "PDF Document"
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-header.tsx
|
||||
#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx
|
||||
#: packages/lib/constants/document.ts
|
||||
#: packages/ui/components/document/document-read-only-fields.tsx
|
||||
@@ -6934,6 +7069,10 @@ msgstr "Pending documents will have their signing process cancelled"
|
||||
msgid "Pending invitations"
|
||||
msgstr "Pending invitations"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Pending since"
|
||||
msgstr "Pending since"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -7201,6 +7340,14 @@ msgstr "Please upload a document to continue"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Please upload a logo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr "Polish"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portuguese (Brazil)"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7353,6 +7500,15 @@ msgstr "Radio Settings"
|
||||
msgid "Radio values"
|
||||
msgstr "Radio values"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Re-register"
|
||||
msgstr "Re-register"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Re-register Email Domain"
|
||||
msgstr "Re-register Email Domain"
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
@@ -7533,6 +7689,10 @@ msgstr "Recipients will be able to sign the document once sent"
|
||||
msgid "Recipients will still retain their copy of the document"
|
||||
msgstr "Recipients will still retain their copy of the document"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Record"
|
||||
msgstr "Record"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
msgid "Record Name"
|
||||
msgstr "Record Name"
|
||||
@@ -7738,6 +7898,10 @@ msgstr "Required Field"
|
||||
msgid "Required scopes"
|
||||
msgstr "Required scopes"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr "Reseal"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Reseal document"
|
||||
@@ -7944,6 +8108,10 @@ msgstr "Save failed"
|
||||
msgid "Save Template"
|
||||
msgstr "Save Template"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr "Seal job triggered"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Sealing job started"
|
||||
@@ -7970,6 +8138,10 @@ msgstr "Search by claim ID or name"
|
||||
msgid "Search by document title"
|
||||
msgstr "Search by document title"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Search by domain or organisation name"
|
||||
msgstr "Search by domain or organisation name"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
msgid "Search by ID"
|
||||
msgstr "Search by ID"
|
||||
@@ -8087,6 +8259,10 @@ msgstr "Select an event type"
|
||||
msgid "Select an option"
|
||||
msgstr "Select an option"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr "Select an organisation"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Select an organisation to view teams"
|
||||
@@ -8230,6 +8406,10 @@ msgstr "Selected Recipient"
|
||||
msgid "Selected templates will be permanently deleted"
|
||||
msgstr "Selected templates will be permanently deleted"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Selector"
|
||||
msgstr "Selector"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx
|
||||
#: packages/ui/primitives/document-flow/add-subject.tsx
|
||||
@@ -8783,6 +8963,10 @@ msgstr "Source"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Space-separated list of domains. Leave empty to allow all domains."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr "Spanish"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8801,6 +8985,7 @@ msgstr "Stats"
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -8831,6 +9016,10 @@ msgstr "Stripe customer created successfully"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Stripe Customer ID"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr "Stuck For"
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Subject"
|
||||
@@ -8882,12 +9071,17 @@ msgstr "Subscription Claims"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Subscription invalid"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr "Subscription moved successfully"
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Subscription Status"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9002,6 +9196,10 @@ msgstr "System Requirements"
|
||||
msgid "System Theme"
|
||||
msgstr "System Theme"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr "Target Organisation"
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -9562,6 +9760,10 @@ msgstr "The recipient is required to sign the document for it to be completed."
|
||||
msgid "The recipient is required to view the document for it to be completed."
|
||||
msgstr "The recipient is required to view the document for it to be completed."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "The SES identity has been deleted and recreated with the same keys. DNS records remain unchanged."
|
||||
msgstr "The SES identity has been deleted and recreated with the same keys. DNS records remain unchanged."
|
||||
|
||||
#: packages/ui/components/document/document-share-button.tsx
|
||||
msgid "The sharing link could not be created at this time. Please try again."
|
||||
msgstr "The sharing link could not be created at this time. Please try again."
|
||||
@@ -9970,6 +10172,16 @@ msgstr "This will be sent to the document owner when a recipient's signing windo
|
||||
msgid "This will check and sync the status of all email domains for this organisation"
|
||||
msgstr "This will check and sync the status of all email domains for this organisation"
|
||||
|
||||
#. placeholder {0}: emailDomain.domain
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
@@ -10007,6 +10219,7 @@ msgstr "Time Zone"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Title"
|
||||
@@ -10439,6 +10652,11 @@ msgstr "Unlink"
|
||||
msgid "Unpin"
|
||||
msgstr "Unpin"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr "Unsealed Documents"
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Untitled Group"
|
||||
@@ -10773,6 +10991,7 @@ msgstr "Validation failed"
|
||||
#: apps/remix/app/components/forms/editor/editor-field-number-form.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-number-form.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "Value"
|
||||
@@ -10838,6 +11057,7 @@ msgstr "Vertical Align"
|
||||
#: apps/remix/app/components/tables/inbox-table.tsx
|
||||
#: apps/remix/app/components/tables/inbox-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "View"
|
||||
msgstr "View"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "Acción"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2007,7 +2008,7 @@ msgstr "Adjunto añadido exitosamente."
|
||||
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
msgid "Attachment removed successfully."
|
||||
msgstr "<<<<<<< Updated upstream======="
|
||||
msgstr "Adjunto eliminado exitosamente."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "¿No puedes encontrar a alguien?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Ccers"
|
||||
msgid "Center"
|
||||
msgstr "Centro"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Cambiar destinatario"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Límite de caracteres"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "Valores de Checkbox"
|
||||
msgid "Checkout"
|
||||
msgstr "Checkout"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Elija un destinatario existente de abajo para continuar"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Configura la configuración del documento y las opciones antes de enviar."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "Configura las opciones de correo electrónico para el documento"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Configurar ajustes generales para la plantilla."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Configura la configuración de seguridad del documento"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última g
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "Los documentos que requieren tu atención aparecerán aquí"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Documentos vistos"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "Plantilla Duplicada"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "No se permiten valores duplicados"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Ej.: 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "Documento Adjunto"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Documentos adjuntos"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "Título del Sobre"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Sobre actualizado"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "Error al cargar el documento"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Error al mover la carpeta"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "Error al volver a registrar el dominio de correo electrónico"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "Error al cerrar sesión en todas las sesiones"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Error al sincronizar la licencia"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "No se pudo desvincular la cuenta"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "Firma gratuita"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Configuración de Firma Gratuita"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "Generar registros DKIM"
|
||||
msgid "Generate Links"
|
||||
msgstr "Generar enlaces"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Autenticación de acción de destinatario global"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "Actualmente no es tu turno para firmar. Por favor, vuelve pronto ya que
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "Actualmente no es tu turno para firmar. Recibirás un correo electrónico con instrucciones una vez sea tu turno para firmar el documento."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Únete a {organisationName} en Documenso"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "Unido"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Se unió a {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "Última modificación"
|
||||
msgid "Last Retried"
|
||||
msgstr "Último reintento"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "Mover documentos a la carpeta"
|
||||
msgid "Move Folder"
|
||||
msgstr "Mover Carpeta"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Mover Plantilla a Carpeta"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "Mover Plantilla a Carpeta"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Mover plantillas a la carpeta"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "No hay borradores activos"
|
||||
msgid "No documents found"
|
||||
msgstr "No se encontraron documentos"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "No se detectó ningún correo electrónico"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "Anular la configuración de la organización"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "Por favor, carga un documento para continuar"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Por favor, suba un logotipo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "Campo obligatorio"
|
||||
msgid "Required scopes"
|
||||
msgstr "Ámbitos requeridos"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Re-sellar documento"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "Guardado fallido"
|
||||
msgid "Save Template"
|
||||
msgstr "Guardar plantilla"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Se inició el trabajo de sellado"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "Selecciona un tipo de evento"
|
||||
msgid "Select an option"
|
||||
msgstr "Seleccionar una opción"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Seleccione una organización para ver los equipos"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "Fuente"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Lista de dominios separados por espacios. Deje vacío para permitir todos los dominios."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Cliente de Stripe creado con éxito"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "ID de Cliente de Stripe"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Asunto"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "Reclamos de suscripción"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Suscripción inválida"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Estado de la suscripción"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "Requisitos del Sistema"
|
||||
msgid "System Theme"
|
||||
msgstr "Tema del sistema"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "Esto verificará y sincronizará el estado de todos los dominios de corr
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "Esto eliminará la identidad de SES existente para <0>{0}</0> y la volverá a crear usando las mismas claves DKIM. El usuario no tendrá que actualizar sus registros DNS. El estado del dominio se restablecerá a Pendiente."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Esto solo retroalimentará las banderas de características que estén configuradas como verdaderas, cualquier cosa desactivada en la reclamo inicial no será retroalimentada"
|
||||
@@ -10107,6 +10224,7 @@ msgstr "Zona horaria"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "Desvincular"
|
||||
msgid "Unpin"
|
||||
msgstr "Desanclar"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Grupo sin título"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "Su código de verificación:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "su-dominio.com otro-dominio.com"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "Action"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "Vous ne trouvez pas quelqu’un ?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "CCers"
|
||||
msgid "Center"
|
||||
msgstr "Centre"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Modifier le destinataire"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Limite de caractères"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "Valeurs de la case à cocher"
|
||||
msgid "Checkout"
|
||||
msgstr "Passer à la caisse"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Choisissez un destinataire existant ci-dessous pour continuer"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Configurez les paramètres et options du document avant l'envoi."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "Configurez les paramètres d'email pour le document"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Configurer les paramètres généraux pour le modèle."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Configurez les paramètres de sécurité pour le document"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "Créez votre compte et commencez à utiliser la signature de documents
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "Les documents qui nécessitent votre attention apparaîtront ici"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Documents consultés"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "Dupliquer le modèle"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "Les valeurs en double ne sont pas autorisées"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Par ex. 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "Document joint"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Documents joints"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "Titre de l'enveloppe"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Enveloppe mise à jour"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "Échec du chargement du document"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Échec du déplacement du dossier"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "Échec de la nouvelle inscription du domaine e-mail"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "Impossible de se déconnecter de toutes les sessions"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Échec de la synchronisation de la licence"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Échec de la dissociation du compte"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "Signature gratuite"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Paramètres de la signature libre"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "Générer des enregistrements DKIM"
|
||||
msgid "Generate Links"
|
||||
msgstr "Générer des liens"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Authentification d'action de destinataire globale"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "Ce n'est actuellement pas votre tour de signer. Veuillez revenir bientô
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "Ce n'est actuellement pas votre tour de signer. Vous recevrez un e-mail avec des instructions une fois que ce sera votre tour de signer le document."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Rejoindre {organisationName} sur Documenso"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "Joint"
|
||||
msgid "Joined {0}"
|
||||
msgstr "A rejoint {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "Dernière modification"
|
||||
msgid "Last Retried"
|
||||
msgstr "Dernière relance"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "Déplacer les documents vers le dossier"
|
||||
msgid "Move Folder"
|
||||
msgstr "Déplacer le Dossier"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Déplacer le modèle vers un dossier"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "Déplacer le modèle vers un dossier"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Déplacer les modèles vers le dossier"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "Pas de brouillons actifs"
|
||||
msgid "No documents found"
|
||||
msgstr "Aucun document trouvé"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "Aucun e-mail détecté"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "Ignorer les paramètres de l'organisation"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "Veuillez télécharger un document pour continuer"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Veuillez télécharger un logo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "Champ Requis"
|
||||
msgid "Required scopes"
|
||||
msgstr "Portées requises"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Rescellage du document"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "Échec de l'enregistrement"
|
||||
msgid "Save Template"
|
||||
msgstr "Sauvegarder le modèle"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Le travail d'étanchéité a commencé"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "Sélectionnez un type d’événement"
|
||||
msgid "Select an option"
|
||||
msgstr "Sélectionner une option"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Sélectionnez une organisation pour voir les équipes"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "Source"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Liste des domaines séparée par des espaces. Laissez vide pour autoriser tous les domaines."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Le client Stripe a été créé avec succès"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "ID client Stripe"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Sujet"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "Réclamations d'abonnement"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Abonnement non valide"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Statut de l’abonnement"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "Exigences du système"
|
||||
msgid "System Theme"
|
||||
msgstr "Thème système"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "Cela vérifiera et synchronisera l'état de tous les domaines de message
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "Cela supprimera l’identité SES existante pour <0>{0}</0> et la recréera en utilisant les mêmes clés DKIM. L’utilisateur n’aura pas besoin de mettre à jour ses enregistrements DNS. Le statut du domaine sera réinitialisé sur En attente."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Cela ne fera que rétroporter les drapeaux de fonctionnalité qui sont activés, tout ce qui est désactivé dans la réclamation initiale ne sera pas rétroporté"
|
||||
@@ -10107,6 +10224,7 @@ msgstr "Fuseau horaire"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "Délier"
|
||||
msgid "Unpin"
|
||||
msgstr "Détacher"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Groupe sans titre"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "Votre code de vérification :"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "Azione"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2007,7 +2008,7 @@ msgstr "Allegato aggiunto con successo."
|
||||
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
msgid "Attachment removed successfully."
|
||||
msgstr "<<<<<<< Updated upstream======="
|
||||
msgstr "Allegato rimosso con successo."
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-attachments-popover.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "Non riesci a trovare qualcuno?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Copiatori"
|
||||
msgid "Center"
|
||||
msgstr "Centro"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Cambia destinatario"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Limite di caratteri"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "Valori della casella di controllo"
|
||||
msgid "Checkout"
|
||||
msgstr "Pagamento"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Scegli un destinatario esistente qui sotto per continuare"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Configura le impostazioni e le opzioni del documento prima di inviare."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "Configura le impostazioni email per il documento"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Configura le impostazioni generali per il modello."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Configura le impostazioni di sicurezza per il documento"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "Crea il tuo account e inizia a utilizzare firme digitali all'avanguardia
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "I documenti che richiedono la tua attenzione verranno visualizzati qui"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Documenti visualizzati"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "Duplica Modello"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "I valori duplicati non sono ammessi"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Es. 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "Documento Allegato"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Documenti allegati"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "Titolo della Busta"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Busta aggiornata"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "Caricamento documento fallito."
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Impossibile spostare la cartella"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "Impossibile registrare nuovamente il dominio email"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "Non è stato possibile disconnettere tutte le sessioni"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Impossibile sincronizzare la licenza"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Impossibile scollegare l'account"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "Firma gratuita"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Impostazioni Firma Gratuita"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "Genera Record DKIM"
|
||||
msgid "Generate Links"
|
||||
msgstr "Genera link"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Autenticazione globale del destinatario"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "Attualmente non è il tuo turno di firmare. Torna presto a controllare p
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "Al momento, non è il tuo turno di firmare. Riceverai un'email con le istruzioni quando sarà il tuo turno di firmare il documento."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Unisciti a {organisationName} su Documenso"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "Iscritto"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Iscritto a {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "Ultima modifica"
|
||||
msgid "Last Retried"
|
||||
msgstr "Ultima Riprova"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "Sposta documenti nella cartella"
|
||||
msgid "Move Folder"
|
||||
msgstr "Sposta Cartella"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Sposta modello nella cartella"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "Sposta modello nella cartella"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Sposta modelli nella cartella"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "Nessuna bozza attiva"
|
||||
msgid "No documents found"
|
||||
msgstr "Nessun documento trovato"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "Nessuna email rilevata"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "Sovrascrivi impostazioni organizzazione"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "Per favore carica un documento per continuare"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Si prega di caricare un logo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "Campo obbligatorio"
|
||||
msgid "Required scopes"
|
||||
msgstr "Scope richiesti"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Risigilla documento"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "Salvataggio fallito"
|
||||
msgid "Save Template"
|
||||
msgstr "Salva modello"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Operazione di sigillatura iniziata"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "Seleziona un tipo di evento"
|
||||
msgid "Select an option"
|
||||
msgstr "Seleziona un'opzione"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Seleziona un'organizzazione per visualizzare i team"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "Fonte"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Elenco di domini separato da spazi. Lascia vuoto per consentire tutti i domini."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Cliente Stripe creato con successo"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "ID cliente di Stripe"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Soggetto"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "Rivendicazioni di abbonamento"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Abbonamento non valido"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Stato dell’abbonamento"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "Requisiti di sistema"
|
||||
msgid "System Theme"
|
||||
msgstr "Tema del sistema"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "Questo controllerà e sincronizzerà lo stato di tutti i domini email pe
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "Questo eliminerà l’identità SES esistente per <0>{0}</0> e la ricreerà usando le stesse chiavi DKIM. L’utente non dovrà aggiornare i propri record DNS. Lo stato del dominio sarà reimpostato su In sospeso."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Questo farà SOLO il retroporting degli indicatori delle funzionalità impostati su vero, qualsiasi cosa disabilitata nel reclamo iniziale non sarà retroportata"
|
||||
@@ -10107,6 +10224,7 @@ msgstr "Fuso orario"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Titolo"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "Scollega"
|
||||
msgid "Unpin"
|
||||
msgstr "Rimuovi"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Gruppo senza nome"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "Il tuo codice di verifica:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "tuo-dominio.com altro-dominio.com"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "操作"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "メンバーが見つかりませんか?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Cc 受信者"
|
||||
msgid "Center"
|
||||
msgstr "中央"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "受信者を変更"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "文字数制限"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "チェックボックスの値"
|
||||
msgid "Checkout"
|
||||
msgstr "チェックアウト"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "続行するには、下から既存の受信者を選択してください"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "送信前に、ドキュメント設定とオプションを構成します。"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "このドキュメントのメール設定を構成"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "このテンプレートの一般設定を構成します。"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "このドキュメントのセキュリティ設定を構成"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "アカウントを作成して、最先端の文書署名を今すぐ始
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "対応が必要なドキュメントがここに表示されます"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "閲覧された文書"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "テンプレートを複製"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "同じ値を重複して使用することはできません"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "例: 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "同封文書"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "同封された文書"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "封筒タイトル"
|
||||
msgid "Envelope updated"
|
||||
msgstr "封筒を更新しました"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "ドキュメントの読み込みに失敗しました"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "フォルダの移動に失敗しました"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "メールドメインの再登録に失敗しました"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "すべてのセッションからのサインアウトに失敗しまし
|
||||
msgid "Failed to sync license"
|
||||
msgstr "ライセンスの同期に失敗しました"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "アカウントのリンク解除に失敗しました"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "フリー署名"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "手書き署名の設定"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "DKIM レコードを生成"
|
||||
msgid "Generate Links"
|
||||
msgstr "リンクを生成"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "グローバル受信者アクション認証"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "現在はあなたの署名順ではありません。まもなくこの
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "現在はあなたの署名順ではありません。順番が来ると、文書への署名方法を記載したメールが届きます。"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "{organisationName} に Documenso で参加"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "参加日"
|
||||
msgid "Joined {0}"
|
||||
msgstr "{0} に参加"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "最終更新"
|
||||
msgid "Last Retried"
|
||||
msgstr "最終再試行日時"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "ドキュメントをフォルダーに移動"
|
||||
msgid "Move Folder"
|
||||
msgstr "フォルダを移動"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "テンプレートをフォルダに移動"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "テンプレートをフォルダに移動"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "テンプレートをフォルダーに移動"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "有効な下書きはありません"
|
||||
msgid "No documents found"
|
||||
msgstr "文書が見つかりません"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "メールアドレスが検出されませんでした"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "組織設定を上書き"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "続行するには文書をアップロードしてください"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "ロゴをアップロードしてください"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "必須フィールド"
|
||||
msgid "Required scopes"
|
||||
msgstr "必要なスコープ"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "文書を再封止"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "保存に失敗しました"
|
||||
msgid "Save Template"
|
||||
msgstr "テンプレートを保存"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "封印ジョブを開始しました"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "イベントタイプを選択"
|
||||
msgid "Select an option"
|
||||
msgstr "オプションを選択"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "組織を選択してチームを表示"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "ソース"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "ドメインを半角スペース区切りで入力します。空のままにするとすべてのドメインが許可されます。"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Stripe 顧客が正常に作成されました"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Stripe 顧客 ID"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "件名"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "サブスクリプションクレーム"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "サブスクリプションが無効です"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "サブスクリプション状況"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "システム要件"
|
||||
msgid "System Theme"
|
||||
msgstr "システムテーマ"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "この操作により、この組織のすべてのメールドメイン
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "これにより、<0>{0}</0> の既存のSESアイデンティティが削除され、同じDKIMキーを使用して再作成されます。ユーザーがDNSレコードを更新する必要はありません。ドメインのステータスは「保留中」にリセットされます。"
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "ここでバックポートされるのは true に設定されている機能フラグのみであり、初期クレームで無効になっているものはバックポートされません。"
|
||||
@@ -10107,6 +10224,7 @@ msgstr "タイムゾーン"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "タイトル"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "リンク解除"
|
||||
msgid "Unpin"
|
||||
msgstr "ピン留めを解除"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "無題のグループ"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "認証コード:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "동작"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "누군가를 찾을 수 없나요?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Cc 수신자"
|
||||
msgid "Center"
|
||||
msgstr "가운데"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "수신자 변경"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "문자 수 제한"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "체크박스 값"
|
||||
msgid "Checkout"
|
||||
msgstr "결제하기"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "계속하려면 아래에서 기존 수신자를 선택하세요"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "문서를 보내기 전에 설정 및 옵션을 구성합니다."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "문서의 이메일 설정을 구성합니다."
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "템플릿의 일반 설정을 구성합니다."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "문서의 보안 설정을 구성합니다."
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "계정을 만들고 최첨단 전자 서명 서비스를 시작하세요
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "관심이 필요한 문서는 여기에 표시됩니다."
|
||||
msgid "Documents Viewed"
|
||||
msgstr "열람된 문서"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "템플릿 복제"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "중복 값은 허용되지 않습니다"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "예: 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "동봉 문서"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "동봉된 문서들"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "봉투 제목"
|
||||
msgid "Envelope updated"
|
||||
msgstr "봉투가 업데이트되었습니다"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "문서를 불러오지 못했습니다."
|
||||
msgid "Failed to move folder"
|
||||
msgstr "폴더를 이동하지 못했습니다."
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "이메일 도메인 재등록에 실패했습니다."
|
||||
@@ -4887,6 +4919,10 @@ msgstr "모든 세션에서 로그아웃하지 못했습니다."
|
||||
msgid "Failed to sync license"
|
||||
msgstr "라이선스 동기화에 실패했습니다"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "계정 연결을 해제하지 못했습니다"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "자유 서명"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "무료 서명 설정"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "DKIM 레코드 생성"
|
||||
msgid "Generate Links"
|
||||
msgstr "링크 생성"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "전역 수신자 액션 인증"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "현재는 귀하의 서명 순서가 아닙니다. 곧 이 문서에 서
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "현재는 귀하의 서명 순서가 아닙니다. 순서가 되면 문서 서명 방법이 안내된 이메일을 받게 됩니다."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Documenso에서 {organisationName} 조직에 참여하세요."
|
||||
@@ -5685,6 +5737,10 @@ msgstr "가입일"
|
||||
msgid "Joined {0}"
|
||||
msgstr "{0}에 가입함"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "마지막 수정"
|
||||
msgid "Last Retried"
|
||||
msgstr "마지막 재시도 시간"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "문서를 폴더로 이동"
|
||||
msgid "Move Folder"
|
||||
msgstr "폴더 이동"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "템플릿을 폴더로 이동"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "템플릿을 폴더로 이동"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "템플릿을 폴더로 이동"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "활성 초안 없음"
|
||||
msgid "No documents found"
|
||||
msgstr "문서를 찾을 수 없습니다"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "이메일이 감지되지 않았습니다."
|
||||
@@ -6840,6 +6914,7 @@ msgstr "조직 설정 재정의"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "계속하려면 문서를 업로드하세요"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "로고를 업로드해 주세요."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "필수 필드"
|
||||
msgid "Required scopes"
|
||||
msgstr "필요한 범위"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "문서 다시 봉인"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "저장 실패"
|
||||
msgid "Save Template"
|
||||
msgstr "템플릿 저장"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "봉인 작업이 시작되었습니다"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "이벤트 유형을 선택하세요"
|
||||
msgid "Select an option"
|
||||
msgstr "옵션을 선택하세요."
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "조직을 선택하여 팀을 확인하세요."
|
||||
@@ -8873,6 +8968,10 @@ msgstr "소스"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "도메인을 공백으로 구분하여 입력하세요. 비워 두면 모든 도메인이 허용됩니다."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Stripe 고객이 성공적으로 생성되었습니다."
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Stripe 고객 ID"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "제목"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "구독 클레임"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "구독이 유효하지 않습니다."
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "구독 상태"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "시스템 요구 사항"
|
||||
msgid "System Theme"
|
||||
msgstr "시스템 테마"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "이 작업은 이 조직의 모든 이메일 도메인 상태를 확인
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "이 작업은 <0>{0}</0>에 대한 기존 SES ID를 삭제하고 동일한 DKIM 키를 사용하여 다시 생성합니다. 사용자는 DNS 레코드를 수정할 필요가 없습니다. 도메인 상태는 \"보류 중\"으로 초기화됩니다."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "이 작업은 true로 설정된 기능 플래그만 다시 반영합니다. 초기 클레임에서 비활성화된 플래그는 다시 반영되지 않습니다."
|
||||
@@ -10107,6 +10224,7 @@ msgstr "시간대"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "제목"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "연결 해제"
|
||||
msgid "Unpin"
|
||||
msgstr "고정 해제"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "제목 없는 그룹"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "인증 코드:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "Actie"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "Kunt u niemand vinden?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Ccers"
|
||||
msgid "Center"
|
||||
msgstr "Centreren"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Ontvanger wijzigen"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Tekenlimiet"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "Waarden selectievakje"
|
||||
msgid "Checkout"
|
||||
msgstr "Afrekenen"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Kies hieronder een bestaande ontvanger om verder te gaan"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Configureer documentinstellingen en opties voordat je verzendt."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "E-mailinstellingen voor het document configureren"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Configureer algemene instellingen voor de sjabloon."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Beveiligingsinstellingen voor het document configureren"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "Maak je account aan en begin met het gebruik van moderne documentenonder
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "Documenten die je aandacht vereisen, verschijnen hier"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Bekeken documenten"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "Sjabloon dupliceren"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "Dubbele waarden zijn niet toegestaan"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Bijv. 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "Bijgevoegd document"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Bijgevoegde documenten"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "Enveloptitel"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Envelope bijgewerkt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "Document laden mislukt"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Map verplaatsen mislukt"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "Opnieuw registreren van e-maildomein is mislukt"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "Uitloggen van alle sessies mislukt"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Licentie synchroniseren is mislukt"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Account ontkoppelen mislukt"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "Vrije handtekening"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Gratis handtekening-instellingen"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "DKIM-records genereren"
|
||||
msgid "Generate Links"
|
||||
msgstr "Links genereren"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Globale ontvangeractie-authenticatie"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "Het is momenteel niet jouw beurt om te ondertekenen. Kom binnenkort teru
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "Het is momenteel niet jouw beurt om te ondertekenen. Je ontvangt een e‑mail met instructies zodra jij aan de beurt bent om het document te ondertekenen."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Word lid van {organisationName} op Documenso"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "Lid geworden"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Toegetreden {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "Laatst gewijzigd"
|
||||
msgid "Last Retried"
|
||||
msgstr "Laatst opnieuw geprobeerd"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "Documenten naar map verplaatsen"
|
||||
msgid "Move Folder"
|
||||
msgstr "Map verplaatsen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Sjabloon naar map verplaatsen"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "Sjabloon naar map verplaatsen"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Templates naar map verplaatsen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "Geen actieve concepten"
|
||||
msgid "No documents found"
|
||||
msgstr "Geen documenten gevonden"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "Geen e-mailadres gedetecteerd"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "Organisatie-instellingen overschrijven"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "Upload een document om door te gaan"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Upload een logo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "Veld verplicht"
|
||||
msgid "Required scopes"
|
||||
msgstr "Vereiste scopes"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Document opnieuw verzegelen"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "Opslaan mislukt"
|
||||
msgid "Save Template"
|
||||
msgstr "Sjabloon opslaan"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Verzegelingstaak gestart"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "Selecteer een gebeurtenistype"
|
||||
msgid "Select an option"
|
||||
msgstr "Selecteer een optie"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Selecteer een organisatie om teams te bekijken"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "Bron"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Door spaties gescheiden lijst met domeinen. Laat leeg om alle domeinen toe te staan."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Stripe-klant succesvol aangemaakt"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Stripe-klant-ID"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Onderwerp"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "Abonnementsclaims"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Abonnement ongeldig"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Abonnementsstatus"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "Systeemvereisten"
|
||||
msgid "System Theme"
|
||||
msgstr "Systeemthema"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "Hiermee wordt de status van alle e-maildomeinen voor deze organisatie ge
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "Dit verwijdert de bestaande SES-identiteit voor <0>{0}</0> en maakt deze opnieuw aan met dezelfde DKIM-sleutels. De gebruiker hoeft de DNS-records niet bij te werken. De domeinstatus wordt teruggezet naar In behandeling."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Hiermee worden ALLE feature-flags die op true staan teruggezet; alles wat in de oorspronkelijke claim is uitgeschakeld, wordt niet teruggezet"
|
||||
@@ -10107,6 +10224,7 @@ msgstr "Tijdzone"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "Ontkoppelen"
|
||||
msgid "Unpin"
|
||||
msgstr "Losmaken"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Naamloze groep"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "Uw verificatiecode:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "Akcja"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "Nie możesz kogoś znaleźć?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "Pobierający kopię"
|
||||
msgid "Center"
|
||||
msgstr "Wyśrodkuj"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Zmień odbiorcę"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Limit znaków"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "Opcje pola wyboru"
|
||||
msgid "Checkout"
|
||||
msgstr "Zamów"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Wybierz odbiorcę, aby kontynuować"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Skonfiguruj ustawienia dokumentu przed ich wysłaniem."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "Skonfiguruj ustawienia powiadomień dla dokumentu."
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Skonfiguruj ogólne ustawienia szablonu."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Skonfiguruj ustawienia zabezpieczeń dokumentu."
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "Utwórz konto i zacznij korzystać z nowoczesnego podpisywania dokument
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "Dokumenty wymagające Twojej uwagi pojawią się tutaj"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Wyświetlone dokumenty"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "Duplikuj szablon"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "Zduplikowane wartości nie są dozwolone"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Np. 0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "Załączony dokument"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "Załączniki"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "Tytuł koperty"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Koperta została zaktualizowana"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "Nie udało się załadować dokumentu"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Nie udało się przenieść folderu"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "Nie udało się ponownie zarejestrować domeny"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "Nie udało się wylogować ze wszystkich sesji"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "Nie udało się zsynchronizować licencji"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Nie udało się rozłączyć konta"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "Swobodny podpis"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Ustawienia swobodnego podpisu"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "Wygeneruj rekordy DKIM"
|
||||
msgid "Generate Links"
|
||||
msgstr "Wygeneruj linki"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Domyślne metody uwierzytelniania odbiorcy"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "Obecnie nie jest Twoja kolej na podpisanie dokumentu. Sprawdź dokument
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "To nie jest Twoja kolej na podpisanie dokumentu. Gdy nadejdzie Twoja kolej, otrzymasz wiadomość z instrukcjami."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Dołącz do organizacji {organisationName} w Documenso"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "Dołączył"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Dołączył {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "Zmodyfikowano"
|
||||
msgid "Last Retried"
|
||||
msgstr "Ostatnie ponowienie"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "Przenieś dokumenty do folderu"
|
||||
msgid "Move Folder"
|
||||
msgstr "Przenieś folder"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Przenieś szablon do folderu"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "Przenieś szablon do folderu"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "Przenieś szablony do folderu"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "Brak aktywnych szkiców"
|
||||
msgid "No documents found"
|
||||
msgstr "Nie znaleziono dokumentów"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "Nie wykryto adresu e-mail"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "Nadpisz ustawienia organizacji"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "Prześlij dokument, aby kontynuować"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Prześlij logo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "Pole jest wymagane"
|
||||
msgid "Required scopes"
|
||||
msgstr "Wymagane zakresy"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Zapieczętuj ponownie dokument"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "Zapisywanie nie powiodło się"
|
||||
msgid "Save Template"
|
||||
msgstr "Zapisz szablon"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Rozpoczęto zapieczętowanie dokumentu"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "Wybierz rodzaj zdarzenia"
|
||||
msgid "Select an option"
|
||||
msgstr "Wybierz opcję"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Wybierz organizację, aby zobaczyć zespoły"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "Źródło"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Lista domen oddzielonych spacjami. Pozostaw puste pole, aby zezwolić na wszystkie domeny."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "Logowanie SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Klient Stripe został utworzony"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Identyfikator klienta Stripe"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Temat"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "Subskrypcja"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Subskrypcja jest nieprawidłowa"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Status subskrypcji"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "Wymagania systemowe"
|
||||
msgid "System Theme"
|
||||
msgstr "Motyw systemowy"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10059,7 +10171,9 @@ msgstr "Zostanie wysłana do właściciela po zakończeniu dokumentu."
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "This will be sent to the document owner when a recipient's signing window has expired."
|
||||
msgstr "Zostanie wysłana do właściciela dokumentu, gdy minie czas na podpisanie przez odbiorcę\n"
|
||||
msgstr ""
|
||||
"Zostanie wysłana do właściciela dokumentu, gdy minie czas na podpisanie przez odbiorcę\n"
|
||||
""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
msgid "This will check and sync the status of all email domains for this organisation"
|
||||
@@ -10070,6 +10184,11 @@ msgstr "Spowoduje to synchronizowanie statusu wszystkich domen organizacji"
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "Spowoduje to usunięcie obecnej tożsamości SES dla domeny <0>{0}</0> i ponowne utworzenie jej przy użyciu tych samych kluczy DKIM. Użytkownik nie będzie musiał aktualizować rekordów DNS. Status domeny zostanie zresetowany do stanu „Oczekujący”."
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Spowoduje to TYLKO przeniesienie flag funkcji ustawionych na wartość „true”. Wszystkie elementy wyłączone w początkowej subskrypcji nie zostaną przeniesione"
|
||||
@@ -10107,6 +10226,7 @@ msgstr "Strefa czasowa"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Tytuł"
|
||||
@@ -10539,6 +10659,11 @@ msgstr "Rozłącz"
|
||||
msgid "Unpin"
|
||||
msgstr "Odepnij"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Grupa bez nazwy"
|
||||
@@ -12666,4 +12791,3 @@ msgstr "Twój kod weryfikacyjny:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -1077,7 +1077,9 @@ msgstr "Ação"
|
||||
#: apps/remix/app/components/tables/team-members-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -1085,6 +1087,9 @@ msgid "Actions"
|
||||
msgstr "Ações"
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings._index.tsx
|
||||
msgid "Active"
|
||||
@@ -1325,6 +1330,7 @@ msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Admin Actions"
|
||||
msgstr "Ações de Admin"
|
||||
|
||||
@@ -1433,6 +1439,10 @@ msgstr "Todas as assinaturas foram anuladas."
|
||||
msgid "All signing links have been copied to your clipboard."
|
||||
msgstr "Todos os links de assinatura foram copiados para sua área de transferência."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "All Statuses"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "All templates"
|
||||
msgstr "Todos os modelos"
|
||||
@@ -2222,6 +2232,7 @@ msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2310,6 +2321,7 @@ msgstr ""
|
||||
#: apps/remix/app/components/general/teams/team-email-usage.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx
|
||||
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx
|
||||
@@ -2363,10 +2375,18 @@ msgstr "Destinatários em cópia"
|
||||
msgid "Center"
|
||||
msgstr "Centro"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "Alterar Destinatário"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "Limite de caracteres"
|
||||
@@ -2408,6 +2428,10 @@ msgstr "Valores da caixa de seleção"
|
||||
msgid "Checkout"
|
||||
msgstr "Checkout"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "Escolha um destinatário existente abaixo para continuar"
|
||||
@@ -2615,8 +2639,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "Configure as configurações e opções do documento antes de enviar."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "Configurar configurações de e-mail para o documento"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2633,8 +2657,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "Configurar configurações gerais para o modelo."
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "Configurar configurações de segurança para o documento"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -2826,6 +2850,7 @@ msgstr "Campo copiado para a área de transferência"
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-logs-table.tsx
|
||||
#: apps/remix/app/components/tables/settings-public-profile-templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
#: packages/ui/components/document/document-share-button.tsx
|
||||
@@ -2859,6 +2884,10 @@ msgstr "Copiar Links de Assinatura"
|
||||
msgid "Copy token"
|
||||
msgstr "Copiar token"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Copy Value"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
@@ -3059,6 +3088,10 @@ msgstr "Crie sua conta e comece a usar a assinatura de documentos de última ger
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -3574,6 +3607,7 @@ msgstr "Discord"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-email-update-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Display Name"
|
||||
msgstr "Nome de Exibição"
|
||||
|
||||
@@ -3593,6 +3627,7 @@ msgstr "Método de Distribuição"
|
||||
msgid "DKIM records generated. Please add the DNS records to verify your domain."
|
||||
msgstr "Registros DKIM gerados. Adicione os registros DNS para verificar seu domínio."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
msgid "DNS Records"
|
||||
msgstr "Registros DNS"
|
||||
@@ -4004,7 +4039,12 @@ msgstr "Documentos que requerem sua atenção aparecerão aqui"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "Documentos Visualizados"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
msgstr "Domínio"
|
||||
|
||||
@@ -4020,6 +4060,10 @@ msgstr "Domínio já em uso"
|
||||
msgid "Domain Name"
|
||||
msgstr "Nome do Domínio"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Domain re-registered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/reset-password.$token.tsx
|
||||
#: apps/remix/app/routes/_unauthenticated+/signin.tsx
|
||||
msgid "Don't have an account? <0>Sign up</0>"
|
||||
@@ -4157,6 +4201,10 @@ msgstr "Duplicar Modelo"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "Valores duplicados não são permitidos"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "Ex: 0"
|
||||
@@ -4229,6 +4277,7 @@ msgstr "Divulgação de Assinatura Eletrônica"
|
||||
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -4278,6 +4327,10 @@ msgstr "E-mail Confirmado!"
|
||||
msgid "Email Created"
|
||||
msgstr "E-mail Criado"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Email Domain"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
msgid "Email domain not found"
|
||||
msgstr "Domínio de e-mail não encontrado"
|
||||
@@ -4286,6 +4339,8 @@ msgstr "Domínio de e-mail não encontrado"
|
||||
msgid "Email Domain Settings"
|
||||
msgstr "Configurações de Domínio de E-mail"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains._index.tsx
|
||||
@@ -4381,6 +4436,8 @@ msgid "Email verification has been resent"
|
||||
msgstr "A verificação de e-mail foi reenviada"
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
msgid "Emails"
|
||||
msgstr "E-mails"
|
||||
@@ -4489,6 +4546,10 @@ msgstr "Documento Anexo"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4623,6 +4684,7 @@ msgstr "Título do Envelope"
|
||||
msgid "Envelope updated"
|
||||
msgstr "Envelope atualizado"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4687,6 +4749,7 @@ msgstr "Envelope atualizado"
|
||||
#: apps/remix/app/components/general/template/template-edit-form.tsx
|
||||
#: apps/remix/app/components/general/verify-email-banner.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
@@ -4823,6 +4886,14 @@ msgstr "Falha ao carregar documento"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "Falha ao mover pasta"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Failed to reseal document"
|
||||
msgstr "Falha ao selar novamente o documento"
|
||||
@@ -4843,6 +4914,10 @@ msgstr "Falha ao sair de todas as sessões"
|
||||
msgid "Failed to sync license"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "Falha ao desvincular conta"
|
||||
@@ -4963,6 +5038,10 @@ msgstr "O tamanho do arquivo excede o limite de {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}
|
||||
msgid "Fill in the details to create a new subscription claim."
|
||||
msgstr "Preencha os detalhes para criar uma nova reivindicação de assinatura."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Filter by status"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
@@ -5051,6 +5130,10 @@ msgstr "Assinatura Gratuita"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "Configurações de Assinatura Gratuita"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5083,6 +5166,10 @@ msgstr "Gerar Registros DKIM"
|
||||
msgid "Generate Links"
|
||||
msgstr "Gerar Links"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "Autenticação de ação de destinatário global"
|
||||
@@ -5349,6 +5436,7 @@ msgstr "Tenho certeza! Excluir"
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
@@ -5619,6 +5707,14 @@ msgstr "No momento, não é sua vez de assinar. Verifique novamente em breve, po
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "No momento, não é sua vez de assinar. Você receberá um e-mail com instruções assim que for sua vez de assinar o documento."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "Junte-se a {organisationName} no Documenso"
|
||||
@@ -5636,6 +5732,10 @@ msgstr "Entrou"
|
||||
msgid "Joined {0}"
|
||||
msgstr "Entrou {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5689,6 +5789,10 @@ msgstr "Última modificação"
|
||||
msgid "Last Retried"
|
||||
msgstr "Última Tentativa"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -5707,6 +5811,11 @@ msgstr "Última atualização em"
|
||||
msgid "Last used"
|
||||
msgstr "Último uso"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Last Verified"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/filters/date-range-filter.tsx
|
||||
msgid "Last Year"
|
||||
msgstr "Ano Passado"
|
||||
@@ -5849,6 +5958,7 @@ msgstr "Carregando sugestões..."
|
||||
#: apps/remix/app/components/embed/embed-client-loading.tsx
|
||||
#: apps/remix/app/components/general/default-recipients-multiselect-combobox.tsx
|
||||
#: apps/remix/app/components/general/document/document-page-view-recent-activity.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: packages/ui/components/pdf-viewer/pdf-viewer-konva-lazy.tsx
|
||||
#: packages/ui/primitives/pdf-viewer/lazy.tsx
|
||||
msgid "Loading..."
|
||||
@@ -6185,6 +6295,12 @@ msgstr ""
|
||||
msgid "Move Folder"
|
||||
msgstr "Mover Pasta"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "Mover Modelo para Pasta"
|
||||
@@ -6193,6 +6309,10 @@ msgstr "Mover Modelo para Pasta"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6236,6 +6356,7 @@ msgstr "N/A"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table-actions.tsx
|
||||
#: apps/remix/app/components/tables/settings-security-passkey-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/users.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: packages/lib/utils/fields.ts
|
||||
@@ -6329,10 +6450,18 @@ msgstr "Nenhum rascunho ativo"
|
||||
msgid "No documents found"
|
||||
msgstr "Nenhum documento encontrado"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "Nenhum e-mail detectado"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "No emails configured for this domain."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No features enabled"
|
||||
msgstr ""
|
||||
@@ -6627,6 +6756,8 @@ msgstr "Ou continue com"
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_unauthenticated+/organisation.sso.confirmation.$token.tsx
|
||||
msgid "Organisation"
|
||||
msgstr "Organização"
|
||||
@@ -6778,6 +6909,7 @@ msgstr "Substituir configurações da organização"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -6907,6 +7039,9 @@ msgstr "Documento PDF"
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-header.tsx
|
||||
#: apps/remix/app/components/general/template/template-page-view-documents-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.members.tsx
|
||||
#: packages/lib/constants/document.ts
|
||||
#: packages/ui/components/document/document-read-only-fields.tsx
|
||||
@@ -6934,6 +7069,10 @@ msgstr ""
|
||||
msgid "Pending invitations"
|
||||
msgstr "Convites pendentes"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Pending since"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -7201,6 +7340,14 @@ msgstr "Por favor, faça upload de um documento para continuar"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "Por favor, faça upload de um logotipo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7353,6 +7500,15 @@ msgstr "Configurações de Radio"
|
||||
msgid "Radio values"
|
||||
msgstr "Valores de Radio"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Re-register"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Re-register Email Domain"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
@@ -7533,6 +7689,10 @@ msgstr "Os destinatários poderão assinar o documento assim que enviado"
|
||||
msgid "Recipients will still retain their copy of the document"
|
||||
msgstr "Os destinatários ainda manterão sua cópia do documento"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-email-domain-records-dialog.tsx
|
||||
msgid "Record Name"
|
||||
msgstr "Nome do Registro"
|
||||
@@ -7738,6 +7898,10 @@ msgstr "Campo Obrigatório"
|
||||
msgid "Required scopes"
|
||||
msgstr "Escopos obrigatórios"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "Selar novamente o documento"
|
||||
@@ -7944,6 +8108,10 @@ msgstr "Falha ao salvar"
|
||||
msgid "Save Template"
|
||||
msgstr "Salvar Modelo"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "Trabalho de selagem iniciado"
|
||||
@@ -7970,6 +8138,10 @@ msgstr "Pesquisar por ID ou nome da reivindicação"
|
||||
msgid "Search by document title"
|
||||
msgstr "Pesquisar por título do documento"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Search by domain or organisation name"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
msgid "Search by ID"
|
||||
msgstr "Pesquisar por ID"
|
||||
@@ -8087,6 +8259,10 @@ msgstr "Selecione um tipo de evento"
|
||||
msgid "Select an option"
|
||||
msgstr "Selecione uma opção"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "Selecione uma organização para ver as equipes"
|
||||
@@ -8230,6 +8406,10 @@ msgstr "Destinatário Selecionado"
|
||||
msgid "Selected templates will be permanently deleted"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Selector"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/webhook-test-dialog.tsx
|
||||
#: packages/ui/primitives/document-flow/add-subject.tsx
|
||||
@@ -8783,6 +8963,10 @@ msgstr "Fonte"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "Lista de domínios separados por espaço. Deixe em branco para permitir todos os domínios."
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8801,6 +8985,7 @@ msgstr "Estatísticas"
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks.$id._index.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -8831,6 +9016,10 @@ msgstr "Cliente Stripe criado com sucesso"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "ID do Cliente Stripe"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "Assunto"
|
||||
@@ -8882,12 +9071,17 @@ msgstr "Reivindicações de Assinatura"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "Assinatura inválida"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "Status da Assinatura"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9002,6 +9196,10 @@ msgstr "Requisitos do Sistema"
|
||||
msgid "System Theme"
|
||||
msgstr "Tema do Sistema"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -9562,6 +9760,10 @@ msgstr "O destinatário deve assinar o documento para que ele seja concluído."
|
||||
msgid "The recipient is required to view the document for it to be completed."
|
||||
msgstr "O destinatário deve visualizar o documento para que ele seja concluído."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "The SES identity has been deleted and recreated with the same keys. DNS records remain unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-share-button.tsx
|
||||
msgid "The sharing link could not be created at this time. Please try again."
|
||||
msgstr "O link de compartilhamento não pôde ser criado neste momento. Por favor, tente novamente."
|
||||
@@ -9970,6 +10172,16 @@ msgstr ""
|
||||
msgid "This will check and sync the status of all email domains for this organisation"
|
||||
msgstr "Isso verificará e sincronizará o status de todos os domínios de e-mail para esta organização"
|
||||
|
||||
#. placeholder {0}: emailDomain.domain
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "Isso APENAS transferirá sinalizadores de recurso definidos como verdadeiro, qualquer coisa desativada na reivindicação inicial não será transferida"
|
||||
@@ -10007,6 +10219,7 @@ msgstr "Fuso Horário"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
@@ -10439,6 +10652,11 @@ msgstr "Desvincular"
|
||||
msgid "Unpin"
|
||||
msgstr "Desafixar"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "Grupo sem título"
|
||||
@@ -10773,6 +10991,7 @@ msgstr "Falha na validação"
|
||||
#: apps/remix/app/components/forms/editor/editor-field-number-form.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-number-form.tsx
|
||||
#: apps/remix/app/components/tables/admin-document-recipient-item-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "Value"
|
||||
@@ -10838,6 +11057,7 @@ msgstr "Alinhamento Vertical"
|
||||
#: apps/remix/app/components/tables/inbox-table.tsx
|
||||
#: apps/remix/app/components/tables/inbox-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-billing-invoices-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "View"
|
||||
msgstr "Visualizar"
|
||||
|
||||
|
||||
@@ -1084,6 +1084,7 @@ msgstr "操作"
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
@@ -2236,6 +2237,7 @@ msgstr "找不到某个人?"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-field-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/assistant-confirmation-dialog.tsx
|
||||
@@ -2378,10 +2380,18 @@ msgstr "抄送人"
|
||||
msgid "Center"
|
||||
msgstr "居中"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change language"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page-renderer.tsx
|
||||
msgid "Change Recipient"
|
||||
msgstr "更改收件人"
|
||||
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
msgid "Change theme"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
msgid "Character limit"
|
||||
msgstr "字符限制"
|
||||
@@ -2423,6 +2433,10 @@ msgstr "复选框值"
|
||||
msgid "Checkout"
|
||||
msgstr "结账"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Chinese"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-direct-link-dialog.tsx
|
||||
msgid "Choose an existing recipient from below to continue"
|
||||
msgstr "从下方选择一个已存在的收件人以继续"
|
||||
@@ -2630,8 +2644,8 @@ msgid "Configure document settings and options before sending."
|
||||
msgstr "在发送前配置文档设置和选项。"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure email settings for the document"
|
||||
msgstr "为文档配置邮件设置"
|
||||
msgid "Configure email settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
#: apps/remix/app/components/embed/authoring/configure-fields-view.tsx
|
||||
@@ -2648,8 +2662,8 @@ msgid "Configure general settings for the template."
|
||||
msgstr "配置模板的一般设置。"
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-settings-dialog.tsx
|
||||
msgid "Configure security settings for the document"
|
||||
msgstr "为文档配置安全设置"
|
||||
msgid "Configure security settings for the document."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx
|
||||
msgid "Configure template"
|
||||
@@ -3082,6 +3096,7 @@ msgstr "创建你的账号,开始使用最先进的文档签署功能。开放
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/settings.webhooks._index.tsx
|
||||
msgid "Created"
|
||||
@@ -4029,6 +4044,10 @@ msgstr "需要您关注的文档会显示在此处"
|
||||
msgid "Documents Viewed"
|
||||
msgstr "已查看的文档"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Documents where all recipients have signed but the document has not been sealed. Documents stuck for more than 6 hours are no longer retried by the sweep job."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains._index.tsx
|
||||
msgid "Domain"
|
||||
@@ -4187,6 +4206,10 @@ msgstr "复制模板"
|
||||
msgid "Duplicate values are not allowed"
|
||||
msgstr "不允许重复的值"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx
|
||||
msgid "E.g. 0"
|
||||
msgstr "例如:0"
|
||||
@@ -4528,6 +4551,10 @@ msgstr "随附文档"
|
||||
msgid "Enclosed Documents"
|
||||
msgstr "随附文件"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-email-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-initials-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
@@ -4662,6 +4689,7 @@ msgstr "信封标题"
|
||||
msgid "Envelope updated"
|
||||
msgstr "信封已更新"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx
|
||||
@@ -4863,6 +4891,10 @@ msgstr "加载文档失败"
|
||||
msgid "Failed to move folder"
|
||||
msgstr "移动文件夹失败"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Failed to move subscription. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/email-domains.$id.tsx
|
||||
msgid "Failed to re-register email domain"
|
||||
msgstr "重新注册电子邮件域名失败"
|
||||
@@ -4887,6 +4919,10 @@ msgstr "注销所有会话失败"
|
||||
msgid "Failed to sync license"
|
||||
msgstr "许可证同步失败"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Failed to trigger seal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.linked-accounts.tsx
|
||||
msgid "Failed to unlink account"
|
||||
msgstr "取消关联账户失败"
|
||||
@@ -5099,6 +5135,10 @@ msgstr "自由签名"
|
||||
msgid "Free Signature Settings"
|
||||
msgstr "免费签名设置"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/embed/embed-direct-template-client-page.tsx
|
||||
#: apps/remix/app/components/embed/embed-document-signing-page-v1.tsx
|
||||
#: apps/remix/app/components/embed/multisign/multi-sign-document-signing-view.tsx
|
||||
@@ -5131,6 +5171,10 @@ msgstr "生成 DKIM 记录"
|
||||
msgid "Generate Links"
|
||||
msgstr "生成链接"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-global-auth-action-select.tsx
|
||||
msgid "Global recipient action authentication"
|
||||
msgstr "全局收件人操作认证"
|
||||
@@ -5668,6 +5712,14 @@ msgstr "当前还不是您签署的顺序。请稍后再来查看,此文档很
|
||||
msgid "It's currently not your turn to sign. You will receive an email with instructions once it's your turn to sign the document."
|
||||
msgstr "现在还不是你签署的顺序。轮到你签署时,你会收到一封包含说明的邮件。"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: packages/email/templates/organisation-invite.tsx
|
||||
msgid "Join {organisationName} on Documenso"
|
||||
msgstr "加入 {organisationName},使用 Documenso"
|
||||
@@ -5685,6 +5737,10 @@ msgstr "加入时间"
|
||||
msgid "Joined {0}"
|
||||
msgstr "加入时间 {0}"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/editor/editor-field-generic-field-forms.tsx
|
||||
#: apps/remix/app/components/forms/editor/editor-field-text-form.tsx
|
||||
#: apps/remix/app/components/general/document/document-attachments-popover.tsx
|
||||
@@ -5738,6 +5794,10 @@ msgstr "上次修改时间"
|
||||
msgid "Last Retried"
|
||||
msgstr "上次重试时间"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Last Signed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/documents.$id.logs.tsx
|
||||
msgid "Last updated"
|
||||
@@ -6240,6 +6300,12 @@ msgstr "将文档移动到文件夹"
|
||||
msgid "Move Folder"
|
||||
msgstr "移动文件夹"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisations-table.tsx
|
||||
msgid "Move Subscription"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-move-to-folder-dialog.tsx
|
||||
msgid "Move Template to Folder"
|
||||
msgstr "将模板移动到文件夹"
|
||||
@@ -6248,6 +6314,10 @@ msgstr "将模板移动到文件夹"
|
||||
msgid "Move Templates to Folder"
|
||||
msgstr "将模板移动到文件夹"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Move the subscription from \"{sourceOrganisationName}\" to another organisation owned by this user."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/documents-table-action-dropdown.tsx
|
||||
#: apps/remix/app/components/tables/envelopes-table-bulk-action-bar.tsx
|
||||
#: apps/remix/app/components/tables/templates-table-action-dropdown.tsx
|
||||
@@ -6385,6 +6455,10 @@ msgstr "没有活动草稿"
|
||||
msgid "No documents found"
|
||||
msgstr "未找到文档"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "No eligible organisations found. The target must be on the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "No email detected"
|
||||
msgstr "未检测到电子邮件"
|
||||
@@ -6840,6 +6914,7 @@ msgstr "覆盖组织设置"
|
||||
#: apps/remix/app/components/tables/user-organisations-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_internal+/[__htmltopdf]+/audit-log.tsx
|
||||
@@ -7270,6 +7345,14 @@ msgstr "请上传文档后继续"
|
||||
msgid "Please upload a logo"
|
||||
msgstr "请上传一个 Logo"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-fields-page.tsx
|
||||
#: packages/ui/primitives/document-flow/field-item.tsx
|
||||
msgid "Pos X:"
|
||||
@@ -7820,6 +7903,10 @@ msgstr "必填字段"
|
||||
msgid "Required scopes"
|
||||
msgstr "必需的作用域"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Reseal"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Reseal document"
|
||||
msgstr "重新封存文档"
|
||||
@@ -8026,6 +8113,10 @@ msgstr "保存失败"
|
||||
msgid "Save Template"
|
||||
msgstr "保存模板"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Seal job triggered"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents.$id.tsx
|
||||
msgid "Sealing job started"
|
||||
msgstr "封装作业已开始"
|
||||
@@ -8173,6 +8264,10 @@ msgstr "选择一个事件类型"
|
||||
msgid "Select an option"
|
||||
msgstr "选择一个选项"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Select an organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
msgid "Select an organisation to view teams"
|
||||
msgstr "选择一个组织以查看团队"
|
||||
@@ -8873,6 +8968,10 @@ msgstr "来源"
|
||||
msgid "Space-separated list of domains. Leave empty to allow all domains."
|
||||
msgstr "以空格分隔的域名列表。留空则允许所有域名。"
|
||||
|
||||
#: packages/lib/constants/i18n.ts
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
@@ -8922,6 +9021,10 @@ msgstr "Stripe 客户创建成功"
|
||||
msgid "Stripe Customer ID"
|
||||
msgstr "Stripe 客户 ID"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Stuck For"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/support-ticket-form.tsx
|
||||
msgid "Subject"
|
||||
msgstr "主题"
|
||||
@@ -8973,12 +9076,17 @@ msgstr "订阅声明"
|
||||
msgid "Subscription invalid"
|
||||
msgstr "订阅无效"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Subscription moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/user-billing-organisations-table.tsx
|
||||
msgid "Subscription Status"
|
||||
msgstr "订阅状态"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-organisation-member-update-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/envelope-item-delete-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/organisation-delete-dialog.tsx
|
||||
@@ -9093,6 +9201,10 @@ msgstr "系统要求"
|
||||
msgid "System Theme"
|
||||
msgstr "系统主题"
|
||||
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "Target Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/tables/admin-user-teams-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-teams-table.tsx
|
||||
@@ -10070,6 +10182,11 @@ msgstr "这将检查并同步此组织所有邮箱域名的状态"
|
||||
msgid "This will delete the existing SES identity for <0>{0}</0> and recreate it using the same DKIM keys. The user will not need to update their DNS records. The domain status will be reset to Pending."
|
||||
msgstr "这将删除 <0>{0}</0> 的现有 SES 身份,并使用相同的 DKIM 密钥重新创建。用户无需更新其 DNS 记录。域名状态将被重置为“待处理”。"
|
||||
|
||||
#. placeholder {0}: selectedOrg.name
|
||||
#: apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx
|
||||
msgid "This will move the subscription from \"{sourceOrganisationName}\" to \"{0}\". The source organisation will be reset to the free plan."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "This will ONLY backport feature flags which are set to true, anything disabled in the initial claim will not be backported"
|
||||
msgstr "这将只回溯设置为 true 的功能标记,初始声明中被禁用的内容不会被回溯。"
|
||||
@@ -10107,6 +10224,7 @@ msgstr "时区"
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/templates-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/documents._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
#: packages/ui/primitives/document-flow/add-settings.tsx
|
||||
msgid "Title"
|
||||
msgstr "标题"
|
||||
@@ -10539,6 +10657,11 @@ msgstr "取消关联"
|
||||
msgid "Unpin"
|
||||
msgstr "取消固定"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/_layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/unsealed-documents._index.tsx
|
||||
msgid "Unsealed Documents"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-group-create-dialog.tsx
|
||||
msgid "Untitled Group"
|
||||
msgstr "未命名组"
|
||||
@@ -12666,4 +12789,3 @@ msgstr "您的验证码:"
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
|
||||
msgid "your-domain.com another-domain.com"
|
||||
msgstr "your-domain.com another-domain.com"
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import { adminFindUnsealedDocuments } from '@documenso/lib/server-only/admin/admin-find-unsealed-documents';
|
||||
|
||||
import { adminProcedure } from '../trpc';
|
||||
import {
|
||||
ZFindUnsealedDocumentsRequestSchema,
|
||||
ZFindUnsealedDocumentsResponseSchema,
|
||||
} from './find-unsealed-documents.types';
|
||||
|
||||
export const findUnsealedDocumentsRoute = adminProcedure
|
||||
.input(ZFindUnsealedDocumentsRequestSchema)
|
||||
.output(ZFindUnsealedDocumentsResponseSchema)
|
||||
.query(async ({ input }) => {
|
||||
const { page, perPage } = input;
|
||||
|
||||
return await adminFindUnsealedDocuments({ page, perPage });
|
||||
});
|
||||
@@ -0,0 +1,31 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
import { ZFindResultResponse, ZFindSearchParamsSchema } from '@documenso/lib/types/search-params';
|
||||
|
||||
export const ZFindUnsealedDocumentsRequestSchema = ZFindSearchParamsSchema.pick({
|
||||
page: true,
|
||||
perPage: true,
|
||||
}).extend({
|
||||
perPage: z.number().optional().default(20),
|
||||
});
|
||||
|
||||
export const ZAdminUnsealedDocumentSchema = z.object({
|
||||
id: z.string(),
|
||||
secondaryId: z.string(),
|
||||
title: z.string(),
|
||||
status: z.string(),
|
||||
createdAt: z.date(),
|
||||
updatedAt: z.date(),
|
||||
userId: z.number(),
|
||||
teamId: z.number(),
|
||||
ownerName: z.string().nullable(),
|
||||
ownerEmail: z.string(),
|
||||
lastSignedAt: z.date().nullable(),
|
||||
});
|
||||
|
||||
export const ZFindUnsealedDocumentsResponseSchema = ZFindResultResponse.extend({
|
||||
data: ZAdminUnsealedDocumentSchema.array(),
|
||||
});
|
||||
|
||||
export type TFindUnsealedDocumentsRequest = z.infer<typeof ZFindUnsealedDocumentsRequestSchema>;
|
||||
export type TFindUnsealedDocumentsResponse = z.infer<typeof ZFindUnsealedDocumentsResponseSchema>;
|
||||
@@ -13,6 +13,7 @@ import { findDocumentJobsRoute } from './find-document-jobs';
|
||||
import { findDocumentsRoute } from './find-documents';
|
||||
import { findEmailDomainsRoute } from './find-email-domains';
|
||||
import { findSubscriptionClaimsRoute } from './find-subscription-claims';
|
||||
import { findUnsealedDocumentsRoute } from './find-unsealed-documents';
|
||||
import { findUserTeamsRoute } from './find-user-teams';
|
||||
import { getAdminOrganisationRoute } from './get-admin-organisation';
|
||||
import { getEmailDomainRoute } from './get-email-domain';
|
||||
@@ -22,6 +23,7 @@ import { reregisterEmailDomainRoute } from './reregister-email-domain';
|
||||
import { resealDocumentRoute } from './reseal-document';
|
||||
import { resetTwoFactorRoute } from './reset-two-factor-authentication';
|
||||
import { resyncLicenseRoute } from './resync-license';
|
||||
import { swapOrganisationSubscriptionRoute } from './swap-organisation-subscription';
|
||||
import { updateAdminOrganisationRoute } from './update-admin-organisation';
|
||||
import { updateOrganisationMemberRoleRoute } from './update-organisation-member-role';
|
||||
import { updateRecipientRoute } from './update-recipient';
|
||||
@@ -35,6 +37,7 @@ export const adminRouter = router({
|
||||
get: getAdminOrganisationRoute,
|
||||
create: createAdminOrganisationRoute,
|
||||
update: updateAdminOrganisationRoute,
|
||||
swapSubscription: swapOrganisationSubscriptionRoute,
|
||||
},
|
||||
organisationMember: {
|
||||
promoteToOwner: promoteMemberToOwnerRoute,
|
||||
@@ -63,6 +66,7 @@ export const adminRouter = router({
|
||||
},
|
||||
document: {
|
||||
find: findDocumentsRoute,
|
||||
findUnsealed: findUnsealedDocumentsRoute,
|
||||
delete: deleteDocumentRoute,
|
||||
reseal: resealDocumentRoute,
|
||||
findJobs: findDocumentJobsRoute,
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
import { SubscriptionStatus } from '@prisma/client';
|
||||
|
||||
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
|
||||
import { createOrganisationClaimUpsertData } from '@documenso/lib/server-only/organisation/create-organisation';
|
||||
import { INTERNAL_CLAIM_ID, internalClaims } from '@documenso/lib/types/subscription';
|
||||
import { prisma } from '@documenso/prisma';
|
||||
|
||||
import { adminProcedure } from '../trpc';
|
||||
import {
|
||||
ZSwapOrganisationSubscriptionRequestSchema,
|
||||
ZSwapOrganisationSubscriptionResponseSchema,
|
||||
} from './swap-organisation-subscription.types';
|
||||
|
||||
export const swapOrganisationSubscriptionRoute = adminProcedure
|
||||
.input(ZSwapOrganisationSubscriptionRequestSchema)
|
||||
.output(ZSwapOrganisationSubscriptionResponseSchema)
|
||||
.mutation(async ({ input, ctx }) => {
|
||||
const { sourceOrganisationId, targetOrganisationId } = input;
|
||||
|
||||
ctx.logger.info({
|
||||
input: {
|
||||
sourceOrganisationId,
|
||||
targetOrganisationId,
|
||||
},
|
||||
});
|
||||
|
||||
if (sourceOrganisationId === targetOrganisationId) {
|
||||
throw new AppError(AppErrorCode.INVALID_REQUEST, {
|
||||
message: 'Source and target organisations must be different',
|
||||
});
|
||||
}
|
||||
|
||||
const sourceOrg = await prisma.organisation.findUnique({
|
||||
where: { id: sourceOrganisationId },
|
||||
include: {
|
||||
subscription: true,
|
||||
organisationClaim: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!sourceOrg) {
|
||||
throw new AppError(AppErrorCode.NOT_FOUND, {
|
||||
message: 'Source organisation not found',
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!sourceOrg.subscription ||
|
||||
(sourceOrg.subscription.status !== SubscriptionStatus.ACTIVE &&
|
||||
sourceOrg.subscription.status !== SubscriptionStatus.PAST_DUE)
|
||||
) {
|
||||
throw new AppError(AppErrorCode.INVALID_REQUEST, {
|
||||
message: 'Source organisation does not have an active subscription',
|
||||
});
|
||||
}
|
||||
|
||||
const targetOrg = await prisma.organisation.findUnique({
|
||||
where: { id: targetOrganisationId },
|
||||
include: {
|
||||
subscription: true,
|
||||
organisationClaim: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!targetOrg) {
|
||||
throw new AppError(AppErrorCode.NOT_FOUND, {
|
||||
message: 'Target organisation not found',
|
||||
});
|
||||
}
|
||||
|
||||
if (sourceOrg.ownerUserId !== targetOrg.ownerUserId) {
|
||||
throw new AppError(AppErrorCode.INVALID_REQUEST, {
|
||||
message: 'Both organisations must be owned by the same user',
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
targetOrg.subscription &&
|
||||
(targetOrg.subscription.status === SubscriptionStatus.ACTIVE ||
|
||||
targetOrg.subscription.status === SubscriptionStatus.PAST_DUE)
|
||||
) {
|
||||
throw new AppError(AppErrorCode.INVALID_REQUEST, {
|
||||
message: 'Target organisation already has an active subscription',
|
||||
});
|
||||
}
|
||||
|
||||
const customerId = sourceOrg.customerId ?? sourceOrg.subscription.customerId;
|
||||
|
||||
await prisma.$transaction(async (tx) => {
|
||||
// Delete stale INACTIVE subscription on target if present.
|
||||
if (targetOrg.subscription) {
|
||||
await tx.subscription.delete({
|
||||
where: { id: targetOrg.subscription.id },
|
||||
});
|
||||
}
|
||||
|
||||
// Clear customerId on source org to avoid unique constraint violation.
|
||||
await tx.organisation.update({
|
||||
where: { id: sourceOrganisationId },
|
||||
data: { customerId: null },
|
||||
});
|
||||
|
||||
// Set customerId on target org.
|
||||
await tx.organisation.update({
|
||||
where: { id: targetOrganisationId },
|
||||
data: { customerId },
|
||||
});
|
||||
|
||||
// Move the subscription record to the target org.
|
||||
await tx.subscription.update({
|
||||
where: { id: sourceOrg.subscription!.id },
|
||||
data: { organisationId: targetOrganisationId },
|
||||
});
|
||||
|
||||
// Copy source org's claim entitlements to target org's claim.
|
||||
if (sourceOrg.organisationClaim && targetOrg.organisationClaim) {
|
||||
await tx.organisationClaim.update({
|
||||
where: { id: targetOrg.organisationClaim.id },
|
||||
data: {
|
||||
originalSubscriptionClaimId: sourceOrg.organisationClaim.originalSubscriptionClaimId,
|
||||
teamCount: sourceOrg.organisationClaim.teamCount,
|
||||
memberCount: sourceOrg.organisationClaim.memberCount,
|
||||
envelopeItemCount: sourceOrg.organisationClaim.envelopeItemCount,
|
||||
flags: sourceOrg.organisationClaim.flags,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// Reset source org's claim to FREE.
|
||||
if (sourceOrg.organisationClaim) {
|
||||
await tx.organisationClaim.update({
|
||||
where: { id: sourceOrg.organisationClaim.id },
|
||||
data: {
|
||||
originalSubscriptionClaimId: INTERNAL_CLAIM_ID.FREE,
|
||||
...createOrganisationClaimUpsertData(internalClaims[INTERNAL_CLAIM_ID.FREE]),
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,15 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
export const ZSwapOrganisationSubscriptionRequestSchema = z.object({
|
||||
sourceOrganisationId: z.string(),
|
||||
targetOrganisationId: z.string(),
|
||||
});
|
||||
|
||||
export const ZSwapOrganisationSubscriptionResponseSchema = z.void();
|
||||
|
||||
export type TSwapOrganisationSubscriptionRequest = z.infer<
|
||||
typeof ZSwapOrganisationSubscriptionRequestSchema
|
||||
>;
|
||||
export type TSwapOrganisationSubscriptionResponse = z.infer<
|
||||
typeof ZSwapOrganisationSubscriptionResponseSchema
|
||||
>;
|
||||
@@ -1,7 +1,4 @@
|
||||
import type { MessageDescriptor } from '@lingui/core';
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { useLingui } from '@lingui/react';
|
||||
import { Trans } from '@lingui/react/macro';
|
||||
import { Plural, Trans } from '@lingui/react/macro';
|
||||
|
||||
import type {
|
||||
TEnvelopeExpirationDurationPeriod,
|
||||
@@ -16,16 +13,6 @@ import {
|
||||
SelectValue,
|
||||
} from '@documenso/ui/primitives/select';
|
||||
|
||||
const EXPIRATION_UNITS: Array<{
|
||||
value: TEnvelopeExpirationDurationPeriod['unit'];
|
||||
label: MessageDescriptor;
|
||||
}> = [
|
||||
{ value: 'day', label: msg`Days` },
|
||||
{ value: 'week', label: msg`Weeks` },
|
||||
{ value: 'month', label: msg`Months` },
|
||||
{ value: 'year', label: msg`Years` },
|
||||
];
|
||||
|
||||
type ExpirationMode = 'duration' | 'disabled' | 'inherit';
|
||||
|
||||
const getMode = (value: TEnvelopeExpirationPeriod | null | undefined): ExpirationMode => {
|
||||
@@ -71,8 +58,6 @@ export const ExpirationPeriodPicker = ({
|
||||
disabled = false,
|
||||
inheritLabel,
|
||||
}: ExpirationPeriodPickerProps) => {
|
||||
const { _ } = useLingui();
|
||||
|
||||
const mode = getMode(value);
|
||||
const amount = getAmount(value);
|
||||
const unit = getUnit(value);
|
||||
@@ -139,11 +124,18 @@ export const ExpirationPeriodPicker = ({
|
||||
</SelectTrigger>
|
||||
|
||||
<SelectContent>
|
||||
{EXPIRATION_UNITS.map((u) => (
|
||||
<SelectItem key={u.value} value={u.value}>
|
||||
{_(u.label)}
|
||||
</SelectItem>
|
||||
))}
|
||||
<SelectItem value="day">
|
||||
<Plural value={amount} one="Day" other="Days" />
|
||||
</SelectItem>
|
||||
<SelectItem value="week">
|
||||
<Plural value={amount} one="Week" other="Weeks" />
|
||||
</SelectItem>
|
||||
<SelectItem value="month">
|
||||
<Plural value={amount} one="Month" other="Months" />
|
||||
</SelectItem>
|
||||
<SelectItem value="year">
|
||||
<Plural value={amount} one="Year" other="Years" />
|
||||
</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user