mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
feat: signing volume (#1358)
adds a signing volume and leaderboard section to the admin panel
This commit is contained in:
@ -0,0 +1,169 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { useEffect, useMemo, useState, useTransition } from 'react';
|
||||||
|
|
||||||
|
import { msg } from '@lingui/macro';
|
||||||
|
import { useLingui } from '@lingui/react';
|
||||||
|
import { ChevronDownIcon as CaretSortIcon, Loader } from 'lucide-react';
|
||||||
|
|
||||||
|
import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value';
|
||||||
|
import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params';
|
||||||
|
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 { Input } from '@documenso/ui/primitives/input';
|
||||||
|
|
||||||
|
export type SigningVolume = {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
signingVolume: number;
|
||||||
|
createdAt: Date;
|
||||||
|
planId: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
type LeaderboardTableProps = {
|
||||||
|
signingVolume: SigningVolume[];
|
||||||
|
totalPages: number;
|
||||||
|
perPage: number;
|
||||||
|
page: number;
|
||||||
|
sortBy: 'name' | 'createdAt' | 'signingVolume';
|
||||||
|
sortOrder: 'asc' | 'desc';
|
||||||
|
};
|
||||||
|
|
||||||
|
export const LeaderboardTable = ({
|
||||||
|
signingVolume,
|
||||||
|
totalPages,
|
||||||
|
perPage,
|
||||||
|
page,
|
||||||
|
sortBy,
|
||||||
|
sortOrder,
|
||||||
|
}: LeaderboardTableProps) => {
|
||||||
|
const { _, i18n } = useLingui();
|
||||||
|
|
||||||
|
const [isPending, startTransition] = useTransition();
|
||||||
|
const updateSearchParams = useUpdateSearchParams();
|
||||||
|
const [searchString, setSearchString] = useState('');
|
||||||
|
const debouncedSearchString = useDebouncedValue(searchString, 1000);
|
||||||
|
|
||||||
|
const columns = useMemo(() => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
header: () => (
|
||||||
|
<div
|
||||||
|
className="flex cursor-pointer items-center"
|
||||||
|
onClick={() => handleColumnSort('name')}
|
||||||
|
>
|
||||||
|
{_(msg`Name`)}
|
||||||
|
<CaretSortIcon className="ml-2 h-4 w-4" />
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
accessorKey: 'name',
|
||||||
|
cell: ({ row }) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<a
|
||||||
|
className="text-primary underline"
|
||||||
|
href={`https://dashboard.stripe.com/subscriptions/${row.original.planId}`}
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{row.getValue('name')}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
size: 250,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: () => (
|
||||||
|
<div
|
||||||
|
className="flex cursor-pointer items-center"
|
||||||
|
onClick={() => handleColumnSort('signingVolume')}
|
||||||
|
>
|
||||||
|
{_(msg`Signing Volume`)}
|
||||||
|
<CaretSortIcon className="ml-2 h-4 w-4" />
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
accessorKey: 'signingVolume',
|
||||||
|
cell: ({ row }) => <div>{Number(row.getValue('signingVolume'))}</div>,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: () => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
className="flex cursor-pointer items-center"
|
||||||
|
onClick={() => handleColumnSort('createdAt')}
|
||||||
|
>
|
||||||
|
{_(msg`Created`)}
|
||||||
|
<CaretSortIcon className="ml-2 h-4 w-4" />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
accessorKey: 'createdAt',
|
||||||
|
cell: ({ row }) => i18n.date(row.original.createdAt),
|
||||||
|
},
|
||||||
|
] satisfies DataTableColumnDef<SigningVolume>[];
|
||||||
|
}, [sortOrder]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
startTransition(() => {
|
||||||
|
updateSearchParams({
|
||||||
|
search: debouncedSearchString,
|
||||||
|
page: 1,
|
||||||
|
perPage,
|
||||||
|
sortBy,
|
||||||
|
sortOrder,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [debouncedSearchString]);
|
||||||
|
|
||||||
|
const onPaginationChange = (page: number, perPage: number) => {
|
||||||
|
startTransition(() => {
|
||||||
|
updateSearchParams({
|
||||||
|
page,
|
||||||
|
perPage,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
|
setSearchString(e.target.value);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleColumnSort = (column: 'name' | 'createdAt' | 'signingVolume') => {
|
||||||
|
startTransition(() => {
|
||||||
|
updateSearchParams({
|
||||||
|
sortBy: column,
|
||||||
|
sortOrder: sortOrder === 'asc' ? 'desc' : 'asc',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="relative">
|
||||||
|
<Input
|
||||||
|
className="my-6 flex flex-row gap-4"
|
||||||
|
type="text"
|
||||||
|
placeholder={_(msg`Search by name or email`)}
|
||||||
|
value={searchString}
|
||||||
|
onChange={handleChange}
|
||||||
|
/>
|
||||||
|
<DataTable
|
||||||
|
columns={columns}
|
||||||
|
data={signingVolume}
|
||||||
|
perPage={perPage}
|
||||||
|
currentPage={page}
|
||||||
|
totalPages={totalPages}
|
||||||
|
onPaginationChange={onPaginationChange}
|
||||||
|
>
|
||||||
|
{(table) => <DataTablePagination additionalInformation="VisibleCount" table={table} />}
|
||||||
|
</DataTable>
|
||||||
|
|
||||||
|
{isPending && (
|
||||||
|
<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>
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
'use server';
|
||||||
|
|
||||||
|
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session';
|
||||||
|
import { isAdmin } from '@documenso/lib/next-auth/guards/is-admin';
|
||||||
|
import { getSigningVolume } from '@documenso/lib/server-only/admin/get-signing-volume';
|
||||||
|
|
||||||
|
type SearchOptions = {
|
||||||
|
search: string;
|
||||||
|
page: number;
|
||||||
|
perPage: number;
|
||||||
|
sortBy: 'name' | 'createdAt' | 'signingVolume';
|
||||||
|
sortOrder: 'asc' | 'desc';
|
||||||
|
};
|
||||||
|
|
||||||
|
export async function search({ search, page, perPage, sortBy, sortOrder }: SearchOptions) {
|
||||||
|
const { user } = await getRequiredServerComponentSession();
|
||||||
|
|
||||||
|
if (!isAdmin(user)) {
|
||||||
|
throw new Error('Unauthorized');
|
||||||
|
}
|
||||||
|
|
||||||
|
const results = await getSigningVolume({ search, page, perPage, sortBy, sortOrder });
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
60
apps/web/src/app/(dashboard)/admin/leaderboard/page.tsx
Normal file
60
apps/web/src/app/(dashboard)/admin/leaderboard/page.tsx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
import { Trans } from '@lingui/macro';
|
||||||
|
|
||||||
|
import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server';
|
||||||
|
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session';
|
||||||
|
import { isAdmin } from '@documenso/lib/next-auth/guards/is-admin';
|
||||||
|
|
||||||
|
import { LeaderboardTable } from './data-table-leaderboard';
|
||||||
|
import { search } from './fetch-leaderboard.actions';
|
||||||
|
|
||||||
|
type AdminLeaderboardProps = {
|
||||||
|
searchParams?: {
|
||||||
|
search?: string;
|
||||||
|
page?: number;
|
||||||
|
perPage?: number;
|
||||||
|
sortBy?: 'name' | 'createdAt' | 'signingVolume';
|
||||||
|
sortOrder?: 'asc' | 'desc';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default async function Leaderboard({ searchParams = {} }: AdminLeaderboardProps) {
|
||||||
|
await setupI18nSSR();
|
||||||
|
|
||||||
|
const { user } = await getRequiredServerComponentSession();
|
||||||
|
|
||||||
|
if (!isAdmin(user)) {
|
||||||
|
throw new Error('Unauthorized');
|
||||||
|
}
|
||||||
|
|
||||||
|
const page = Number(searchParams.page) || 1;
|
||||||
|
const perPage = Number(searchParams.perPage) || 10;
|
||||||
|
const searchString = searchParams.search || '';
|
||||||
|
const sortBy = searchParams.sortBy || 'signingVolume';
|
||||||
|
const sortOrder = searchParams.sortOrder || 'desc';
|
||||||
|
|
||||||
|
const { leaderboard: signingVolume, totalPages } = await search({
|
||||||
|
search: searchString,
|
||||||
|
page,
|
||||||
|
perPage,
|
||||||
|
sortBy,
|
||||||
|
sortOrder,
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h2 className="text-4xl font-semibold">
|
||||||
|
<Trans>Signing Volume</Trans>
|
||||||
|
</h2>
|
||||||
|
<div className="mt-8">
|
||||||
|
<LeaderboardTable
|
||||||
|
signingVolume={signingVolume}
|
||||||
|
totalPages={totalPages}
|
||||||
|
page={page}
|
||||||
|
perPage={perPage}
|
||||||
|
sortBy={sortBy}
|
||||||
|
sortOrder={sortOrder}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -6,7 +6,7 @@ import Link from 'next/link';
|
|||||||
import { usePathname } from 'next/navigation';
|
import { usePathname } from 'next/navigation';
|
||||||
|
|
||||||
import { Trans } from '@lingui/macro';
|
import { Trans } from '@lingui/macro';
|
||||||
import { BarChart3, FileStack, Settings, Users, Wallet2 } from 'lucide-react';
|
import { BarChart3, FileStack, Settings, Trophy, Users, Wallet2 } from 'lucide-react';
|
||||||
|
|
||||||
import { cn } from '@documenso/ui/lib/utils';
|
import { cn } from '@documenso/ui/lib/utils';
|
||||||
import { Button } from '@documenso/ui/primitives/button';
|
import { Button } from '@documenso/ui/primitives/button';
|
||||||
@ -80,6 +80,20 @@ export const AdminNav = ({ className, ...props }: AdminNavProps) => {
|
|||||||
</Link>
|
</Link>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
className={cn(
|
||||||
|
'justify-start md:w-full',
|
||||||
|
pathname?.startsWith('/admin/leaderboard') && 'bg-secondary',
|
||||||
|
)}
|
||||||
|
asChild
|
||||||
|
>
|
||||||
|
<Link href="/admin/leaderboard">
|
||||||
|
<Trophy className="mr-2 h-5 w-5" />
|
||||||
|
<Trans>Leaderboard</Trans>
|
||||||
|
</Link>
|
||||||
|
</Button>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
className={cn(
|
className={cn(
|
||||||
|
|||||||
148
packages/lib/server-only/admin/get-signing-volume.ts
Normal file
148
packages/lib/server-only/admin/get-signing-volume.ts
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
import { prisma } from '@documenso/prisma';
|
||||||
|
import { Prisma } from '@documenso/prisma/client';
|
||||||
|
|
||||||
|
export type SigningVolume = {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
signingVolume: number;
|
||||||
|
createdAt: Date;
|
||||||
|
planId: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type GetSigningVolumeOptions = {
|
||||||
|
search?: string;
|
||||||
|
page?: number;
|
||||||
|
perPage?: number;
|
||||||
|
sortBy?: 'name' | 'createdAt' | 'signingVolume';
|
||||||
|
sortOrder?: 'asc' | 'desc';
|
||||||
|
};
|
||||||
|
|
||||||
|
export async function getSigningVolume({
|
||||||
|
search = '',
|
||||||
|
page = 1,
|
||||||
|
perPage = 10,
|
||||||
|
sortBy = 'signingVolume',
|
||||||
|
sortOrder = 'desc',
|
||||||
|
}: GetSigningVolumeOptions) {
|
||||||
|
const whereClause = Prisma.validator<Prisma.SubscriptionWhereInput>()({
|
||||||
|
status: 'ACTIVE',
|
||||||
|
OR: [
|
||||||
|
{
|
||||||
|
User: {
|
||||||
|
OR: [
|
||||||
|
{ name: { contains: search, mode: 'insensitive' } },
|
||||||
|
{ email: { contains: search, mode: 'insensitive' } },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
team: {
|
||||||
|
name: { contains: search, mode: 'insensitive' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const orderByClause = getOrderByClause({ sortBy, sortOrder });
|
||||||
|
|
||||||
|
const [subscriptions, totalCount] = await Promise.all([
|
||||||
|
prisma.subscription.findMany({
|
||||||
|
where: whereClause,
|
||||||
|
include: {
|
||||||
|
User: {
|
||||||
|
include: {
|
||||||
|
Document: {
|
||||||
|
where: {
|
||||||
|
status: 'COMPLETED',
|
||||||
|
deletedAt: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
team: {
|
||||||
|
include: {
|
||||||
|
document: {
|
||||||
|
where: {
|
||||||
|
status: 'COMPLETED',
|
||||||
|
deletedAt: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
orderBy: orderByClause,
|
||||||
|
skip: Math.max(page - 1, 0) * perPage,
|
||||||
|
take: perPage,
|
||||||
|
}),
|
||||||
|
prisma.subscription.count({
|
||||||
|
where: whereClause,
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
const leaderboardWithVolume: SigningVolume[] = subscriptions.map((subscription) => {
|
||||||
|
const name =
|
||||||
|
subscription.User?.name || subscription.team?.name || subscription.User?.email || 'Unknown';
|
||||||
|
|
||||||
|
const userSignedDocs = subscription.User?.Document?.length || 0;
|
||||||
|
const teamSignedDocs = subscription.team?.document?.length || 0;
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: subscription.id,
|
||||||
|
name,
|
||||||
|
signingVolume: userSignedDocs + teamSignedDocs,
|
||||||
|
createdAt: subscription.createdAt,
|
||||||
|
planId: subscription.planId,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
leaderboard: leaderboardWithVolume,
|
||||||
|
totalPages: Math.ceil(totalCount / perPage),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOrderByClause(options: {
|
||||||
|
sortBy: string;
|
||||||
|
sortOrder: 'asc' | 'desc';
|
||||||
|
}): Prisma.SubscriptionOrderByWithRelationInput | Prisma.SubscriptionOrderByWithRelationInput[] {
|
||||||
|
const { sortBy, sortOrder } = options;
|
||||||
|
|
||||||
|
if (sortBy === 'name') {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
User: {
|
||||||
|
name: sortOrder,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
team: {
|
||||||
|
name: sortOrder,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sortBy === 'createdAt') {
|
||||||
|
return {
|
||||||
|
createdAt: sortOrder,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default: sort by signing volume
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
User: {
|
||||||
|
Document: {
|
||||||
|
_count: sortOrder,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
team: {
|
||||||
|
document: {
|
||||||
|
_count: sortOrder,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
@ -60,14 +60,19 @@ msgstr "{0} von {1} Zeile(n) ausgewählt."
|
|||||||
|
|
||||||
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
#: packages/lib/server-only/document/resend-document.tsx:137
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
msgstr "{0} hat dich im Namen von {1} eingeladen, das Dokument \"{2}\" {recipientActionVerb}."
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
|
#~ msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
|
#~ msgstr "{0} hat dich im Namen von {1} eingeladen, das Dokument \"{2}\" {recipientActionVerb}."
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:51
|
#: packages/email/template-components/template-document-invite.tsx:51
|
||||||
#~ msgid "{0}<0/>\"{documentName}\""
|
#~ msgid "{0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{0}<0/>\"{documentName}\""
|
#~ msgstr "{0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:94
|
#: packages/email/templates/document-invite.tsx:95
|
||||||
msgid "{inviterName} <0>({inviterEmail})</0>"
|
msgid "{inviterName} <0>({inviterEmail})</0>"
|
||||||
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
||||||
|
|
||||||
@ -87,7 +92,7 @@ msgstr "{inviterName} hat dich eingeladen, {0}<0/>\"{documentName}\""
|
|||||||
msgid "{inviterName} has invited you to {action} {documentName}"
|
msgid "{inviterName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} hat dich eingeladen, {action} {documentName}"
|
msgstr "{inviterName} hat dich eingeladen, {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:106
|
#: packages/email/templates/document-invite.tsx:108
|
||||||
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
||||||
msgstr "{inviterName} hat Sie eingeladen, das Dokument \"{documentName}\" {action}."
|
msgstr "{inviterName} hat Sie eingeladen, das Dokument \"{documentName}\" {action}."
|
||||||
|
|
||||||
@ -100,16 +105,24 @@ msgid "{inviterName} has removed you from the document<0/>\"{documentName}\""
|
|||||||
msgstr "{inviterName} hat dich aus dem Dokument<0/>\"{documentName}\" entfernt"
|
msgstr "{inviterName} hat dich aus dem Dokument<0/>\"{documentName}\" entfernt"
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:63
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}"
|
||||||
msgstr "{inviterName} im Namen von {teamName} hat Sie eingeladen, {0}"
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
||||||
|
#~ msgstr "{inviterName} im Namen von {teamName} hat Sie eingeladen, {0}"
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:49
|
#: packages/email/template-components/template-document-invite.tsx:49
|
||||||
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:45
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} hat dich im Namen von {teamName} eingeladen, {action} {documentName}"
|
#~ msgstr "{inviterName} hat dich im Namen von {teamName} eingeladen, {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/team-join.tsx:67
|
#: packages/email/templates/team-join.tsx:67
|
||||||
msgid "{memberEmail} joined the following team"
|
msgid "{memberEmail} joined the following team"
|
||||||
|
|||||||
1
packages/lib/translations/de/web.js
Normal file
1
packages/lib/translations/de/web.js
Normal file
File diff suppressed because one or more lines are too long
@ -51,16 +51,16 @@ msgstr "\"{placeholderEmail}\" im Namen von \"{0}\" hat Sie eingeladen, \"Beispi
|
|||||||
#~ msgstr "\"{teamUrl}\" hat Sie eingeladen, \"Beispieldokument\" zu unterschreiben."
|
#~ msgstr "\"{teamUrl}\" hat Sie eingeladen, \"Beispieldokument\" zu unterschreiben."
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
||||||
msgid "({0}) has invited you to approve this document"
|
#~ msgid "({0}) has invited you to approve this document"
|
||||||
msgstr "({0}) hat dich eingeladen, dieses Dokument zu genehmigen"
|
#~ msgstr "({0}) hat dich eingeladen, dieses Dokument zu genehmigen"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
||||||
msgid "({0}) has invited you to sign this document"
|
#~ msgid "({0}) has invited you to sign this document"
|
||||||
msgstr "({0}) hat dich eingeladen, dieses Dokument zu unterzeichnen"
|
#~ msgstr "({0}) hat dich eingeladen, dieses Dokument zu unterzeichnen"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
||||||
msgid "({0}) has invited you to view this document"
|
#~ msgid "({0}) has invited you to view this document"
|
||||||
msgstr "({0}) hat dich eingeladen, dieses Dokument zu betrachten"
|
#~ msgstr "({0}) hat dich eingeladen, dieses Dokument zu betrachten"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
||||||
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
||||||
@ -1206,6 +1206,7 @@ msgid "Create your account and start using state-of-the-art document signing. Op
|
|||||||
msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensignieren. Offenes und schönes Signieren liegt in Ihrer Reichweite."
|
msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensignieren. Offenes und schönes Signieren liegt in Ihrer Reichweite."
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:96
|
||||||
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
||||||
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
||||||
@ -1245,6 +1246,11 @@ msgstr "Aktuelles Passwort"
|
|||||||
msgid "Current plan: {0}"
|
msgid "Current plan: {0}"
|
||||||
msgstr "Aktueller Plan: {0}"
|
msgstr "Aktueller Plan: {0}"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:94
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/leaderboard-table.tsx:94
|
||||||
|
#~ msgid "Customer Type"
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:28
|
#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:28
|
||||||
msgid "Daily"
|
msgid "Daily"
|
||||||
msgstr "Täglich"
|
msgstr "Täglich"
|
||||||
@ -1988,6 +1994,18 @@ msgstr "Zum Eigentümer gehen"
|
|||||||
msgid "Go to your <0>public profile settings</0> to add documents."
|
msgid "Go to your <0>public profile settings</0> to add documents."
|
||||||
msgstr "Gehen Sie zu Ihren <0>öffentlichen Profileinstellungen</0>, um Dokumente hinzuzufügen."
|
msgstr "Gehen Sie zu Ihren <0>öffentlichen Profileinstellungen</0>, um Dokumente hinzuzufügen."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:107
|
||||||
|
msgid "has invited you to approve this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:98
|
||||||
|
msgid "has invited you to sign this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:89
|
||||||
|
msgid "has invited you to view this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
||||||
msgid "Here you can edit your personal details."
|
msgid "Here you can edit your personal details."
|
||||||
msgstr "Hier können Sie Ihre persönlichen Daten bearbeiten."
|
msgstr "Hier können Sie Ihre persönlichen Daten bearbeiten."
|
||||||
@ -2204,6 +2222,10 @@ msgstr "Zuletzt aktualisiert am"
|
|||||||
msgid "Last used"
|
msgid "Last used"
|
||||||
msgstr "Zuletzt verwendet"
|
msgstr "Zuletzt verwendet"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
||||||
|
msgid "Leaderboard"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
||||||
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
||||||
msgid "Leave"
|
msgid "Leave"
|
||||||
@ -2411,6 +2433,7 @@ msgid "My templates"
|
|||||||
msgstr "Meine Vorlagen"
|
msgstr "Meine Vorlagen"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:56
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
||||||
@ -2524,6 +2547,18 @@ msgstr "Nichts zu tun"
|
|||||||
msgid "Number"
|
msgid "Number"
|
||||||
msgstr "Nummer"
|
msgstr "Nummer"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:103
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to approve this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:94
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to sign this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:85
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to view this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
||||||
msgid "On this page, you can create a new webhook."
|
msgid "On this page, you can create a new webhook."
|
||||||
msgstr "Auf dieser Seite können Sie einen neuen Webhook erstellen."
|
msgstr "Auf dieser Seite können Sie einen neuen Webhook erstellen."
|
||||||
@ -3105,6 +3140,7 @@ msgstr "Suchen"
|
|||||||
msgid "Search by document title"
|
msgid "Search by document title"
|
||||||
msgstr "Nach Dokumenttitel suchen"
|
msgstr "Nach Dokumenttitel suchen"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:147
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
||||||
msgid "Search by name or email"
|
msgid "Search by name or email"
|
||||||
msgstr "Nach Name oder E-Mail suchen"
|
msgstr "Nach Name oder E-Mail suchen"
|
||||||
@ -3369,6 +3405,11 @@ msgstr "Unterzeichnungslinks wurden für dieses Dokument erstellt."
|
|||||||
msgid "Signing up..."
|
msgid "Signing up..."
|
||||||
msgstr "Registrierung..."
|
msgstr "Registrierung..."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:82
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/page.tsx:46
|
||||||
|
msgid "Signing Volume"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
||||||
msgid "Since {0}"
|
msgid "Since {0}"
|
||||||
msgstr "Seit {0}"
|
msgstr "Seit {0}"
|
||||||
@ -3377,7 +3418,7 @@ msgstr "Seit {0}"
|
|||||||
msgid "Site Banner"
|
msgid "Site Banner"
|
||||||
msgstr "Website Banner"
|
msgstr "Website Banner"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:107
|
||||||
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
||||||
msgid "Site Settings"
|
msgid "Site Settings"
|
||||||
msgstr "Website Einstellungen"
|
msgstr "Website Einstellungen"
|
||||||
|
|||||||
@ -55,14 +55,19 @@ msgstr "{0} of {1} row(s) selected."
|
|||||||
|
|
||||||
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
#: packages/lib/server-only/document/resend-document.tsx:137
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
msgstr "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
msgstr "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
|
|
||||||
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
|
#~ msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
|
#~ msgstr "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:51
|
#: packages/email/template-components/template-document-invite.tsx:51
|
||||||
#~ msgid "{0}<0/>\"{documentName}\""
|
#~ msgid "{0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{0}<0/>\"{documentName}\""
|
#~ msgstr "{0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:94
|
#: packages/email/templates/document-invite.tsx:95
|
||||||
msgid "{inviterName} <0>({inviterEmail})</0>"
|
msgid "{inviterName} <0>({inviterEmail})</0>"
|
||||||
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
||||||
|
|
||||||
@ -82,7 +87,7 @@ msgstr "{inviterName} has invited you to {0}<0/>\"{documentName}\""
|
|||||||
msgid "{inviterName} has invited you to {action} {documentName}"
|
msgid "{inviterName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} has invited you to {action} {documentName}"
|
msgstr "{inviterName} has invited you to {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:106
|
#: packages/email/templates/document-invite.tsx:108
|
||||||
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
||||||
msgstr "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
msgstr "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
||||||
|
|
||||||
@ -95,16 +100,24 @@ msgid "{inviterName} has removed you from the document<0/>\"{documentName}\""
|
|||||||
msgstr "{inviterName} has removed you from the document<0/>\"{documentName}\""
|
msgstr "{inviterName} has removed you from the document<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:63
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}"
|
||||||
msgstr "{inviterName} on behalf of {teamName} has invited you to {0}"
|
msgstr "{inviterName} on behalf of \"{teamName}\" has invited you to {0}"
|
||||||
|
|
||||||
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}"
|
||||||
|
msgstr "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}"
|
||||||
|
|
||||||
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
||||||
|
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}"
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:49
|
#: packages/email/template-components/template-document-invite.tsx:49
|
||||||
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:45
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/team-join.tsx:67
|
#: packages/email/templates/team-join.tsx:67
|
||||||
msgid "{memberEmail} joined the following team"
|
msgid "{memberEmail} joined the following team"
|
||||||
|
|||||||
1
packages/lib/translations/en/web.js
Normal file
1
packages/lib/translations/en/web.js
Normal file
File diff suppressed because one or more lines are too long
@ -46,16 +46,16 @@ msgstr "\"{placeholderEmail}\" on behalf of \"{0}\" has invited you to sign \"ex
|
|||||||
#~ msgstr "\"{teamUrl}\" has invited you to sign \"example document\"."
|
#~ msgstr "\"{teamUrl}\" has invited you to sign \"example document\"."
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
||||||
msgid "({0}) has invited you to approve this document"
|
#~ msgid "({0}) has invited you to approve this document"
|
||||||
msgstr "({0}) has invited you to approve this document"
|
#~ msgstr "({0}) has invited you to approve this document"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
||||||
msgid "({0}) has invited you to sign this document"
|
#~ msgid "({0}) has invited you to sign this document"
|
||||||
msgstr "({0}) has invited you to sign this document"
|
#~ msgstr "({0}) has invited you to sign this document"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
||||||
msgid "({0}) has invited you to view this document"
|
#~ msgid "({0}) has invited you to view this document"
|
||||||
msgstr "({0}) has invited you to view this document"
|
#~ msgstr "({0}) has invited you to view this document"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
||||||
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
||||||
@ -1201,6 +1201,7 @@ msgid "Create your account and start using state-of-the-art document signing. Op
|
|||||||
msgstr "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
|
msgstr "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:96
|
||||||
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
||||||
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
||||||
@ -1240,6 +1241,11 @@ msgstr "Current Password"
|
|||||||
msgid "Current plan: {0}"
|
msgid "Current plan: {0}"
|
||||||
msgstr "Current plan: {0}"
|
msgstr "Current plan: {0}"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:94
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/leaderboard-table.tsx:94
|
||||||
|
#~ msgid "Customer Type"
|
||||||
|
#~ msgstr "Customer Type"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:28
|
#: apps/web/src/app/(dashboard)/settings/billing/billing-plans.tsx:28
|
||||||
msgid "Daily"
|
msgid "Daily"
|
||||||
msgstr "Daily"
|
msgstr "Daily"
|
||||||
@ -1983,6 +1989,18 @@ msgstr "Go to owner"
|
|||||||
msgid "Go to your <0>public profile settings</0> to add documents."
|
msgid "Go to your <0>public profile settings</0> to add documents."
|
||||||
msgstr "Go to your <0>public profile settings</0> to add documents."
|
msgstr "Go to your <0>public profile settings</0> to add documents."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:107
|
||||||
|
msgid "has invited you to approve this document"
|
||||||
|
msgstr "has invited you to approve this document"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:98
|
||||||
|
msgid "has invited you to sign this document"
|
||||||
|
msgstr "has invited you to sign this document"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:89
|
||||||
|
msgid "has invited you to view this document"
|
||||||
|
msgstr "has invited you to view this document"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
||||||
msgid "Here you can edit your personal details."
|
msgid "Here you can edit your personal details."
|
||||||
msgstr "Here you can edit your personal details."
|
msgstr "Here you can edit your personal details."
|
||||||
@ -2199,6 +2217,10 @@ msgstr "Last updated at"
|
|||||||
msgid "Last used"
|
msgid "Last used"
|
||||||
msgstr "Last used"
|
msgstr "Last used"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
||||||
|
msgid "Leaderboard"
|
||||||
|
msgstr "Leaderboard"
|
||||||
|
|
||||||
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
||||||
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
||||||
msgid "Leave"
|
msgid "Leave"
|
||||||
@ -2406,6 +2428,7 @@ msgid "My templates"
|
|||||||
msgstr "My templates"
|
msgstr "My templates"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:56
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
||||||
@ -2519,6 +2542,18 @@ msgstr "Nothing to do"
|
|||||||
msgid "Number"
|
msgid "Number"
|
||||||
msgstr "Number"
|
msgstr "Number"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:103
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to approve this document"
|
||||||
|
msgstr "on behalf of \"{0}\" has invited you to approve this document"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:94
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to sign this document"
|
||||||
|
msgstr "on behalf of \"{0}\" has invited you to sign this document"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:85
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to view this document"
|
||||||
|
msgstr "on behalf of \"{0}\" has invited you to view this document"
|
||||||
|
|
||||||
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
||||||
msgid "On this page, you can create a new webhook."
|
msgid "On this page, you can create a new webhook."
|
||||||
msgstr "On this page, you can create a new webhook."
|
msgstr "On this page, you can create a new webhook."
|
||||||
@ -3100,6 +3135,7 @@ msgstr "Search"
|
|||||||
msgid "Search by document title"
|
msgid "Search by document title"
|
||||||
msgstr "Search by document title"
|
msgstr "Search by document title"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:147
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
||||||
msgid "Search by name or email"
|
msgid "Search by name or email"
|
||||||
msgstr "Search by name or email"
|
msgstr "Search by name or email"
|
||||||
@ -3364,6 +3400,11 @@ msgstr "Signing links have been generated for this document."
|
|||||||
msgid "Signing up..."
|
msgid "Signing up..."
|
||||||
msgstr "Signing up..."
|
msgstr "Signing up..."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:82
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/page.tsx:46
|
||||||
|
msgid "Signing Volume"
|
||||||
|
msgstr "Signing Volume"
|
||||||
|
|
||||||
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
||||||
msgid "Since {0}"
|
msgid "Since {0}"
|
||||||
msgstr "Since {0}"
|
msgstr "Since {0}"
|
||||||
@ -3372,7 +3413,7 @@ msgstr "Since {0}"
|
|||||||
msgid "Site Banner"
|
msgid "Site Banner"
|
||||||
msgstr "Site Banner"
|
msgstr "Site Banner"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:107
|
||||||
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
||||||
msgid "Site Settings"
|
msgid "Site Settings"
|
||||||
msgstr "Site Settings"
|
msgstr "Site Settings"
|
||||||
|
|||||||
@ -60,14 +60,19 @@ msgstr "{0} de {1} fila(s) seleccionada."
|
|||||||
|
|
||||||
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
#: packages/lib/server-only/document/resend-document.tsx:137
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
msgstr "{0} en nombre de {1} te ha invitado a {recipientActionVerb} el documento \"{2}\"."
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
|
#~ msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
|
#~ msgstr "{0} en nombre de {1} te ha invitado a {recipientActionVerb} el documento \"{2}\"."
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:51
|
#: packages/email/template-components/template-document-invite.tsx:51
|
||||||
#~ msgid "{0}<0/>\"{documentName}\""
|
#~ msgid "{0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{0}<0/>\"{documentName}\""
|
#~ msgstr "{0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:94
|
#: packages/email/templates/document-invite.tsx:95
|
||||||
msgid "{inviterName} <0>({inviterEmail})</0>"
|
msgid "{inviterName} <0>({inviterEmail})</0>"
|
||||||
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
||||||
|
|
||||||
@ -87,7 +92,7 @@ msgstr "{inviterName} te ha invitado a {0}<0/>\"{documentName}\""
|
|||||||
msgid "{inviterName} has invited you to {action} {documentName}"
|
msgid "{inviterName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} te ha invitado a {action} {documentName}"
|
msgstr "{inviterName} te ha invitado a {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:106
|
#: packages/email/templates/document-invite.tsx:108
|
||||||
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
||||||
msgstr "{inviterName} te ha invitado a {action} el documento \"{documentName}\"."
|
msgstr "{inviterName} te ha invitado a {action} el documento \"{documentName}\"."
|
||||||
|
|
||||||
@ -100,16 +105,24 @@ msgid "{inviterName} has removed you from the document<0/>\"{documentName}\""
|
|||||||
msgstr "{inviterName} te ha eliminado del documento<0/>\"{documentName}\""
|
msgstr "{inviterName} te ha eliminado del documento<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:63
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}"
|
||||||
msgstr "{inviterName} en nombre de {teamName} te ha invitado a {0}"
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
||||||
|
#~ msgstr "{inviterName} en nombre de {teamName} te ha invitado a {0}"
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:49
|
#: packages/email/template-components/template-document-invite.tsx:49
|
||||||
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:45
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} en nombre de {teamName} te ha invitado a {action} {documentName}"
|
#~ msgstr "{inviterName} en nombre de {teamName} te ha invitado a {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/team-join.tsx:67
|
#: packages/email/templates/team-join.tsx:67
|
||||||
msgid "{memberEmail} joined the following team"
|
msgid "{memberEmail} joined the following team"
|
||||||
|
|||||||
@ -51,16 +51,16 @@ msgstr "\"{placeholderEmail}\" en nombre de \"{0}\" te ha invitado a firmar \"do
|
|||||||
#~ msgstr "\"{teamUrl}\" te ha invitado a firmar \"ejemplo de documento\"."
|
#~ msgstr "\"{teamUrl}\" te ha invitado a firmar \"ejemplo de documento\"."
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
||||||
msgid "({0}) has invited you to approve this document"
|
#~ msgid "({0}) has invited you to approve this document"
|
||||||
msgstr "({0}) te ha invitado a aprobar este documento"
|
#~ msgstr "({0}) te ha invitado a aprobar este documento"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
||||||
msgid "({0}) has invited you to sign this document"
|
#~ msgid "({0}) has invited you to sign this document"
|
||||||
msgstr "({0}) te ha invitado a firmar este documento"
|
#~ msgstr "({0}) te ha invitado a firmar este documento"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
||||||
msgid "({0}) has invited you to view this document"
|
#~ msgid "({0}) has invited you to view this document"
|
||||||
msgstr "({0}) te ha invitado a ver este documento"
|
#~ msgstr "({0}) te ha invitado a ver este documento"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
||||||
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
||||||
@ -1206,6 +1206,7 @@ msgid "Create your account and start using state-of-the-art document signing. Op
|
|||||||
msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última generación. La firma abierta y hermosa está al alcance de tu mano."
|
msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última generación. La firma abierta y hermosa está al alcance de tu mano."
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:96
|
||||||
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
||||||
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
||||||
@ -1988,6 +1989,18 @@ msgstr "Ir al propietario"
|
|||||||
msgid "Go to your <0>public profile settings</0> to add documents."
|
msgid "Go to your <0>public profile settings</0> to add documents."
|
||||||
msgstr "Ve a tu <0>configuración de perfil público</0> para agregar documentos."
|
msgstr "Ve a tu <0>configuración de perfil público</0> para agregar documentos."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:107
|
||||||
|
msgid "has invited you to approve this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:98
|
||||||
|
msgid "has invited you to sign this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:89
|
||||||
|
msgid "has invited you to view this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
||||||
msgid "Here you can edit your personal details."
|
msgid "Here you can edit your personal details."
|
||||||
msgstr "Aquí puedes editar tus datos personales."
|
msgstr "Aquí puedes editar tus datos personales."
|
||||||
@ -2204,6 +2217,10 @@ msgstr "Última actualización el"
|
|||||||
msgid "Last used"
|
msgid "Last used"
|
||||||
msgstr "Último uso"
|
msgstr "Último uso"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
||||||
|
msgid "Leaderboard"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
||||||
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
||||||
msgid "Leave"
|
msgid "Leave"
|
||||||
@ -2411,6 +2428,7 @@ msgid "My templates"
|
|||||||
msgstr "Mis plantillas"
|
msgstr "Mis plantillas"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:56
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
||||||
@ -2524,6 +2542,18 @@ msgstr "Nada que hacer"
|
|||||||
msgid "Number"
|
msgid "Number"
|
||||||
msgstr "Número"
|
msgstr "Número"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:103
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to approve this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:94
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to sign this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:85
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to view this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
||||||
msgid "On this page, you can create a new webhook."
|
msgid "On this page, you can create a new webhook."
|
||||||
msgstr "En esta página, puedes crear un nuevo webhook."
|
msgstr "En esta página, puedes crear un nuevo webhook."
|
||||||
@ -3105,6 +3135,7 @@ msgstr "Buscar"
|
|||||||
msgid "Search by document title"
|
msgid "Search by document title"
|
||||||
msgstr "Buscar por título del documento"
|
msgstr "Buscar por título del documento"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:147
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
||||||
msgid "Search by name or email"
|
msgid "Search by name or email"
|
||||||
msgstr "Buscar por nombre o correo electrónico"
|
msgstr "Buscar por nombre o correo electrónico"
|
||||||
@ -3369,6 +3400,11 @@ msgstr "Se han generado enlaces de firma para este documento."
|
|||||||
msgid "Signing up..."
|
msgid "Signing up..."
|
||||||
msgstr "Registrándose..."
|
msgstr "Registrándose..."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:82
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/page.tsx:46
|
||||||
|
msgid "Signing Volume"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
||||||
msgid "Since {0}"
|
msgid "Since {0}"
|
||||||
msgstr "Desde {0}"
|
msgstr "Desde {0}"
|
||||||
@ -3377,7 +3413,7 @@ msgstr "Desde {0}"
|
|||||||
msgid "Site Banner"
|
msgid "Site Banner"
|
||||||
msgstr "Banner del sitio"
|
msgstr "Banner del sitio"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:107
|
||||||
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
||||||
msgid "Site Settings"
|
msgid "Site Settings"
|
||||||
msgstr "Configuraciones del sitio"
|
msgstr "Configuraciones del sitio"
|
||||||
|
|||||||
@ -60,14 +60,19 @@ msgstr "{0} sur {1} ligne(s) sélectionnée(s)."
|
|||||||
|
|
||||||
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
#: packages/lib/server-only/document/resend-document.tsx:137
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
msgid "{0} on behalf of \"{1}\" has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
msgstr "{0} au nom de {1} vous a invité à {recipientActionVerb} le document \"{2}\"."
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/lib/jobs/definitions/emails/send-signing-email.ts:136
|
||||||
|
#: packages/lib/server-only/document/resend-document.tsx:137
|
||||||
|
#~ msgid "{0} on behalf of {1} has invited you to {recipientActionVerb} the document \"{2}\"."
|
||||||
|
#~ msgstr "{0} au nom de {1} vous a invité à {recipientActionVerb} le document \"{2}\"."
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:51
|
#: packages/email/template-components/template-document-invite.tsx:51
|
||||||
#~ msgid "{0}<0/>\"{documentName}\""
|
#~ msgid "{0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{0}<0/>\"{documentName}\""
|
#~ msgstr "{0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:94
|
#: packages/email/templates/document-invite.tsx:95
|
||||||
msgid "{inviterName} <0>({inviterEmail})</0>"
|
msgid "{inviterName} <0>({inviterEmail})</0>"
|
||||||
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
msgstr "{inviterName} <0>({inviterEmail})</0>"
|
||||||
|
|
||||||
@ -87,7 +92,7 @@ msgstr "{inviterName} vous a invité à {0}<0/>\"{documentName}\""
|
|||||||
msgid "{inviterName} has invited you to {action} {documentName}"
|
msgid "{inviterName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} vous a invité à {action} {documentName}"
|
msgstr "{inviterName} vous a invité à {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:106
|
#: packages/email/templates/document-invite.tsx:108
|
||||||
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
msgid "{inviterName} has invited you to {action} the document \"{documentName}\"."
|
||||||
msgstr "{inviterName} vous a invité à {action} le document \"{documentName}\"."
|
msgstr "{inviterName} vous a invité à {action} le document \"{documentName}\"."
|
||||||
|
|
||||||
@ -100,16 +105,24 @@ msgid "{inviterName} has removed you from the document<0/>\"{documentName}\""
|
|||||||
msgstr "{inviterName} vous a retiré du document<0/>\"{documentName}\""
|
msgstr "{inviterName} vous a retiré du document<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:63
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {0}"
|
||||||
msgstr "{inviterName} au nom de {teamName} vous a invité à {0}"
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
|
msgid "{inviterName} on behalf of \"{teamName}\" has invited you to {action} {documentName}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: packages/email/template-components/template-document-invite.tsx:63
|
||||||
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}"
|
||||||
|
#~ msgstr "{inviterName} au nom de {teamName} vous a invité à {0}"
|
||||||
|
|
||||||
#: packages/email/template-components/template-document-invite.tsx:49
|
#: packages/email/template-components/template-document-invite.tsx:49
|
||||||
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
#~ msgstr "{inviterName} on behalf of {teamName} has invited you to {0}<0/>\"{documentName}\""
|
||||||
|
|
||||||
#: packages/email/templates/document-invite.tsx:45
|
#: packages/email/templates/document-invite.tsx:45
|
||||||
msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
#~ msgid "{inviterName} on behalf of {teamName} has invited you to {action} {documentName}"
|
||||||
msgstr "{inviterName} au nom de {teamName} vous a invité à {action} {documentName}"
|
#~ msgstr "{inviterName} au nom de {teamName} vous a invité à {action} {documentName}"
|
||||||
|
|
||||||
#: packages/email/templates/team-join.tsx:67
|
#: packages/email/templates/team-join.tsx:67
|
||||||
msgid "{memberEmail} joined the following team"
|
msgid "{memberEmail} joined the following team"
|
||||||
|
|||||||
@ -51,16 +51,16 @@ msgstr "\"{placeholderEmail}\" au nom de \"{0}\" vous a invité à signer \"exem
|
|||||||
#~ msgstr "\"{teamUrl}\" vous a invité à signer \"example document\"."
|
#~ msgstr "\"{teamUrl}\" vous a invité à signer \"example document\"."
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:83
|
||||||
msgid "({0}) has invited you to approve this document"
|
#~ msgid "({0}) has invited you to approve this document"
|
||||||
msgstr "({0}) vous a invité à approuver ce document"
|
#~ msgstr "({0}) vous a invité à approuver ce document"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:80
|
||||||
msgid "({0}) has invited you to sign this document"
|
#~ msgid "({0}) has invited you to sign this document"
|
||||||
msgstr "({0}) vous a invité à signer ce document"
|
#~ msgstr "({0}) vous a invité à signer ce document"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:77
|
||||||
msgid "({0}) has invited you to view this document"
|
#~ msgid "({0}) has invited you to view this document"
|
||||||
msgstr "({0}) vous a invité à consulter ce document"
|
#~ msgstr "({0}) vous a invité à consulter ce document"
|
||||||
|
|
||||||
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:313
|
||||||
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
msgid "{0, plural, one {(1 character over)} other {(# characters over)}}"
|
||||||
@ -1206,6 +1206,7 @@ msgid "Create your account and start using state-of-the-art document signing. Op
|
|||||||
msgstr "Créez votre compte et commencez à utiliser la signature de documents à la pointe de la technologie. Une signature ouverte et magnifique est à votre portée."
|
msgstr "Créez votre compte et commencez à utiliser la signature de documents à la pointe de la technologie. Une signature ouverte et magnifique est à votre portée."
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
#: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:62
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:96
|
||||||
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
#: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35
|
||||||
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
#: apps/web/src/app/(dashboard)/documents/data-table.tsx:54
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65
|
||||||
@ -1988,6 +1989,18 @@ msgstr "Aller au propriétaire"
|
|||||||
msgid "Go to your <0>public profile settings</0> to add documents."
|
msgid "Go to your <0>public profile settings</0> to add documents."
|
||||||
msgstr "Allez à vos <0>paramètres de profil public</0> pour ajouter des documents."
|
msgstr "Allez à vos <0>paramètres de profil public</0> pour ajouter des documents."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:107
|
||||||
|
msgid "has invited you to approve this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:98
|
||||||
|
msgid "has invited you to sign this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:89
|
||||||
|
msgid "has invited you to view this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
#: apps/web/src/app/(dashboard)/settings/profile/page.tsx:29
|
||||||
msgid "Here you can edit your personal details."
|
msgid "Here you can edit your personal details."
|
||||||
msgstr "Ici, vous pouvez modifier vos coordonnées personnelles."
|
msgstr "Ici, vous pouvez modifier vos coordonnées personnelles."
|
||||||
@ -2204,6 +2217,10 @@ msgstr "Dernière mise à jour à"
|
|||||||
msgid "Last used"
|
msgid "Last used"
|
||||||
msgstr "Dernière utilisation"
|
msgstr "Dernière utilisation"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
||||||
|
msgid "Leaderboard"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
#: apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx:111
|
||||||
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
#: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:117
|
||||||
msgid "Leave"
|
msgid "Leave"
|
||||||
@ -2411,6 +2428,7 @@ msgid "My templates"
|
|||||||
msgstr "Mes modèles"
|
msgstr "Mes modèles"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:148
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:56
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:99
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66
|
||||||
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
#: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144
|
||||||
@ -2524,6 +2542,18 @@ msgstr "Rien à faire"
|
|||||||
msgid "Number"
|
msgid "Number"
|
||||||
msgstr "Numéro"
|
msgstr "Numéro"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:103
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to approve this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:94
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to sign this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: apps/web/src/app/(signing)/sign/[token]/signing-page-view.tsx:85
|
||||||
|
msgid "on behalf of \"{0}\" has invited you to view this document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
#: apps/web/src/components/(dashboard)/settings/webhooks/create-webhook-dialog.tsx:128
|
||||||
msgid "On this page, you can create a new webhook."
|
msgid "On this page, you can create a new webhook."
|
||||||
msgstr "Sur cette page, vous pouvez créer un nouveau webhook."
|
msgstr "Sur cette page, vous pouvez créer un nouveau webhook."
|
||||||
@ -3105,6 +3135,7 @@ msgstr "Recherche"
|
|||||||
msgid "Search by document title"
|
msgid "Search by document title"
|
||||||
msgstr "Recherche par titre de document"
|
msgstr "Recherche par titre de document"
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:147
|
||||||
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
#: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:144
|
||||||
msgid "Search by name or email"
|
msgid "Search by name or email"
|
||||||
msgstr "Recherche par nom ou e-mail"
|
msgstr "Recherche par nom ou e-mail"
|
||||||
@ -3369,6 +3400,11 @@ msgstr "Des liens de signature ont été générés pour ce document."
|
|||||||
msgid "Signing up..."
|
msgid "Signing up..."
|
||||||
msgstr "Inscription en cours..."
|
msgstr "Inscription en cours..."
|
||||||
|
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/data-table-leaderboard.tsx:82
|
||||||
|
#: apps/web/src/app/(dashboard)/admin/leaderboard/page.tsx:46
|
||||||
|
msgid "Signing Volume"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
#: apps/web/src/app/(profile)/p/[url]/page.tsx:109
|
||||||
msgid "Since {0}"
|
msgid "Since {0}"
|
||||||
msgstr "Depuis {0}"
|
msgstr "Depuis {0}"
|
||||||
@ -3377,7 +3413,7 @@ msgstr "Depuis {0}"
|
|||||||
msgid "Site Banner"
|
msgid "Site Banner"
|
||||||
msgstr "Bannière du site"
|
msgstr "Bannière du site"
|
||||||
|
|
||||||
#: apps/web/src/app/(dashboard)/admin/nav.tsx:93
|
#: apps/web/src/app/(dashboard)/admin/nav.tsx:107
|
||||||
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
#: apps/web/src/app/(dashboard)/admin/site-settings/page.tsx:26
|
||||||
msgid "Site Settings"
|
msgid "Site Settings"
|
||||||
msgstr "Paramètres du site"
|
msgstr "Paramètres du site"
|
||||||
|
|||||||
Reference in New Issue
Block a user