Compare commits

..
Author SHA1 Message Date
David Nguyen 903912458a chore: extract translations 2026-08-10 05:15:15 +00:00
David Nguyen c2ecf5c9c0 fix: restore overriden translations 2026-08-10 05:12:43 +00:00
54 changed files with 226 additions and 2670 deletions
@@ -1,7 +1,7 @@
import type { InternalClaimPlans } from '@documenso/ee/server-only/stripe/get-internal-claim-plans';
import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params';
import { useSession } from '@documenso/lib/client-only/providers/session';
import { DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL, IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { AppError } from '@documenso/lib/errors/app-error';
import { INTERNAL_CLAIM_ID } from '@documenso/lib/types/subscription';
import { parseMessageDescriptorMacro } from '@documenso/lib/utils/i18n';
@@ -380,7 +380,7 @@ const BillingPlanForm = ({ value, onChange, plans, canCreateFreeOrganisation }:
))}
<Link
to={DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL}
to="https://documen.so/enterprise-cta"
target="_blank"
className="flex items-center space-x-2 rounded-md border bg-muted/30 p-4"
>
+1 -2
View File
@@ -1,6 +1,5 @@
import { authClient } from '@documenso/auth/client';
import { AuthenticationErrorCode } from '@documenso/auth/server/lib/errors/error-codes';
import { formatPath } from '@documenso/lib/constants/app';
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
import { env } from '@documenso/lib/utils/env';
import { zEmail } from '@documenso/lib/utils/zod';
@@ -45,7 +44,7 @@ const handleFallbackErrorMessages = (code: string) => {
return message;
};
const LOGIN_REDIRECT_PATH = formatPath('/');
const LOGIN_REDIRECT_PATH = '/';
export const ZSignInFormSchema = z.object({
email: zEmail().min(1),
@@ -1,6 +1,5 @@
import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value';
import { useSession } from '@documenso/lib/client-only/providers/session';
import { formatPath } from '@documenso/lib/constants/app';
import { SUPPORTED_LANGUAGES } from '@documenso/lib/constants/i18n';
import {
DOCUMENTS_PAGE_SHORTCUT,
@@ -863,7 +862,7 @@ const PromptLanguageCommands = ({
formData.append('lang', lang);
const response = await fetch(formatPath('/api/locale'), {
const response = await fetch('/api/locale', {
method: 'post',
body: formData,
});
@@ -1,5 +1,4 @@
import { authClient } from '@documenso/auth/client';
import { formatPath } from '@documenso/lib/constants/app';
import { Alert, AlertDescription } from '@documenso/ui/primitives/alert';
import { Button } from '@documenso/ui/primitives/button';
import { DialogFooter } from '@documenso/ui/primitives/dialog';
@@ -35,9 +34,7 @@ export const DocumentSigningAuthAccount = ({
const currentPath = `${window.location.pathname}${window.location.search}${window.location.hash}`;
await authClient.signOut({
redirectPath: formatPath(
`/signin?returnTo=${encodeURIComponent(currentPath)}#embedded=true&email=${isDirectTemplate ? '' : email}`,
),
redirectPath: `/signin?returnTo=${encodeURIComponent(currentPath)}#embedded=true&email=${isDirectTemplate ? '' : email}`,
});
} catch {
setIsSigningOut(false);
@@ -1,5 +1,4 @@
import { authClient } from '@documenso/auth/client';
import { formatPath } from '@documenso/lib/constants/app';
import { Button } from '@documenso/ui/primitives/button';
import { useToast } from '@documenso/ui/primitives/use-toast';
import { msg } from '@lingui/core/macro';
@@ -22,10 +21,10 @@ export const DocumentSigningAuthPageView = ({ email, emailHasAccount }: Document
try {
setIsSigningOut(true);
let redirectPath = formatPath('/signin');
let redirectPath = '/signin';
if (email) {
redirectPath = emailHasAccount ? formatPath(`/signin#email=${email}`) : formatPath(`/signup#email=${email}`);
redirectPath = emailHasAccount ? `/signin#email=${email}` : `/signup#email=${email}`;
}
await authClient.signOut({
@@ -1,195 +0,0 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { Trans } from '@lingui/react/macro';
import { motion, useReducedMotion } from 'framer-motion';
import { EASE, POP, SPRING } from './motion';
import { SettingsUpsellCard } from './settings-upsell-card';
import { useTimedCycle } from './use-timed-cycle';
const DEMO_BRANDS = [
{
name: 'Documenso',
letter: 'D',
domain: 'noreply@app.documenso.com',
accent: '#A2E771',
ink: '#162C07',
tint: '#F2FBEA',
sheen: 'rgba(162, 231, 113, 0.32)',
},
{
name: 'Documenso',
letter: 'D',
domain: 'noreply@app.documenso.com',
accent: '#387BC7',
ink: '#ffffff',
tint: '#EDF3FA',
sheen: 'rgba(56, 123, 199, 0.28)',
},
{
name: 'Documenso',
letter: 'D',
domain: 'noreply@app.documenso.com',
accent: '#9747F5',
ink: '#ffffff',
tint: '#F4EDFE',
sheen: 'rgba(151, 71, 245, 0.26)',
},
];
/**
* Milliseconds each brand is shown before cycling to the next.
*/
const BRAND_CYCLE_INTERVAL_MS = 2400;
export const BrandingUpsell = () => {
const organisation = useCurrentOrganisation();
const isReducedMotion = useReducedMotion();
const brandIndex = useTimedCycle(DEMO_BRANDS.map(() => BRAND_CYCLE_INTERVAL_MS));
const isStatic = isReducedMotion ?? false;
const brand = DEMO_BRANDS[brandIndex];
return (
<SettingsUpsellCard
planLabel={<Trans>Teams</Trans>}
title={<Trans>Unlock Branding Preferences</Trans>}
description={
<Trans>Put your own brand on every document you send. Branding is available on the Teams plan and above.</Trans>
}
features={[
<Trans key="logo">Your logo on signing pages and emails</Trans>,
<Trans key="details">Company details and website in email footers</Trans>,
<Trans key="teams">Separate branding per team</Trans>,
]}
preview={
<div className="mx-auto w-full max-w-xs">
<div className="flex h-8 items-center justify-between px-1">
<span className="font-mono text-[10px] text-muted-foreground uppercase tracking-widest">
<Trans>Brand accent</Trans>
</span>
<div className="flex shrink-0 items-center gap-2">
{DEMO_BRANDS.map((dotBrand, index) => (
<motion.div
key={index}
initial={isStatic ? false : undefined}
animate={{
scale: index === brandIndex ? 1.25 : 1,
opacity: index === brandIndex ? 1 : 0.42,
boxShadow:
index === brandIndex ? '0 0 0 3px rgba(15, 23, 42, 0.08)' : '0 0 0 0 rgba(15, 23, 42, 0)',
}}
transition={SPRING}
className="h-[13px] w-[13px] rounded-full"
style={{ backgroundColor: dotBrand.accent }}
/>
))}
</div>
</div>
<div className="relative mt-3 flex flex-col overflow-hidden rounded-lg border bg-background shadow-sm">
<motion.div
initial={isStatic ? false : undefined}
animate={{ backgroundColor: brand.tint }}
transition={{ duration: 0.45, ease: EASE }}
className="flex items-center gap-2.5 border-b px-4 py-3"
>
{/* The sender identity never changes — only the tile colours tween per brand. */}
<motion.div
initial={isStatic ? false : undefined}
animate={{ backgroundColor: brand.accent, color: brand.ink }}
transition={{ backgroundColor: { duration: 0.4 }, color: { duration: 0.4 } }}
className="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg font-semibold text-sm"
>
{brand.letter}
</motion.div>
{/*
* Hardcoded inks (not theme tokens): this row sits on the
* hardcoded light `tint` band, so it pairs with hardcoded ink
* colours the same way the email sibling pairs its hardcoded
* avatar surfaces (hardcoded surface => hardcoded ink).
*/}
<div className="min-w-0">
<div className="font-medium text-[#0f172a] text-sm">
<p className="truncate">{brand.name}</p>
</div>
<div className="font-mono text-[#64748b] text-xs">
<p className="truncate">{brand.domain}</p>
</div>
</div>
</motion.div>
<div className="px-4 py-3.5">
<p className="font-medium text-sm">
<Trans>Please sign: Example.pdf</Trans>
</p>
<p className="mt-1 text-muted-foreground text-xs">
<Trans>{organisation.name} has invited you to sign this document.</Trans>
</p>
{/* Same replay split as the logo tile: colours tween on the persistent button, the pop replays per brand on the remounting label. */}
<motion.div
initial={isStatic ? false : undefined}
animate={{ backgroundColor: brand.accent, color: brand.ink }}
transition={{ backgroundColor: { duration: 0.4 }, color: { duration: 0.4 } }}
className="mt-3 inline-block rounded-md px-3 py-1.5 font-medium text-xs"
>
<motion.span
key={brandIndex}
initial={isStatic ? false : { scale: 0.96 }}
animate={{ scale: 1 }}
transition={{ ...POP, delay: 0.06 }}
className="inline-block"
>
<Trans>Sign</Trans>
</motion.span>
</motion.div>
</div>
<div className="mt-auto flex items-center gap-2.5 border-t bg-muted px-4 py-2.5">
<span className="font-mono text-[10px] text-muted-foreground uppercase tracking-widest">
<Trans>Company details</Trans>
</span>
<motion.div
initial={isStatic ? false : undefined}
animate={{ backgroundColor: brand.accent }}
transition={{ duration: 0.4 }}
className="h-1.5 w-[54px] rounded-full"
style={{ opacity: 0.45 }}
/>
<motion.div
initial={isStatic ? false : undefined}
animate={{ backgroundColor: brand.accent }}
transition={{ duration: 0.4 }}
className="h-1.5 w-[34px] rounded-full"
style={{ opacity: 0.22 }}
/>
</div>
{/*
* Keyed remount replays the sweep per brand. No opacity envelope —
* keyframe arrays are unreliable on strict-mode remounts; both
* endpoints sit outside the overflow-hidden card, so the clip
* provides the fade in/out instead.
*/}
<motion.div
key={`sheen-${brandIndex}`}
initial={isStatic ? false : { x: '-130%' }}
animate={{ x: '240%' }}
transition={{ duration: 1.15, ease: 'easeOut' }}
className="pointer-events-none absolute inset-y-0 left-0 w-[55%]"
style={{ background: `linear-gradient(105deg, transparent, ${brand.sheen}, transparent)` }}
/>
</div>
</div>
}
/>
);
};
@@ -1,213 +0,0 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL } from '@documenso/lib/constants/app';
import { formatAvatarUrl } from '@documenso/lib/utils/avatars';
import { cn } from '@documenso/ui/lib/utils';
import { Avatar, AvatarFallback, AvatarImage } from '@documenso/ui/primitives/avatar';
import { Trans } from '@lingui/react/macro';
import { AnimatePresence, motion, useReducedMotion } from 'framer-motion';
import { BadgeCheckIcon, MailIcon } from 'lucide-react';
import { BrandingLogoIcon } from '../branding-logo-icon';
import { EASE, POP, SPRING } from './motion';
import { SettingsUpsellCard } from './settings-upsell-card';
import { useTimedCycle } from './use-timed-cycle';
/**
* Named sender identities cycled through while the preview is in its branded
* state — one per branded cycle step, shown as the sender name and address.
*/
const BRANDED_SENDERS = [
{ name: 'Support', email: 'support@example.com' },
{ name: 'Team', email: 'hello@example.com' },
{ name: 'Sales', email: 'sales@example.com' },
{ name: 'Example', email: 'noreply@example.com' },
];
/**
* How long the initial unbranded (Documenso default) state is shown before
* the first flip starts. Shown exactly once — the cycle never returns to it.
*/
const INITIAL_STATE_DURATION_MS = 2500;
/**
* How long each branded sender identity is shown before cycling to the next,
* giving the viewer time to read the changed address.
*/
const BRANDED_STATE_DURATION_MS = 5000;
/**
* One duration per cycle step: the unbranded state first, then one step per
* named sender identity, derived from the identity count so the two cannot
* drift.
*/
const EMAIL_CYCLE_DURATIONS_MS = [INITIAL_STATE_DURATION_MS, ...BRANDED_SENDERS.map(() => BRANDED_STATE_DURATION_MS)];
export const EmailDomainsUpsell = () => {
const organisation = useCurrentOrganisation();
const isReducedMotion = useReducedMotion();
// Loop from index 1: the unbranded Documenso intro plays exactly once,
// then the cycle rotates through the branded senders only.
const cycleIndex = useTimedCycle(EMAIL_CYCLE_DURATIONS_MS, 1);
const isBranded = cycleIndex > 0;
const brandedSender = BRANDED_SENDERS[cycleIndex - 1] ?? BRANDED_SENDERS[0];
const isStatic = isReducedMotion ?? false;
return (
<SettingsUpsellCard
planLabel={<Trans>Enterprise</Trans>}
title={<Trans>Unlock Email Domains</Trans>}
description={
<Trans>Send documents from your own domain. Email domains are available on the Enterprise plan.</Trans>
}
features={[
<Trans key="journey">Send emails to recipients from your domain</Trans>,
<Trans key="dns">Easy DNS setup with auto-generated DKIM and SPF records</Trans>,
<Trans key="senders">Named senders with defaults per team, template or document</Trans>,
]}
ctaLabel={<Trans>Contact Sales</Trans>}
ctaTo={DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL}
ctaExternal
preview={
<div className="mx-auto w-full max-w-xs">
<div className="relative h-8">
<AnimatePresence mode="wait" initial={false}>
<motion.div
key={isBranded ? 'chip-on' : 'chip-off'}
initial={isStatic ? false : { opacity: 0, y: 8, scale: 0.96 }}
animate={{ opacity: 1, y: 0, scale: 1 }}
exit={{ opacity: 0, y: -8, scale: 0.96 }}
transition={SPRING}
className={cn(
'absolute inset-0 flex items-center gap-2 rounded-full border bg-background px-3 font-mono text-xs',
isBranded ? 'border-documenso-300 text-documenso-800' : 'text-muted-foreground',
)}
>
{isBranded ? (
<BadgeCheckIcon className="h-3.5 w-3.5 shrink-0 text-documenso-700" />
) : (
<MailIcon className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
)}
<span className="truncate">
{isBranded ? <Trans>Sending from your domain</Trans> : <Trans>Sending from app.documenso.com</Trans>}
</span>
</motion.div>
</AnimatePresence>
</div>
<div className="relative mt-4 overflow-hidden rounded-lg border bg-background shadow-sm">
<div className="flex items-center gap-2 border-b p-4">
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-full font-semibold text-sm">
<AnimatePresence mode="wait" initial={false}>
<motion.span
key={`logo-${cycleIndex}`}
initial={isStatic ? false : { opacity: 0, y: 6 }}
animate={{ opacity: 1, y: 0 }}
exit={{ opacity: 0, y: -6 }}
transition={{ duration: 0.22 }}
>
{/*
* Remounts with its keyed parent on every cycle step so the
* pop replays each change. Single-value spring (POP
* overshoots past 1) instead of scale keyframes — keyframe
* arrays are unreliable on strict-mode remounts.
*/}
<motion.span
initial={isStatic ? false : { scale: 0.8 }}
animate={{ scale: 1 }}
transition={{ scale: POP }}
className="inline-block"
>
{isBranded ? (
<Avatar className="h-8 w-8 border border-solid">
{organisation.avatarImageId && (
<AvatarImage src={formatAvatarUrl(organisation.avatarImageId)} />
)}
<AvatarFallback className="text-sm">{brandedSender.name[0]}</AvatarFallback>
</Avatar>
) : (
<BrandingLogoIcon className="h-8 w-8" />
)}
</motion.span>
</motion.span>
</AnimatePresence>
</div>
<div className="min-w-0">
<div className="font-medium text-sm">
<AnimatePresence mode="wait" initial={false}>
<motion.div
key={`name-${cycleIndex}`}
initial={isStatic ? false : { opacity: 0, y: 10 }}
animate={{ opacity: 1, y: 0 }}
exit={{ opacity: 0, y: -10 }}
transition={{ duration: 0.28, ease: EASE }}
className="flex min-w-0 items-center gap-1.5"
>
<span className="min-w-0 truncate">{isBranded ? brandedSender.name : 'Documenso'}</span>
{/* Inside the keyed row so it exits with the name and pops back in on every cycle step. */}
{isBranded && (
<motion.span
initial={isStatic ? false : { scale: 0, rotate: -40 }}
animate={{ scale: 1, rotate: 0 }}
transition={{ ...POP, delay: 0.12 }}
className="shrink-0"
>
<BadgeCheckIcon className="h-3.5 w-3.5 text-documenso-700" />
</motion.span>
)}
</motion.div>
</AnimatePresence>
</div>
<div className="font-mono text-muted-foreground text-xs">
<AnimatePresence mode="wait" initial={false}>
<motion.p
key={`addr-${cycleIndex}`}
initial={isStatic ? false : { opacity: 0, y: 10 }}
animate={{ opacity: 1, y: 0 }}
exit={{ opacity: 0, y: -10 }}
transition={{ duration: 0.28, ease: EASE }}
className="truncate"
>
{isBranded ? brandedSender.email : 'noreply@app.documenso.com'}
</motion.p>
</AnimatePresence>
</div>
</div>
</div>
<div className="p-4">
<p className="font-medium text-sm">
<Trans>Please sign: Example.pdf</Trans>
</p>
<p className="mt-1 text-muted-foreground text-xs">
<Trans>{organisation.name} has invited you to sign this document.</Trans>
</p>
</div>
{/*
* Keyed remount replays the sweep on every cycle step. No opacity
* envelope — keyframe arrays are unreliable on strict-mode
* remounts; both endpoints sit outside the overflow-hidden card,
* so the clip provides the fade in/out instead.
*/}
<motion.div
key={`sheen-${cycleIndex}`}
initial={isStatic ? false : { x: '-130%' }}
animate={{ x: '240%' }}
transition={{ duration: 1.2, ease: 'easeOut' }}
className="pointer-events-none absolute inset-y-0 left-0 w-[55%]"
style={{ background: 'linear-gradient(105deg, transparent, rgba(162, 231, 113, 0.32), transparent)' }}
/>
</div>
</div>
}
/>
);
};
@@ -1,9 +0,0 @@
/**
* Shared motion vocabulary for the settings upsell previews. Values ported
* from the design prototype (`design/SSO Upsell.dc.html`).
*/
export const SPRING = { type: 'spring', stiffness: 280, damping: 22 } as const;
export const POP = { type: 'spring', stiffness: 420, damping: 16 } as const;
export const EASE = [0.22, 0.61, 0.36, 1] as const;
@@ -1,118 +0,0 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { canExecuteOrganisationAction } from '@documenso/lib/utils/organisations';
import { Badge } from '@documenso/ui/primitives/badge';
import { Button } from '@documenso/ui/primitives/button';
import { Trans } from '@lingui/react/macro';
import { ArrowRightIcon, CheckIcon, LockIcon } from 'lucide-react';
import type { ReactNode } from 'react';
import { Link } from 'react-router';
export type SettingsUpsellCardProps = {
planLabel: ReactNode;
title: ReactNode;
description: ReactNode;
features: ReactNode[];
preview: ReactNode;
/**
* CTA label. Defaults to "Upgrade Plan".
*/
ctaLabel?: ReactNode;
/**
* CTA destination. Defaults to the organisation billing settings page.
*/
ctaTo?: string;
/**
* Render the CTA as an external link (new tab) instead of an internal route.
*/
ctaExternal?: boolean;
};
/**
* Shared split-card layout for claim-gated settings upsells on Documenso
* Cloud. The left pane pitches the feature (plan badge, title, description,
* feature list, upgrade CTA); the right pane renders a decorative scenario
* preview supplied by the caller.
*
* Callers decide *when* to render this (cloud + missing claim flag).
*/
export const SettingsUpsellCard = ({
planLabel,
title,
description,
features,
preview,
ctaLabel,
ctaTo,
ctaExternal = false,
}: SettingsUpsellCardProps) => {
const organisation = useCurrentOrganisation();
const canManageBilling = canExecuteOrganisationAction('MANAGE_BILLING', organisation.currentOrganisationRole);
const ctaHref = ctaTo ?? `/o/${organisation.url}/settings/billing`;
const ctaContent = (
<>
{ctaLabel ?? <Trans>Upgrade Plan</Trans>}
<ArrowRightIcon className="ml-2 h-4 w-4" />
</>
);
return (
<div className="mt-8 overflow-hidden rounded-xl border-2 ring-4 ring-muted/70 md:grid md:grid-cols-[1.08fr_0.92fr] xl:-mx-8">
{/*
* `min-w-0` on both grid items: `fr` tracks have an `auto` content
* minimum, so long preview content (e.g. a wide mono domain line) would
* otherwise widen the right track beyond its 0.92fr share — and
* re-balance the whole grid on every preview cycle (layout shift).
*/}
<div className="flex min-w-0 flex-col items-start p-6 md:p-8">
<Badge size="small">
<LockIcon className="mr-1 h-3 w-3" />
<span className="uppercase">{planLabel}</span>
</Badge>
<h3 className="mt-4 font-semibold text-xl">{title}</h3>
<p className="mt-2 max-w-[40ch] text-muted-foreground text-sm">{description}</p>
<ul className="mt-6 space-y-3">
{features.map((feature, index) => (
<li key={index} className="flex items-start gap-2.5 text-sm">
<span className="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-documenso-200">
<CheckIcon className="h-3 w-3 text-documenso-800" strokeWidth={2.5} />
</span>
{feature}
</li>
))}
</ul>
{canManageBilling ? (
<Button className="mt-8" asChild>
{ctaExternal ? (
<a href={ctaHref} target="_blank" rel="noreferrer">
{ctaContent}
</a>
) : (
<Link to={ctaHref}>{ctaContent}</Link>
)}
</Button>
) : (
<p className="mt-8 text-muted-foreground text-xs">
<Trans>Contact your organisation owner to upgrade plans.</Trans>
</p>
)}
</div>
<div
aria-hidden="true"
className="flex min-w-0 flex-col justify-center gap-3 border-t bg-muted p-6 md:border-t-0 md:border-l md:p-8"
>
{preview}
</div>
</div>
);
};
@@ -1,260 +0,0 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { useSession } from '@documenso/lib/client-only/providers/session';
import { DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL } from '@documenso/lib/constants/app';
import { Trans } from '@lingui/react/macro';
import { AnimatePresence, motion, useReducedMotion } from 'framer-motion';
import { FingerprintIcon } from 'lucide-react';
import type { ReactNode } from 'react';
import { EASE, POP, SPRING } from './motion';
import { SettingsUpsellCard } from './settings-upsell-card';
import { useTimedCycle } from './use-timed-cycle';
export const SsoPortalUpsell = () => {
const isReducedMotion = useReducedMotion();
const sceneIndex = useTimedCycle(SSO_SCENE_DURATIONS_MS);
return (
<SettingsUpsellCard
planLabel={<Trans>Enterprise</Trans>}
title={<Trans>Unlock the Organisation SSO Portal</Trans>}
description={
<Trans>
Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan.
</Trans>
}
features={[
<Trans key="oidc">Works with any OIDC provider Okta, Entra ID, Google and more</Trans>,
<Trans key="jit">Accounts are automatically added to your organisation on sign-in</Trans>,
<Trans key="control">Restrict sign-ins by email domain and choose the default role</Trans>,
]}
ctaLabel={<Trans>Contact Sales</Trans>}
ctaTo={DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL}
ctaExternal
preview={
<div className="mx-auto w-full max-w-xs">
<div className="relative h-[236px]">
<AnimatePresence mode="wait" initial={false}>
{sceneIndex === 0 && <PortalScene key="portal" isStatic={isReducedMotion ?? false} />}
{sceneIndex === 1 && <RedirectScene key="redirect" />}
{sceneIndex === 2 && <SuccessScene key="success" />}
</AnimatePresence>
</div>
</div>
}
/>
);
};
/**
* Absolute-positioned panel each scene renders in, handling the shared
* slide-and-fade transition between scenes.
*/
const ScenePanel = ({ children }: { children: ReactNode }) => {
return (
<motion.div
initial={{ opacity: 0, y: 12, scale: 0.98 }}
animate={{ opacity: 1, y: 0, scale: 1 }}
exit={{ opacity: 0, y: -12, scale: 0.98 }}
transition={{ duration: 0.34, ease: EASE }}
className="absolute inset-0 flex flex-col items-center justify-center overflow-hidden rounded-lg border bg-background p-6 text-center shadow-sm"
>
{children}
</motion.div>
);
};
/**
* Scene 1: the organisation's SSO portal, with a timed faux press on the
* "Continue with SSO" button (cursor flies in, button dips, sheen sweeps).
*
* When `isStatic` is set (reduced motion) every element renders with
* `initial={false}`, skipping entrance and press animations.
*/
const PortalScene = ({ isStatic }: { isStatic: boolean }) => {
const organisation = useCurrentOrganisation();
const rise = (delay: number) => ({
initial: isStatic ? false : { y: 10, opacity: 0 },
animate: { y: 0, opacity: 1 },
transition: { ...SPRING, delay },
});
return (
<ScenePanel>
<motion.div
initial={isStatic ? false : { scale: 0.5, opacity: 0 }}
animate={{ scale: 1, opacity: 1 }}
transition={{ ...POP, delay: 0.04 }}
>
<div className="flex h-10 w-10 items-center justify-center rounded-md bg-documenso-200 font-semibold text-documenso-900">
{([...organisation.name][0] ?? 'D').toUpperCase()}
</div>
</motion.div>
<motion.p {...rise(0.12)} className="mt-3.5 font-semibold text-sm">
<Trans>Welcome to {organisation.name}</Trans>
</motion.p>
<motion.p {...rise(0.18)} className="mt-1 text-muted-foreground text-xs">
<Trans>Single sign-on</Trans>
</motion.p>
<div className="relative mt-4 w-full">
<motion.div
initial={isStatic ? false : { y: 10, opacity: 0, scale: 1 }}
animate={{ y: 0, opacity: 1, scale: [1, 1, 0.955, 1] }}
transition={{
y: { ...SPRING, delay: 0.24 },
opacity: { duration: 0.3, delay: 0.24 },
scale: { duration: 2.6, times: [0, 0.63, 0.72, 0.84], ease: 'easeOut' },
}}
className="relative flex h-[38px] w-full items-center justify-center overflow-hidden rounded-md bg-foreground font-semibold text-background text-sm"
>
<span>
<Trans>Continue with SSO</Trans>
</span>
<motion.div
initial={isStatic ? false : { x: '-130%' }}
animate={{ x: '150%' }}
transition={{ duration: 0.85, delay: 1.75, ease: 'easeOut' }}
className="absolute top-0 bottom-0 left-[20%] w-3/5"
style={{ background: 'linear-gradient(105deg, transparent, rgba(162, 231, 113, 0.45), transparent)' }}
/>
</motion.div>
<motion.svg
initial={isStatic ? false : { x: 30, y: 30, opacity: 0, scale: 1 }}
animate={{
x: [30, 30, 0, 0, 0],
y: [30, 30, 0, 0, 0],
opacity: [0, 1, 1, 1, 0],
scale: [1, 1, 1, 0.82, 1],
}}
transition={{ duration: 2.6, times: [0, 0.3, 0.63, 0.72, 0.94], ease: EASE }}
width={17}
height={17}
viewBox="0 0 24 24"
strokeWidth={1.4}
strokeLinejoin="round"
className="absolute right-[26px] -bottom-2.5 fill-foreground stroke-background"
>
<path d="M4 2.5 19 12l-6.6 1.4L9.7 19.6z" />
</motion.svg>
</div>
</ScenePanel>
);
};
/**
* Scene 2: redirecting to the identity provider, with a rotating ring around
* a fingerprint tile and a filling progress bar.
*/
const RedirectScene = () => {
return (
<ScenePanel>
<div className="relative flex h-[46px] w-[46px] items-center justify-center">
<motion.div
animate={{ rotate: 360 }}
transition={{ duration: 0.95, repeat: Number.POSITIVE_INFINITY, ease: 'linear' }}
className="absolute inset-0 rounded-full border-2"
style={{ borderTopColor: '#A2E771' }}
/>
<div className="flex h-[34px] w-[34px] items-center justify-center rounded-full bg-muted">
<FingerprintIcon className="h-[18px] w-[18px] text-muted-foreground" strokeWidth={1.6} />
</div>
</div>
<motion.p
initial={{ y: 8, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ ...SPRING, delay: 0.08 }}
className="mt-3.5 max-w-[22ch] text-sm"
>
<Trans>Redirecting to your identity provider</Trans>
</motion.p>
<div className="mt-4 h-1 w-[140px] overflow-hidden rounded-full bg-border">
<motion.div
initial={{ width: '0%' }}
animate={{ width: '100%' }}
transition={{ duration: 1.35, ease: 'easeInOut' }}
className="h-full rounded-full bg-documenso"
/>
</div>
</ScenePanel>
);
};
/**
* Scene 3: signed in, with an expanding pulse ring, a popping green circle,
* a drawn checkmark and the signed-in member's email.
*/
const SuccessScene = () => {
const { user } = useSession();
return (
<ScenePanel>
<div className="relative h-10 w-10">
<motion.div
initial={{ scale: 0.7, opacity: 0.85 }}
animate={{ scale: 2.1, opacity: 0 }}
transition={{ duration: 1.1, ease: 'easeOut' }}
className="absolute inset-0 rounded-full border-2"
style={{ borderColor: '#A2E771' }}
/>
<motion.div
initial={{ scale: 0.4, opacity: 0 }}
animate={{ scale: 1, opacity: 1 }}
transition={POP}
className="absolute inset-0 flex items-center justify-center rounded-full bg-documenso-200"
>
<svg
width={19}
height={19}
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth={2.4}
strokeLinecap="round"
strokeLinejoin="round"
className="text-documenso-900"
>
<motion.path
d="M20 6 9 17l-5-5"
initial={{ pathLength: 0 }}
animate={{ pathLength: 1 }}
transition={{ duration: 0.4, delay: 0.12, ease: 'easeOut' }}
/>
</svg>
</motion.div>
</div>
<motion.p
initial={{ y: 10, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ ...SPRING, delay: 0.16 }}
className="mt-3.5 font-semibold text-sm"
>
<Trans>Signed in</Trans>
</motion.p>
<motion.p
initial={{ y: 10, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ ...SPRING, delay: 0.24 }}
className="mt-1 font-mono text-muted-foreground text-xs"
>
{user.email}
</motion.p>
</ScenePanel>
);
};
/**
* Milliseconds each scene is shown before advancing: portal, redirect,
* success.
*/
const SSO_SCENE_DURATIONS_MS = [3000, 2500, 3000];
@@ -1,47 +0,0 @@
import { useReducedMotion } from 'framer-motion';
import { useEffect, useState } from 'react';
/**
* Cycles an index through `durations.length` steps, waiting `durations[i]`
* milliseconds on step `i` before advancing to the next.
*
* When the cycle wraps past the last step it continues from `loopStartIndex`
* (default `0`), letting consumers play intro-only steps exactly once and
* then loop through the remaining steps forever.
*
* Under `prefers-reduced-motion` the cycle never starts and the index stays
* at 0, so consumers render their initial state statically.
*
* Pass module-level constants for `durations` and `loopStartIndex` — their
* identities are intentionally not dependencies.
*/
export const useTimedCycle = (durations: number[], loopStartIndex = 0) => {
const [index, setIndex] = useState(0);
const isReducedMotion = useReducedMotion();
useEffect(() => {
if (isReducedMotion || durations.length === 0) {
setIndex(0);
return;
}
let current = 0;
let timeout: ReturnType<typeof setTimeout>;
const tick = () => {
const next = current + 1;
current = next >= durations.length ? Math.min(loopStartIndex, durations.length - 1) : next;
setIndex(current);
timeout = setTimeout(tick, durations[current]);
};
timeout = setTimeout(tick, durations[0]);
return () => clearTimeout(timeout);
}, [isReducedMotion]);
return index;
};
+7 -10
View File
@@ -1,6 +1,5 @@
import { getOptionalSession } from '@documenso/auth/server/lib/utils/get-session';
import { SessionProvider } from '@documenso/lib/client-only/providers/session';
import { getBasePath } from '@documenso/lib/constants/app';
import { APP_I18N_OPTIONS, type SupportedLanguageCodes } from '@documenso/lib/constants/i18n';
import { createPublicEnv } from '@documenso/lib/utils/env';
import { extractLocaleData } from '@documenso/lib/utils/i18n';
@@ -21,6 +20,7 @@ import {
useMatches,
} from 'react-router';
import { PreventFlashOnWrongTheme, ThemeProvider, useTheme } from 'remix-themes';
import type { Route } from './+types/root';
import stylesheet from './app.css?url';
import { GenericErrorLayout } from './components/general/generic-error-layout';
@@ -68,7 +68,6 @@ export async function loader({ context, request }: Route.LoaderArgs) {
lang,
theme: getTheme(),
disableAnimations,
basePath: getBasePath(),
// Surface the per-request CSP nonce produced by `securityHeadersMiddleware` so all
// SSR-rendered <script>/<style> elements in this layout (and child
// routes that need it) can carry the matching nonce attribute.
@@ -91,10 +90,10 @@ export async function loader({ context, request }: Route.LoaderArgs) {
}
export function Layout({ children }: { children: React.ReactNode }) {
const { theme, basePath } = useLoaderData<typeof loader>() || {};
const { theme } = useLoaderData<typeof loader>() || {};
return (
<ThemeProvider specifiedTheme={theme} themeAction={`${basePath ?? ''}/api/theme`}>
<ThemeProvider specifiedTheme={theme} themeAction="/api/theme">
<LayoutContent>{children}</LayoutContent>
</ThemeProvider>
);
@@ -112,8 +111,6 @@ export function LayoutContent({ children }: { children: React.ReactNode }) {
const [theme] = useTheme();
const basePath = data.basePath ?? '';
// Recipient routes (signing pages) put `documenso-branded` on <body> so the
// <style> block from `RecipientBranding` applies to BOTH the main tree and
// any portaled content (Radix dialogs/popovers/dropdowns mount outside the
@@ -129,11 +126,11 @@ export function LayoutContent({ children }: { children: React.ReactNode }) {
<html translate="no" lang={lang} data-theme={theme} className={theme ?? ''} suppressHydrationWarning>
<head>
<meta charSet="utf-8" />
<link rel="apple-touch-icon" sizes="180x180" href={`${basePath}/apple-touch-icon.png`} />
<link rel="icon" type="image/png" sizes="32x32" href={`${basePath}/favicon-32x32.png`} />
<link rel="icon" type="image/png" sizes="16x16" href={`${basePath}/favicon-16x16.png`} />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="manifest" href={`${basePath}/site.webmanifest`} />
<link rel="manifest" href="/site.webmanifest" />
<meta name="google" content="notranslate" />
<Meta />
<Links nonce={nonce(cspNonce)} />
@@ -1,5 +1,5 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { IS_BILLING_ENABLED, IS_DOCUMENSO_CLOUD } from '@documenso/lib/constants/app';
import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { canExecuteOrganisationAction } from '@documenso/lib/utils/organisations';
import type { SanitizeBrandingCssWarning } from '@documenso/lib/utils/sanitize-branding-css';
import { trpc } from '@documenso/trpc/react';
@@ -17,7 +17,6 @@ import {
type TBrandingPreferencesFormSchema,
} from '~/components/forms/branding-preferences-form';
import { SettingsHeader } from '~/components/general/settings-header';
import { BrandingUpsell } from '~/components/general/settings-upsell/branding-upsell';
import { useOptionalCurrentTeam } from '~/providers/team';
import { appMetaTags } from '~/utils/meta';
@@ -122,18 +121,11 @@ export default function OrganisationSettingsBrandingPage() {
? t`Here you can set branding preferences for your team.`
: t`Here you can set branding preferences for your organisation. Teams will inherit these settings by default.`;
const brandingPreferencesFormEnabled =
organisationWithSettings.organisationClaim.flags.allowCustomBranding || !IS_BILLING_ENABLED();
return (
<div>
<SettingsHeader
title={settingsHeaderText}
subtitle={settingsHeaderSubtitle}
hideDivider={!brandingPreferencesFormEnabled}
/>
<SettingsHeader title={settingsHeaderText} subtitle={settingsHeaderSubtitle} />
{brandingPreferencesFormEnabled ? (
{organisationWithSettings.organisationClaim.flags.allowCustomBranding || !IS_BILLING_ENABLED() ? (
<section>
<BrandingPreferencesForm
context="Organisation"
@@ -168,8 +160,6 @@ export default function OrganisationSettingsBrandingPage() {
</Alert>
)}
</section>
) : IS_DOCUMENSO_CLOUD() ? (
<BrandingUpsell />
) : (
<Alert className="mt-8 flex flex-col justify-between p-6 sm:flex-row sm:items-center" variant="neutral">
<div className="mb-4 sm:mb-0">
@@ -1,5 +1,5 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { IS_BILLING_ENABLED, IS_DOCUMENSO_CLOUD } from '@documenso/lib/constants/app';
import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { generateEmailDomainRecords } from '@documenso/lib/utils/email-domains';
import { trpc } from '@documenso/trpc/react';
import type { TGetOrganisationEmailDomainResponse } from '@documenso/trpc/server/enterprise-router/get-organisation-email-domain.types';
@@ -27,9 +27,8 @@ import { OrganisationEmailDomainRecordsDialog } from '~/components/dialogs/organ
import { OrganisationEmailUpdateDialog } from '~/components/dialogs/organisation-email-update-dialog';
import { GenericErrorLayout } from '~/components/general/generic-error-layout';
import { SettingsHeader } from '~/components/general/settings-header';
import { EmailDomainsUpsell } from '~/components/general/settings-upsell/email-domains-upsell';
import type { Route } from './+types/o.$orgUrl.settings.email-domains.$id';
import type { Route } from './+types/o.$orgUrl.settings.groups.$id';
export default function OrganisationEmailDomainSettingsPage({ params }: Route.ComponentProps) {
const { t } = useLingui();
@@ -97,23 +96,10 @@ export default function OrganisationEmailDomainSettingsPage({ params }: Route.Co
] satisfies DataTableColumnDef<TGetOrganisationEmailDomainResponse['emails'][number]>[];
}, [organisation]);
const pageHeader = t`Email Domain Settings`;
const pageSubtitle = t`Manage your email domain settings.`;
if (!IS_BILLING_ENABLED()) {
return null;
}
if (!organisation.organisationClaim.flags.emailDomains && IS_DOCUMENSO_CLOUD()) {
return (
<div>
<SettingsHeader hideDivider title={pageHeader} subtitle={pageSubtitle} />
<EmailDomainsUpsell />
</div>
);
}
if (isLoadingEmailDomain) {
return <SpinnerBox className="py-32" />;
}
@@ -146,7 +132,7 @@ export default function OrganisationEmailDomainSettingsPage({ params }: Route.Co
return (
<div>
<SettingsHeader hideDivider title={pageHeader} subtitle={pageSubtitle}>
<SettingsHeader hideDivider title={t`Email Domain Settings`} subtitle={t`Manage your email domain settings.`}>
<OrganisationEmailCreateDialog emailDomain={emailDomain} />
</SettingsHeader>
@@ -1,5 +1,5 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { IS_BILLING_ENABLED, IS_DOCUMENSO_CLOUD } from '@documenso/lib/constants/app';
import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { canExecuteOrganisationAction } from '@documenso/lib/utils/organisations';
import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert';
import { Button } from '@documenso/ui/primitives/button';
@@ -9,7 +9,6 @@ import { Link } from 'react-router';
import { OrganisationEmailDomainCreateDialog } from '~/components/dialogs/organisation-email-domain-create-dialog';
import { SettingsHeader } from '~/components/general/settings-header';
import { EmailDomainsUpsell } from '~/components/general/settings-upsell/email-domains-upsell';
import { OrganisationEmailDomainsDataTable } from '~/components/tables/organisation-email-domains-table';
import { appMetaTags } from '~/utils/meta';
@@ -42,8 +41,6 @@ export default function OrganisationSettingsEmailDomains() {
<section>
<OrganisationEmailDomainsDataTable />
</section>
) : IS_DOCUMENSO_CLOUD() ? (
<EmailDomainsUpsell />
) : (
<Alert className="mt-8 flex flex-col justify-between p-6 sm:flex-row sm:items-center" variant="neutral">
<div className="mb-4 sm:mb-0">
@@ -1,5 +1,4 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { IS_DOCUMENSO_CLOUD } from '@documenso/lib/constants/app';
import { ORGANISATION_MEMBER_ROLE_HIERARCHY } from '@documenso/lib/constants/organisations';
import { ORGANISATION_MEMBER_ROLE_MAP } from '@documenso/lib/constants/organisations-translations';
import {
@@ -29,7 +28,6 @@ import { useForm } from 'react-hook-form';
import { z } from 'zod';
import { SettingsHeader } from '~/components/general/settings-header';
import { SsoPortalUpsell } from '~/components/general/settings-upsell/sso-portal-upsell';
import { appMetaTags } from '~/utils/meta';
const ZProviderFormSchema = ZUpdateOrganisationAuthenticationPortalRequestSchema.shape.data
@@ -65,33 +63,10 @@ export default function OrganisationSettingSSOLoginPage() {
const { t } = useLingui();
const organisation = useCurrentOrganisation();
const isAuthenticationPortalEnabled = organisation.organisationClaim.flags.authenticationPortal === true;
const { data: authenticationPortal, isLoading: isLoadingAuthenticationPortal } =
trpc.enterprise.organisation.authenticationPortal.get.useQuery(
{
organisationId: organisation.id,
},
{
// The endpoint rejects orgs without the claim flag, so don't fire
// requests that are guaranteed to error.
enabled: isAuthenticationPortalEnabled,
},
);
if (!isAuthenticationPortalEnabled && IS_DOCUMENSO_CLOUD()) {
return (
<div>
<SettingsHeader
hideDivider
title={t`Organisation SSO Portal`}
subtitle={t`Manage a custom SSO login portal for your organisation.`}
/>
<SsoPortalUpsell />
</div>
);
}
trpc.enterprise.organisation.authenticationPortal.get.useQuery({
organisationId: organisation.id,
});
if (isLoadingAuthenticationPortal || !authenticationPortal) {
return <SpinnerBox className="py-32" />;
@@ -1,5 +1,5 @@
import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/organisation';
import { IS_BILLING_ENABLED, IS_DOCUMENSO_CLOUD } from '@documenso/lib/constants/app';
import { IS_BILLING_ENABLED } from '@documenso/lib/constants/app';
import { canExecuteOrganisationAction } from '@documenso/lib/utils/organisations';
import type { SanitizeBrandingCssWarning } from '@documenso/lib/utils/sanitize-branding-css';
import { trpc } from '@documenso/trpc/react';
@@ -17,7 +17,6 @@ import {
type TBrandingPreferencesFormSchema,
} from '~/components/forms/branding-preferences-form';
import { SettingsHeader } from '~/components/general/settings-header';
import { BrandingUpsell } from '~/components/general/settings-upsell/branding-upsell';
import { useCurrentTeam } from '~/providers/team';
export default function TeamsSettingsPage() {
@@ -156,8 +155,6 @@ export default function TeamsSettingsPage() {
</Alert>
)}
</section>
) : IS_DOCUMENSO_CLOUD() ? (
<BrandingUpsell />
) : (
<Alert className="mt-8 flex flex-col justify-between p-6 sm:flex-row sm:items-center" variant="neutral">
<div className="mb-4 sm:mb-0">
+2 -3
View File
@@ -5,9 +5,8 @@
*
* No translations required.
*/
import { formatPath } from '@documenso/lib/constants/app';
import { useCallback, useEffect, useRef, useState } from 'react';
import { useNavigate, useSearchParams } from 'react-router';
export const loader = () => {
@@ -148,7 +147,7 @@ export default function EmbedPlaygroundPage() {
return inputToken;
}
const response = await fetch(formatPath('/api/v2/embedding/create-presign-token'), {
const response = await fetch('/api/v2/embedding/create-presign-token', {
method: 'POST',
headers: {
Authorization: `Bearer ${inputToken}`,
+1 -1
View File
@@ -44,7 +44,7 @@
"autoprefixer": "^10.4.22",
"colord": "^2.9.3",
"content-disposition": "^1.0.1",
"framer-motion": "^12.43.0",
"framer-motion": "^12.23.24",
"hono": "^4.12.14",
"hono-react-router-adapter": "^0.6.5",
"input-otp": "^1.4.2",
+2 -2
View File
@@ -3,12 +3,12 @@
"short_name": "Documenso",
"icons": [
{
"src": "./android-chrome-192x192.png",
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "./android-chrome-512x512.png",
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
-5
View File
@@ -3,9 +3,4 @@ import type { Config } from '@react-router/dev/config';
export default {
appDirectory: 'app',
ssr: true,
// Must never be undefined and must start with the raw Vite `base` value,
// otherwise @react-router/dev crashes / exits on `react-router dev`. Both are
// kept without a trailing slash so they match exactly, and so the bare
// sub-path URL (e.g. "/ESign") still matches the basename at runtime.
basename: process.env.NEXT_PUBLIC_BASE_PATH ? process.env.NEXT_PUBLIC_BASE_PATH.replace(/\/$/, '') : '/',
} satisfies Config;
@@ -1,4 +1,3 @@
import { formatPath } from '@documenso/lib/constants/app';
import { z } from 'zod';
import { type TDetectFieldsRequest, ZNormalizedFieldWithContextSchema } from './detect-fields.types';
@@ -70,7 +69,7 @@ export const detectFields = async ({
onError,
signal,
}: DetectFieldsOptions): Promise<void> => {
const response = await fetch(formatPath('/api/ai/detect-fields'), {
const response = await fetch('/api/ai/detect-fields', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -1,4 +1,3 @@
import { formatPath } from '@documenso/lib/constants/app';
import { ZDetectedRecipientSchema } from '@documenso/lib/server-only/ai/envelope/detect-recipients/schema';
import { z } from 'zod';
@@ -71,7 +70,7 @@ export const detectRecipients = async ({
onError,
signal,
}: DetectRecipientsOptions): Promise<void> => {
const response = await fetch(formatPath('/api/ai/detect-recipients'), {
const response = await fetch('/api/ai/detect-recipients', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
-13
View File
@@ -14,22 +14,9 @@ import { getLoadContext } from './hono/server/load-context.js';
import server from './hono/server/router.js';
import * as build from './index.js';
// Sub-path the app is served under (e.g. "/ESign"). Empty = root.
// Must match the basePath used by the Hono router and the Vite `base`/RR
// `basename` so that hashed asset URLs like `/ESign/assets/app-xxx.css`
// resolve to files on disk at `build/client/assets/app-xxx.css`.
const basePath = (process.env.NEXT_PUBLIC_BASE_PATH ?? '').replace(/\/$/, '');
server.use(
serveStatic({
root: 'build/client',
rewriteRequestPath: (path) => {
if (basePath && (path === basePath || path.startsWith(`${basePath}/`))) {
const stripped = path.slice(basePath.length);
return stripped === '' ? '/' : stripped;
}
return path;
},
onFound: (path, c) => {
if (path.startsWith('build/client/assets')) {
// Hard cache assets with hashed file names.
+1 -3
View File
@@ -46,9 +46,7 @@ export interface HonoEnv {
};
}
const basePath = (env('NEXT_PUBLIC_BASE_PATH') ?? '').replace(/\/$/, '');
const app = new Hono<HonoEnv>().basePath(basePath || '/');
const app = new Hono<HonoEnv>();
/**
* Database-backed rate limiting for API routes.
+2 -4
View File
@@ -1,4 +1,4 @@
import { API_V2_BETA_URL, API_V2_URL, formatPath } from '@documenso/lib/constants/app';
import { API_V2_BETA_URL, API_V2_URL } from '@documenso/lib/constants/app';
import { AppError, genericErrorCodeToTrpcErrorCodeMap } from '@documenso/lib/errors/app-error';
import { createTrpcContext } from '@documenso/trpc/server/context';
import { appRouter } from '@documenso/trpc/server/router';
@@ -11,10 +11,8 @@ type OpenApiTrpcServerHandlerOptions = {
};
export const openApiTrpcServerHandler = async (c: Context, { isBeta }: OpenApiTrpcServerHandlerOptions) => {
const endpoint = formatPath(isBeta ? API_V2_BETA_URL : API_V2_URL) as `/${string}`;
return createOpenApiFetchHandler<typeof appRouter>({
endpoint,
endpoint: isBeta ? API_V2_BETA_URL : API_V2_URL,
router: appRouter,
createContext: async () => createTrpcContext({ c, requestSource: 'apiV2' }),
req: c.req.raw,
+1 -6
View File
@@ -1,4 +1,3 @@
import { formatPath } from '@documenso/lib/constants/app';
import { createTrpcContext } from '@documenso/trpc/server/context';
import { appRouter } from '@documenso/trpc/server/router';
import { handleTrpcRouterError } from '@documenso/trpc/utils/trpc-error-handler';
@@ -6,14 +5,10 @@ import { trpcServer } from '@hono/trpc-server';
/**
* Trpc server for internal routes like /api/trpc/*
*
* `endpoint` must include the sub-path prefix (e.g. "/ESign") because the
* @hono/trpc-server adapter slices the prefix off the full URL pathname to
* compute the procedure name. Hono's `basePath` doesn't rewrite the URL.
*/
export const reactRouterTrpcServer = trpcServer({
router: appRouter,
endpoint: formatPath('/api/trpc'),
endpoint: '/api/trpc',
createContext: async (_, c) => createTrpcContext({ c, requestSource: 'app' }),
onError: (opts) => handleTrpcRouterError(opts, 'trpc'),
});
-4
View File
@@ -23,10 +23,6 @@ const cMapsDir = normalizePath(path.join(pdfjsDistPath, 'cmaps'));
* Do not configure any envs here.
*/
export default defineConfig({
// No trailing slash: the React Router dev server requires its `basename` to
// start with this raw value (see react-router.config.ts). Vite normalizes
// and joins asset URLs correctly either way.
base: process.env.NEXT_PUBLIC_BASE_PATH ? process.env.NEXT_PUBLIC_BASE_PATH.replace(/\/$/, '') : '/',
css: {
postcss: {
plugins: [tailwindcss, autoprefixer],
-6
View File
@@ -50,12 +50,6 @@ ENV NEXT_PRIVATE_ENCRYPTION_KEY="$NEXT_PRIVATE_ENCRYPTION_KEY"
ARG NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY="DEADBEEF"
ENV NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY="$NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY"
# Sub-path the app is served under (e.g. "/ESign"). Empty = root.
# Baked into the client bundle by Vite/React Router at build time; also
# required at runtime for SSR so window.__ENV__ exposes it to the client.
ARG NEXT_PUBLIC_BASE_PATH=""
ENV NEXT_PUBLIC_BASE_PATH="$NEXT_PUBLIC_BASE_PATH"
# Telemetry credentials (optional, baked into image at build time)
ARG NEXT_PRIVATE_TELEMETRY_KEY=""
ENV NEXT_PRIVATE_TELEMETRY_KEY="$NEXT_PRIVATE_TELEMETRY_KEY"
+14 -14
View File
@@ -399,7 +399,7 @@
"autoprefixer": "^10.4.22",
"colord": "^2.9.3",
"content-disposition": "^1.0.1",
"framer-motion": "^12.43.0",
"framer-motion": "^12.23.24",
"hono": "^4.12.14",
"hono-react-router-adapter": "^0.6.5",
"input-otp": "^1.4.2",
@@ -20310,13 +20310,13 @@
}
},
"node_modules/framer-motion": {
"version": "12.43.0",
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.43.0.tgz",
"integrity": "sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==",
"version": "12.23.24",
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.24.tgz",
"integrity": "sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==",
"license": "MIT",
"dependencies": {
"motion-dom": "^12.43.0",
"motion-utils": "^12.39.0",
"motion-dom": "^12.23.23",
"motion-utils": "^12.23.6",
"tslib": "^2.4.0"
},
"peerDependencies": {
@@ -24677,18 +24677,18 @@
"license": "MIT"
},
"node_modules/motion-dom": {
"version": "12.43.0",
"resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.43.0.tgz",
"integrity": "sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==",
"version": "12.23.23",
"resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.23.tgz",
"integrity": "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==",
"license": "MIT",
"dependencies": {
"motion-utils": "^12.39.0"
"motion-utils": "^12.23.6"
}
},
"node_modules/motion-utils": {
"version": "12.39.0",
"resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz",
"integrity": "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==",
"version": "12.23.6",
"resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz",
"integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==",
"license": "MIT"
},
"node_modules/mqtt": {
@@ -33933,7 +33933,7 @@
"clsx": "^1.2.1",
"cmdk": "^0.2.1",
"colord": "^2.9.3",
"framer-motion": "^12.43.0",
"framer-motion": "^12.23.24",
"lucide-react": "^0.554.0",
"luxon": "^3.7.2",
"pdfjs-dist": "5.4.296",
+4 -2
View File
@@ -1,4 +1,4 @@
import { formatPath, NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { AppError } from '@documenso/lib/errors/app-error';
import type { ClientResponse, InferRequestType } from 'hono/client';
import { hc } from 'hono/client';
@@ -36,6 +36,8 @@ type TPasskeySignin = InferRequestType<AuthClientType['passkey']['authorize']['$
export class AuthClient {
public client: AuthClientType;
private signOutredirectPath: string = '/signin';
constructor(options: { baseUrl: string }) {
this.client = hc<AuthAppType>(options.baseUrl);
}
@@ -43,7 +45,7 @@ export class AuthClient {
public async signOut({ redirectPath }: { redirectPath?: string } = {}) {
await this.client.signout.$post();
window.location.href = redirectPath ?? formatPath('/signin');
window.location.href = redirectPath ?? this.signOutredirectPath;
}
public async signOutAllSessions() {
@@ -1,4 +1,4 @@
import { formatPath, NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import {
isDisposableEmail,
isEmailDomainAllowedForSignup,
@@ -121,7 +121,7 @@ export const handleOAuthCallbackUrl = async (options: HandleOAuthCallbackUrlOpti
// Check if signups are disabled for this provider.
if (!isSignupEnabledForProvider(clientOptions.id as 'google' | 'microsoft' | 'oidc')) {
const errorUrl = new URL(formatPath('/signin'), NEXT_PUBLIC_WEBAPP_URL());
const errorUrl = new URL('/signin', NEXT_PUBLIC_WEBAPP_URL());
errorUrl.searchParams.set('error', AuthenticationErrorCode.SignupDisabled);
@@ -130,7 +130,7 @@ export const handleOAuthCallbackUrl = async (options: HandleOAuthCallbackUrlOpti
// Check domain restriction for new SSO users.
if (!isEmailDomainAllowedForSignup(email)) {
const errorUrl = new URL(formatPath('/signin'), NEXT_PUBLIC_WEBAPP_URL());
const errorUrl = new URL('/signin', NEXT_PUBLIC_WEBAPP_URL());
errorUrl.searchParams.set('error', AuthenticationErrorCode.SignupDisabled);
@@ -141,7 +141,7 @@ export const handleOAuthCallbackUrl = async (options: HandleOAuthCallbackUrlOpti
const additionalBlockedDomains = await getEmailBlocklistDomains();
if (isDisposableEmail(email, additionalBlockedDomains)) {
const errorUrl = new URL(formatPath('/signin'), NEXT_PUBLIC_WEBAPP_URL());
const errorUrl = new URL('/signin', NEXT_PUBLIC_WEBAPP_URL());
errorUrl.searchParams.set('error', AuthenticationErrorCode.SignupDisposableEmail);
@@ -213,18 +213,15 @@ export const validateOauth = async (options: HandleOAuthCallbackUrlOptions) => {
// eslint-disable-next-line prefer-const
let [redirectState, redirectPath] = storedRedirectPath.split(' ');
// The sub-path aware root, e.g. "/" or "/ESign/".
const defaultRedirectPath = formatPath('/');
if (redirectState !== storedState || !redirectPath) {
redirectPath = defaultRedirectPath;
redirectPath = '/';
}
if (!isValidReturnTo(redirectPath)) {
redirectPath = defaultRedirectPath;
redirectPath = '/';
}
redirectPath = normalizeReturnTo(redirectPath) || defaultRedirectPath;
redirectPath = normalizeReturnTo(redirectPath) || '/';
const tokens = await oAuthClient.validateAuthorizationCode(token_endpoint, code, storedCodeVerifier);
@@ -1,5 +1,4 @@
import { sendOrganisationAccountLinkConfirmationEmail } from '@documenso/ee/server-only/lib/send-organisation-account-link-confirmation-email';
import { formatPath } from '@documenso/lib/constants/app';
import { isDisposableEmail, isSignupEnabledForProvider } from '@documenso/lib/constants/auth';
import { AppError } from '@documenso/lib/errors/app-error';
import { getEmailBlocklistDomains } from '@documenso/lib/server-only/site-settings/get-email-blocklist-domains';
@@ -57,7 +56,7 @@ export const handleOAuthOrganisationCallbackUrl = async (options: HandleOAuthOrg
if (existingAccount) {
await onAuthorize({ userId: existingAccount.user.id }, c);
return c.redirect(formatPath(`/o/${orgUrl}`), 302);
return c.redirect(`/o/${orgUrl}`, 302);
}
let userToLink = await prisma.user.findFirst({
+7 -28
View File
@@ -1,25 +1,5 @@
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
/**
* Derive the default redirect target ("/" at the root, "/ESign/" when served under a sub-path).
*/
const getDefaultRedirect = () => {
try {
const pathname = new URL(NEXT_PUBLIC_WEBAPP_URL()).pathname.replace(/\/$/, '');
return `${pathname}/`;
} catch {
return '/';
}
};
const getWebAppOrigin = () => {
try {
return new URL(NEXT_PUBLIC_WEBAPP_URL()).origin;
} catch {
return NEXT_PUBLIC_WEBAPP_URL();
}
};
/**
* Handle an optional redirect path.
*/
@@ -30,20 +10,19 @@ export const handleRequestRedirect = (redirectUrl?: string) => {
const url = new URL(redirectUrl, NEXT_PUBLIC_WEBAPP_URL());
if (url.origin !== getWebAppOrigin()) {
window.location.href = getDefaultRedirect();
if (url.origin !== NEXT_PUBLIC_WEBAPP_URL()) {
window.location.href = '/';
} else {
window.location.href = redirectUrl;
}
};
export const handleSignInRedirect = (redirectUrl?: string) => {
const target = redirectUrl ?? getDefaultRedirect();
const url = new URL(target, NEXT_PUBLIC_WEBAPP_URL());
export const handleSignInRedirect = (redirectUrl: string = '/') => {
const url = new URL(redirectUrl, NEXT_PUBLIC_WEBAPP_URL());
if (url.origin !== getWebAppOrigin()) {
window.location.href = getDefaultRedirect();
if (url.origin !== NEXT_PUBLIC_WEBAPP_URL()) {
window.location.href = '/';
} else {
window.location.href = target;
window.location.href = redirectUrl;
}
};
+1 -4
View File
@@ -12,10 +12,7 @@ export type GetLimitsOptions = {
export const getLimits = async ({ headers, teamId }: GetLimitsOptions) => {
const requestHeaders = headers ?? {};
// Note: the path must be appended rather than passed as the `new URL()` path
// argument, since a leading-slash path replaces the sub-path that
// NEXT_PUBLIC_WEBAPP_URL may carry (e.g. https://host/ESign).
const url = new URL(`${NEXT_PUBLIC_WEBAPP_URL()}/api/limits`);
const url = new URL('/api/limits', NEXT_PUBLIC_WEBAPP_URL());
if (teamId) {
requestHeaders['team-id'] = teamId.toString();
-46
View File
@@ -6,42 +6,6 @@ export const APP_DOCUMENT_UPLOAD_SIZE_LIMIT = Number(env('NEXT_PUBLIC_DOCUMENT_S
export const NEXT_PUBLIC_WEBAPP_URL = () => env('NEXT_PUBLIC_WEBAPP_URL') ?? 'http://localhost:3000';
/**
* The sub-path the app is served under (no trailing slash), e.g. "/ESign".
* Returns an empty string when served at root.
*
* Prefers the explicit NEXT_PUBLIC_BASE_PATH (which is the same value baked
* into the Vite/React Router build). Falls back to the pathname of
* NEXT_PUBLIC_WEBAPP_URL so the function still works in dev when the env
* variable is unset.
*
* Avoid using this to build URLs, use {@link formatPath} instead. Reserve this
* for cases where the raw prefix itself is needed, such as path comparisons.
*/
export const getBasePath = (): string => {
const explicit = env('NEXT_PUBLIC_BASE_PATH');
if (explicit) {
return explicit.replace(/\/$/, '');
}
try {
return new URL(NEXT_PUBLIC_WEBAPP_URL()).pathname.replace(/\/$/, '');
} catch {
return '';
}
};
/**
* Prefix a root-relative path with the app's base path.
*
* `formatPath('/api/trpc')` -> `/ESign/api/trpc` under sub-path hosting,
* `/api/trpc` otherwise.
*/
export const formatPath = (path: string): string => {
return `${getBasePath()}${path}`;
};
export const NEXT_PUBLIC_SIGNING_CONTACT_INFO = () =>
env('NEXT_PUBLIC_SIGNING_CONTACT_INFO') ?? NEXT_PUBLIC_WEBAPP_URL();
@@ -53,14 +17,6 @@ export const NEXT_PRIVATE_INTERNAL_WEBAPP_URL = () =>
export const IS_BILLING_ENABLED = () => env('NEXT_PUBLIC_FEATURE_BILLING_ENABLED') === 'true';
/**
* Whether this instance is Documenso Cloud (managed SaaS).
*
* Used so we can show a different UI for Documenso Cloud and self-hosted instances since
* there are things like billing, upsells, documenso links, etc that don't make sense for self-hosted instances.
*/
export const IS_DOCUMENSO_CLOUD = () => env('NEXT_PUBLIC_IS_DOCUMENSO_CLOUD') === 'true';
export const API_V2_BETA_URL = '/api/v2-beta';
export const API_V2_URL = '/api/v2';
@@ -143,5 +99,3 @@ export const CSC_INSTANCE_SIGNATURE_LEVEL = (): TSignatureLevel => {
return value;
};
export const DOCUMENSO_CLOUD_ENTERPRISE_CTA_URL = 'https://documen.so/enterprise-cta';
-127
View File
@@ -312,12 +312,6 @@ msgstr "{0}-Feld"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} hat Sie eingeladen, das Dokument \"{1}\" {recipientActionVerb}."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "Konto entkoppelt"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Bestätigung"
@@ -2465,10 +2455,6 @@ msgstr "Eckenradius-Größe in REM-Einheiten (z.B. 0.5rem)."
msgid "Bottom"
msgstr "Unten"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "Markenfarben"
@@ -3002,14 +2988,6 @@ msgstr "Durch Kommas getrennte Liste von E-Mail-Domains, die von der Registrieru
msgid "Communication"
msgstr "Kommunikation"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Vergleichen Sie alle Pläne und Funktionen im Detail"
@@ -3196,11 +3174,6 @@ msgstr "Zustimmung zu elektronischen Transaktionen"
msgid "Contact Information"
msgstr "Kontaktinformationen"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Vertrieb hier kontaktieren"
@@ -3209,10 +3182,6 @@ msgstr "Vertrieb hier kontaktieren"
msgid "Contact us"
msgstr "Kontaktieren Sie uns"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Inhalt"
@@ -3265,10 +3234,6 @@ msgstr "Fahre fort, indem du das Dokument ansiehst."
msgid "Continue to login"
msgstr "Weiter zum Login"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "Steuert, wie lange Empfänger Zeit haben, die Signatur abzuschließen, bevor das Dokument abläuft. Nach dem Ablauf können Empfänger das Dokument nicht mehr unterschreiben."
@@ -5013,10 +4978,6 @@ msgstr "Z.B. 100"
msgid "e.g. Resend (free plans)"
msgstr "z. B. Resend (kostenlose Tarife)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "Geben Sie hier Ihren Text ein"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Unternehmen"
@@ -6188,10 +6147,6 @@ msgstr "Links generieren"
msgid "German"
msgstr "Deutsch"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "Verwalten"
msgid "Manage {0}'s profile"
msgstr "Verwalten Sie das Profil von {0}"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Verwalten Sie ein benutzerdefiniertes SSO-Login-Portal für Ihre Organisation."
@@ -7577,10 +7531,6 @@ msgstr "Name ist erforderlich"
msgid "Name Settings"
msgstr "Einstellungen für Namen"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "Organisationsrolle"
msgid "Organisation Settings"
msgstr "Organisationseinstellungen"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "Bitte wählen Sie mindestens ein Mitglied aus, das zum Team hinzugefügt
msgid "Please select how you'd like to receive your verification code."
msgstr "Bitte wählen Sie, wie Sie Ihren Verifizierungscode erhalten möchten."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Bitte versuchen Sie eine andere Domain."
@@ -8915,10 +8859,6 @@ msgstr "Öffentliche Vorlage"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "Öffentliche Vorlagen sind mit Ihrem öffentlichen Profil verbunden. Änderungen an öffentlichen Vorlagen erscheinen auch in Ihrem öffentlichen Profil."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Schnellaktionen"
@@ -9247,10 +9187,6 @@ msgstr "Weiterleitung"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "Antwort-Header"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Seien Sie versichert, Ihr Dokument ist streng vertraulich und wird niemals geteilt. Nur Ihre Unterzeichnungserfahrung wird hervorgehoben. Teilen Sie Ihre personalisierte Unterschriftkarte, um Ihre Unterschrift zu präsentieren!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Eingeschränkter Zugriff"
@@ -10139,10 +10071,6 @@ msgstr "Dokument senden"
msgid "Send Document"
msgstr "Dokument senden"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Dokumente im Namen des Teams über die E-Mail-Adresse senden"
@@ -10151,10 +10079,6 @@ msgstr "Dokumente im Namen des Teams über die E-Mail-Adresse senden"
msgid "Send documents to recipients immediately"
msgstr "Dokumente sofort an Empfänger senden"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "Umschlag senden"
@@ -10201,14 +10125,6 @@ msgstr "Absender"
msgid "Sender reported"
msgstr "Absender gemeldet"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Zurücksetzungs-E-Mail wird gesendet..."
@@ -10229,10 +10145,6 @@ msgstr "Gesendet"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Sitzung widerrufen"
@@ -10338,7 +10250,6 @@ msgstr "Nutzung mit Kontingenten anzeigen"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Signiert"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Unterzeichner"
@@ -10630,10 +10537,6 @@ msgstr "Die Registrierung ist derzeit deaktiviert oder für Ihre E-Mail-Domain n
msgid "Since {0}"
msgstr "Seit {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Website Banner"
@@ -11234,7 +11137,6 @@ msgstr "Team-URL"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "Unbegrenzte Dokumente, API und mehr"
msgid "Unlink"
msgstr "Verknüpfung aufheben"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Lösen"
@@ -12956,10 +12846,6 @@ msgstr "Upgrade"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "<0>{0}</0> auf {planName} aktualisieren"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Aktualisieren Sie Ihren Tarif, um mehr Dokumente hochzuladen"
@@ -13944,11 +13830,6 @@ msgstr "Willkommen zurück, wir freuen uns, Sie zu haben."
msgid "Welcome back! Here's an overview of your account."
msgstr "Willkommen zurück! Hier ist ein Überblick über Ihr Konto."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Willkommen bei {organisationName}"
@@ -14026,10 +13907,6 @@ msgstr "Zustimmung widerrufen"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Schreiben Sie eine Beschreibung, die in Ihrem öffentlichen Profil angezeigt wird"
@@ -15047,10 +14924,6 @@ msgstr "Ihr Kuvert wurde erfolgreich verteilt."
msgid "Your envelope has been resent successfully."
msgstr "Ihr Kuvert wurde erfolgreich erneut gesendet."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Ihr Name"
-127
View File
@@ -307,12 +307,6 @@ msgstr "{0} field"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr "{0} has invited you to sign this document."
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1222,10 +1216,6 @@ msgstr "Account Settings"
msgid "Account unlinked"
msgstr "Account unlinked"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr "Accounts are automatically added to your organisation on sign-in"
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Acknowledgment"
@@ -2460,10 +2450,6 @@ msgstr "Border radius size in REM units (e.g. 0.5rem)."
msgid "Bottom"
msgstr "Bottom"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr "Brand accent"
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "Brand Colours"
@@ -2997,14 +2983,6 @@ msgstr "Comma-separated list of email domains to block from signing up."
msgid "Communication"
msgstr "Communication"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr "Company details"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr "Company details and website in email footers"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Compare all plans and features in detail"
@@ -3191,11 +3169,6 @@ msgstr "Consent to Electronic Transactions"
msgid "Contact Information"
msgstr "Contact Information"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr "Contact Sales"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Contact sales here"
@@ -3204,10 +3177,6 @@ msgstr "Contact sales here"
msgid "Contact us"
msgstr "Contact us"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr "Contact your organisation owner to upgrade plans."
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Content"
@@ -3260,10 +3229,6 @@ msgstr "Continue by viewing the document."
msgid "Continue to login"
msgstr "Continue to login"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr "Continue with SSO"
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
@@ -5008,10 +4973,6 @@ msgstr "E.g. 100"
msgid "e.g. Resend (free plans)"
msgstr "e.g. Resend (free plans)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr "Easy DNS setup with auto-generated DKIM and SPF records"
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5530,8 +5491,6 @@ msgid "Enter your text here"
msgstr "Enter your text here"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Enterprise"
@@ -6183,10 +6142,6 @@ msgstr "Generate Links"
msgid "German"
msgstr "German"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7145,7 +7100,6 @@ msgstr "Manage"
msgid "Manage {0}'s profile"
msgstr "Manage {0}'s profile"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Manage a custom SSO login portal for your organisation."
@@ -7572,10 +7526,6 @@ msgstr "Name is required"
msgid "Name Settings"
msgstr "Name Settings"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr "Named senders with defaults per team, template or document"
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr "Navigate"
@@ -8172,7 +8122,6 @@ msgstr "Organisation Role"
msgid "Organisation Settings"
msgstr "Organisation Settings"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8719,11 +8668,6 @@ msgstr "Please select at least one member to add to the team."
msgid "Please select how you'd like to receive your verification code."
msgstr "Please select how you'd like to receive your verification code."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr "Please sign: Example.pdf"
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Please try a different domain."
@@ -8910,10 +8854,6 @@ msgstr "Public Template"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr "Put your own brand on every document you send. Branding is available on the Teams plan and above."
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Quick Actions"
@@ -9242,10 +9182,6 @@ msgstr "Redirecting"
msgid "Redirecting to {0}..."
msgstr "Redirecting to {0}..."
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr "Redirecting to your identity provider"
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9614,10 +9550,6 @@ msgstr "Response Headers"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr "Restrict sign-ins by email domain and choose the default role"
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Restricted Access"
@@ -10134,10 +10066,6 @@ msgstr "Send document"
msgid "Send Document"
msgstr "Send Document"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr "Send documents from your own domain. Email domains are available on the Enterprise plan."
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Send documents on behalf of the team using the email address"
@@ -10146,10 +10074,6 @@ msgstr "Send documents on behalf of the team using the email address"
msgid "Send documents to recipients immediately"
msgstr "Send documents to recipients immediately"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr "Send emails to recipients from your domain"
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "Send Envelope"
@@ -10196,14 +10120,6 @@ msgstr "Sender"
msgid "Sender reported"
msgstr "Sender reported"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr "Sending from app.documenso.com"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr "Sending from your domain"
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Sending Reset Email..."
@@ -10224,10 +10140,6 @@ msgstr "Sent"
msgid "Sent this period"
msgstr "Sent this period"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr "Separate branding per team"
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Session revoked"
@@ -10333,7 +10245,6 @@ msgstr "Show usage with quotas"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10505,10 +10416,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Signed"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr "Signed in"
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Signer"
@@ -10625,10 +10532,6 @@ msgstr "Signup is currently disabled or not available for your email domain."
msgid "Since {0}"
msgstr "Since {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr "Single sign-on"
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Site Banner"
@@ -11229,7 +11132,6 @@ msgstr "Team URL"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12766,18 +12668,6 @@ msgstr "Unlimited documents, API and more"
msgid "Unlink"
msgstr "Unlink"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr "Unlock Branding Preferences"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr "Unlock Email Domains"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr "Unlock the Organisation SSO Portal"
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Unpin"
@@ -12951,10 +12841,6 @@ msgstr "Upgrade"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "Upgrade <0>{0}</0> to {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr "Upgrade Plan"
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Upgrade your plan to upload more documents"
@@ -13939,11 +13825,6 @@ msgstr "Welcome back, we are lucky to have you."
msgid "Welcome back! Here's an overview of your account."
msgstr "Welcome back! Here's an overview of your account."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr "Welcome to {0}"
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Welcome to {organisationName}"
@@ -14021,10 +13902,6 @@ msgstr "Withdrawing Consent"
msgid "Within limit"
msgstr "Within limit"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr "Works with any OIDC provider — Okta, Entra ID, Google and more"
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Write a description to display on your public profile"
@@ -15042,10 +14919,6 @@ msgstr "Your envelope has been distributed successfully."
msgid "Your envelope has been resent successfully."
msgstr "Your envelope has been resent successfully."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr "Your logo on signing pages and emails"
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Your Name"
-127
View File
@@ -312,12 +312,6 @@ msgstr "Campo {0}"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} te ha invitado a {recipientActionVerb} el documento \"{1}\"."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "Cuenta desvinculada"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Reconocimiento"
@@ -2465,10 +2455,6 @@ msgstr "Tamaño del radio del borde en unidades REM (p. ej., 0.5rem)."
msgid "Bottom"
msgstr "Fondo"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "Colores de la marca"
@@ -3002,14 +2988,6 @@ msgstr "Lista de dominios de correo electrónico, separados por comas, que se bl
msgid "Communication"
msgstr "Comunicación"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Compara todos los planes y características en detalle"
@@ -3196,11 +3174,6 @@ msgstr "Consentimiento para Transacciones Electrónicas"
msgid "Contact Information"
msgstr "Información de Contacto"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Contactar ventas aquí"
@@ -3209,10 +3182,6 @@ msgstr "Contactar ventas aquí"
msgid "Contact us"
msgstr "Contáctanos"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Contenido"
@@ -3265,10 +3234,6 @@ msgstr "Continúa viendo el documento."
msgid "Continue to login"
msgstr "Continuar con el inicio de sesión"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "Controla cuánto tiempo tienen los destinatarios para completar la firma antes de que el documento caduque. Después de la caducidad, los destinatarios ya no podrán firmar el documento."
@@ -5013,10 +4978,6 @@ msgstr "Ej.: 100"
msgid "e.g. Resend (free plans)"
msgstr "p. ej., Resend (planes gratuitos)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "Ingresa tu texto aquí"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Enterprise"
@@ -6188,10 +6147,6 @@ msgstr "Generar enlaces"
msgid "German"
msgstr "Alemán"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "Gestionar"
msgid "Manage {0}'s profile"
msgstr "Gestionar el perfil de {0}"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Administra un portal de inicio de sesión SSO personalizado para tu organización."
@@ -7577,10 +7531,6 @@ msgstr "Se requiere el nombre"
msgid "Name Settings"
msgstr "Configuración de Nombre"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "Rol de Organización"
msgid "Organisation Settings"
msgstr "Configuraciones de la Organización"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "Por favor, selecciona al menos un miembro para añadir al equipo."
msgid "Please select how you'd like to receive your verification code."
msgstr "Por favor, selecciona cómo te gustaría recibir tu código de verificación."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Por favor, intenta con un dominio diferente."
@@ -8915,10 +8859,6 @@ msgstr "Plantilla pública"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "Las plantillas públicas están conectadas a tu perfil público. Cualquier modificación a las plantillas públicas también aparecerá en tu perfil público."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Acciones rápidas"
@@ -9247,10 +9187,6 @@ msgstr "Redireccionando"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "Encabezados de respuesta"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Ten la seguridad de que tu documento es estrictamente confidencial y nunca será compartido. Solo se destacará tu experiencia de firma. ¡Comparte tu tarjeta de firma personalizada para mostrar tu firma!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Acceso restringido"
@@ -10139,10 +10071,6 @@ msgstr "Enviar documento"
msgid "Send Document"
msgstr "Enviar documento"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Enviar documentos en nombre del equipo usando la dirección de correo electrónico"
@@ -10151,10 +10079,6 @@ msgstr "Enviar documentos en nombre del equipo usando la dirección de correo el
msgid "Send documents to recipients immediately"
msgstr "Enviar documentos a los destinatarios inmediatamente"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "Enviar sobre (envelope)"
@@ -10201,14 +10125,6 @@ msgstr "Remitente"
msgid "Sender reported"
msgstr "Remitente denunciado"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Enviando correo de restablecimiento..."
@@ -10229,10 +10145,6 @@ msgstr "Enviado"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Sesión revocada"
@@ -10338,7 +10250,6 @@ msgstr "Mostrar uso con cuotas"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Firmado"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Firmante"
@@ -10630,10 +10537,6 @@ msgstr "El registro está deshabilitado actualmente o no está disponible para e
msgid "Since {0}"
msgstr "Desde {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Banner del sitio"
@@ -11234,7 +11137,6 @@ msgstr "URL del equipo"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "Documentos ilimitados, API y más"
msgid "Unlink"
msgstr "Desvincular"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Desanclar"
@@ -12956,10 +12846,6 @@ msgstr "Actualizar"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "Actualizar <0>{0}</0> a {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Actualiza tu plan para cargar más documentos"
@@ -13944,11 +13830,6 @@ msgstr "Bienvenido de nuevo, somos afortunados de tenerte."
msgid "Welcome back! Here's an overview of your account."
msgstr "¡Bienvenido de nuevo! Aquí tienes un resumen de tu cuenta."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Bienvenido a {organisationName}"
@@ -14026,10 +13907,6 @@ msgstr "Retirar Consentimiento"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Escribe una descripción para mostrar en tu perfil público"
@@ -15047,10 +14924,6 @@ msgstr "Su sobre ha sido distribuido exitosamente."
msgid "Your envelope has been resent successfully."
msgstr "Su sobre ha sido reenviado exitosamente."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Tu nombre"
-127
View File
@@ -312,12 +312,6 @@ msgstr "champ {0}"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} vous a invité à {recipientActionVerb} le document \"{1}\"."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "Compte dissocié"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Reconnaissance"
@@ -2465,10 +2455,6 @@ msgstr "Taille du rayon de la bordure en unités REM (par ex. 0.5rem)."
msgid "Bottom"
msgstr "Bas"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "Couleurs de la marque"
@@ -3002,14 +2988,6 @@ msgstr "Liste de domaines de messagerie, séparés par des virgules, à bloquer
msgid "Communication"
msgstr "Communication"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Comparez tous les plans et fonctionnalités en détail"
@@ -3196,11 +3174,6 @@ msgstr "Consentement aux transactions électroniques"
msgid "Contact Information"
msgstr "Coordonnées"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Contactez le service commercial ici"
@@ -3209,10 +3182,6 @@ msgstr "Contactez le service commercial ici"
msgid "Contact us"
msgstr "Contactez-nous"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Contenu"
@@ -3265,10 +3234,6 @@ msgstr "Continuer en consultant le document."
msgid "Continue to login"
msgstr "Continuer vers la connexion"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "Détermine combien de temps les destinataires disposent pour terminer la signature avant lexpiration du document. Après expiration, les destinataires ne peuvent plus signer le document."
@@ -5013,10 +4978,6 @@ msgstr "Par ex. 100"
msgid "e.g. Resend (free plans)"
msgstr "p. ex. Resend (offres gratuites)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "Entrez votre texte ici"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Entreprise"
@@ -6188,10 +6147,6 @@ msgstr "Générer des liens"
msgid "German"
msgstr "Allemand"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "Gérer"
msgid "Manage {0}'s profile"
msgstr "Gérer le profil de {0}"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Gérez un portail de connexion SSO personnalisé pour votre organisation."
@@ -7577,10 +7531,6 @@ msgstr "Le nom est requis"
msgid "Name Settings"
msgstr "Paramètres du nom"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "Rôle de l'organisation"
msgid "Organisation Settings"
msgstr "Paramètres de l'organisation"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "Veuillez sélectionner au moins un membre à ajouter à l’équipe."
msgid "Please select how you'd like to receive your verification code."
msgstr "Veuillez sélectionner le moyen par lequel vous souhaitez recevoir votre code de vérification."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Veuillez essayer un autre domaine."
@@ -8915,10 +8859,6 @@ msgstr "Modèle Public"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "Les modèles publics sont connectés à votre profil public. Toute modification apportée aux modèles publics apparaîtra également dans votre profil public."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Actions Rapides"
@@ -9247,10 +9187,6 @@ msgstr "Redirection"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "En-têtes de réponse"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Soyez assuré, votre document eststrictement confidentiel et ne sera jamais partagé. Seule votre expérience de signature sera mise en avant. Partagez votre carte de signature personnalisée pour mettre en valeur votre signature !"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Accès restreint"
@@ -10139,10 +10071,6 @@ msgstr "Envoyer le document"
msgid "Send Document"
msgstr "Envoyer le document"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Envoyer des documents au nom de l'équipe en utilisant l'adresse e-mail"
@@ -10151,10 +10079,6 @@ msgstr "Envoyer des documents au nom de l'équipe en utilisant l'adresse e-mail"
msgid "Send documents to recipients immediately"
msgstr "Envoyer les documents aux destinataires immédiatement"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "Envoyer lenveloppe"
@@ -10201,14 +10125,6 @@ msgstr "Expéditeur"
msgid "Sender reported"
msgstr "Expéditeur signalé"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Envoi de l'e-mail de réinitialisation..."
@@ -10229,10 +10145,6 @@ msgstr "Envoyé"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Session révoquée"
@@ -10338,7 +10250,6 @@ msgstr "Afficher lutilisation avec quotas"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Signé"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Signataire"
@@ -10630,10 +10537,6 @@ msgstr "Linscription est actuellement désactivée ou non disponible pour vot
msgid "Since {0}"
msgstr "Depuis {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Bannière du site"
@@ -11234,7 +11137,6 @@ msgstr "URL de l'équipe"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "Documents illimités, API et plus"
msgid "Unlink"
msgstr "Délier"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Détacher"
@@ -12956,10 +12846,6 @@ msgstr "Améliorer"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "Mettre à niveau <0>{0}</0> vers {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Mettez à niveau votre plan pour importer plus de documents"
@@ -13944,11 +13830,6 @@ msgstr "Bon retour, nous sommes heureux de vous retrouver."
msgid "Welcome back! Here's an overview of your account."
msgstr "Bon retour ! Voici un aperçu de votre compte."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Bienvenue chez {organisationName}"
@@ -14026,10 +13907,6 @@ msgstr "Retrait du consentement"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Écrivez une description à afficher sur votre profil public"
@@ -15047,10 +14924,6 @@ msgstr "Votre enveloppe a été distribuée avec succès."
msgid "Your envelope has been resent successfully."
msgstr "Votre enveloppe a été renvoyée avec succès."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Votre nom"
-127
View File
@@ -312,12 +312,6 @@ msgstr "Campo {0}"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} ti ha invitato a {recipientActionVerb} il documento \"{1}\"."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "Account scollegato"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Riconoscimento"
@@ -2465,10 +2455,6 @@ msgstr "Dimensione del raggio del bordo in unità REM (ad es. 0.5rem)."
msgid "Bottom"
msgstr "Inferiore"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "Colori del brand"
@@ -3002,14 +2988,6 @@ msgstr "Elenco di domini email, separati da virgola, da bloccare per la registra
msgid "Communication"
msgstr "Comunicazione"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Confronta tutti i piani e le caratteristiche in dettaglio"
@@ -3196,11 +3174,6 @@ msgstr "Consenso alle transazioni elettroniche"
msgid "Contact Information"
msgstr "Informazioni di contatto"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Contatta le vendite qui"
@@ -3209,10 +3182,6 @@ msgstr "Contatta le vendite qui"
msgid "Contact us"
msgstr "Contattaci"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Contenuto"
@@ -3265,10 +3234,6 @@ msgstr "Continua visualizzando il documento."
msgid "Continue to login"
msgstr "Continua per accedere"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "Determina per quanto tempo i destinatari hanno a disposizione per completare la firma prima che il documento scada. Dopo la scadenza, i destinatari non potranno più firmare il documento."
@@ -5013,10 +4978,6 @@ msgstr "Es. 100"
msgid "e.g. Resend (free plans)"
msgstr "es. Resend (piani gratuiti)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "Inserisci il tuo testo qui"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Impresa"
@@ -6188,10 +6147,6 @@ msgstr "Genera link"
msgid "German"
msgstr "Tedesco"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "Gestisci"
msgid "Manage {0}'s profile"
msgstr "Gestisci il profilo di {0}"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Gestisci un portale di accesso SSO personalizzato per la tua organizzazione."
@@ -7577,10 +7531,6 @@ msgstr "Nome richiesto"
msgid "Name Settings"
msgstr "Impostazioni Nome"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "Ruolo dell'organizzazione"
msgid "Organisation Settings"
msgstr "Impostazioni dell'organizzazione"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "Seleziona almeno un membro da aggiungere al team."
msgid "Please select how you'd like to receive your verification code."
msgstr "Seleziona come desideri ricevere il tuo codice di verifica."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Si prega di provare un altro dominio."
@@ -8915,10 +8859,6 @@ msgstr "Modello pubblico"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "I modelli pubblici sono collegati al tuo profilo pubblico. Ogni modifica ai modelli pubblici apparirà anche nel tuo profilo pubblico."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Azioni rapide"
@@ -9247,10 +9187,6 @@ msgstr "Reindirizzamento"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "Header di risposta"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Stai tranquillo, il tuo documento è strettamente confidenziale e non sarà mai condiviso. Solo la tua esperienza di firma sarà evidenziata. Condividi la tua carta di firma personalizzata per mostrare la tua firma!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Accesso limitato"
@@ -10139,10 +10071,6 @@ msgstr "Invia documento"
msgid "Send Document"
msgstr "Invia documento"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Invia documenti a nome del team utilizzando l'indirizzo email"
@@ -10151,10 +10079,6 @@ msgstr "Invia documenti a nome del team utilizzando l'indirizzo email"
msgid "Send documents to recipients immediately"
msgstr "Invia documenti ai destinatari immediatamente"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "Invia busta"
@@ -10201,14 +10125,6 @@ msgstr "Mittente"
msgid "Sender reported"
msgstr "Mittente segnalato"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Invio dell'email di ripristino..."
@@ -10229,10 +10145,6 @@ msgstr "Inviato"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Sessione revocata"
@@ -10338,7 +10250,6 @@ msgstr "Mostra utilizzo con quote"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Firmato"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Firmatario"
@@ -10630,10 +10537,6 @@ msgstr "La registrazione è al momento disabilitata o non disponibile per il tuo
msgid "Since {0}"
msgstr "Dal {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Banner del sito"
@@ -11234,7 +11137,6 @@ msgstr "URL del team"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "Documenti illimitati, API e altro"
msgid "Unlink"
msgstr "Scollega"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Rimuovi"
@@ -12956,10 +12846,6 @@ msgstr "Aggiorna"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "Aggiorna <0>{0}</0> al {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Aggiorna il tuo piano per caricare più documenti"
@@ -13944,11 +13830,6 @@ msgstr "Bentornato, siamo fortunati ad averti."
msgid "Welcome back! Here's an overview of your account."
msgstr "Bentornato! Ecco una panoramica del tuo account."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Benvenuto a {organisationName}"
@@ -14026,10 +13907,6 @@ msgstr "Ritiro del consenso"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Scrivi una descrizione da mostrare sul tuo profilo pubblico"
@@ -15047,10 +14924,6 @@ msgstr "La tua busta è stata distribuita con successo."
msgid "Your envelope has been resent successfully."
msgstr "La tua busta è stata reinviata con successo."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Il tuo nome"
-127
View File
@@ -312,12 +312,6 @@ msgstr "{0} フィールド"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} からドキュメント「{1}」への{recipientActionVerb}依頼が届いています。"
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "アカウントのリンクを解除しました"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "確認"
@@ -2465,10 +2455,6 @@ msgstr "ボーダーの角丸サイズ(REM 単位、例: 0.5rem)。"
msgid "Bottom"
msgstr "下"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "ブランドカラー"
@@ -3002,14 +2988,6 @@ msgstr "サインアップをブロックするメールドメインをカンマ
msgid "Communication"
msgstr "コミュニケーション"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "すべてのプランと機能を詳細に比較"
@@ -3196,11 +3174,6 @@ msgstr "電子取引への同意"
msgid "Contact Information"
msgstr "連絡先情報"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "営業にお問い合わせ"
@@ -3209,10 +3182,6 @@ msgstr "営業にお問い合わせ"
msgid "Contact us"
msgstr "お問い合わせ"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "コンテンツ"
@@ -3265,10 +3234,6 @@ msgstr "ドキュメントを表示して続行してください。"
msgid "Continue to login"
msgstr "ログインを続ける"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "受信者が文書の有効期限切れまでに署名を完了できる期間を設定します。有効期限後は、受信者は文書に署名できなくなります。"
@@ -5013,10 +4978,6 @@ msgstr "例: 100"
msgid "e.g. Resend (free plans)"
msgstr "例:Resend(無料プラン)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "ここにテキストを入力してください"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Enterprise"
@@ -6188,10 +6147,6 @@ msgstr "リンクを生成"
msgid "German"
msgstr "ドイツ語"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "管理"
msgid "Manage {0}'s profile"
msgstr "{0} のプロフィールを管理"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "組織向けのカスタムSSOログインポータルを管理します。"
@@ -7577,10 +7531,6 @@ msgstr "名前は必須です"
msgid "Name Settings"
msgstr "名前の設定"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "組織ロール"
msgid "Organisation Settings"
msgstr "組織設定"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "チームに追加するメンバーを少なくとも1人選択して
msgid "Please select how you'd like to receive your verification code."
msgstr "認証コードの受け取り方法を選択してください。"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "別のドメインをお試しください。"
@@ -8915,10 +8859,6 @@ msgstr "公開テンプレート"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "公開テンプレートは公開プロフィールに紐づきます。公開テンプレートを変更すると、公開プロフィールにも反映されます。"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "クイックアクション"
@@ -9247,10 +9187,6 @@ msgstr "リダイレクト中"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "レスポンスヘッダー"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "ドキュメント自体は厳重に機密扱いされ、共有されることはありませんのでご安心ください。強調されるのは署名体験のみです。あなただけの署名カードを共有して、署名をアピールしましょう。"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "アクセス制限"
@@ -10139,10 +10071,6 @@ msgstr "文書を送信"
msgid "Send Document"
msgstr "ドキュメントを送信"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "このメールアドレスを使用して、チームを代表してドキュメントを送信します"
@@ -10151,10 +10079,6 @@ msgstr "このメールアドレスを使用して、チームを代表してド
msgid "Send documents to recipients immediately"
msgstr "ドキュメントをすぐに受信者へ送信する"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "封筒を送信"
@@ -10201,14 +10125,6 @@ msgstr "送信者"
msgid "Sender reported"
msgstr "送信者を報告しました"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "リセットメールを送信中..."
@@ -10229,10 +10145,6 @@ msgstr "送信日時"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "セッションを取り消しました"
@@ -10338,7 +10250,6 @@ msgstr "割り当てを含む利用状況を表示する"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "署名済み"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "署名者"
@@ -10630,10 +10537,6 @@ msgstr "サインアップは現在無効になっているか、お使いのメ
msgid "Since {0}"
msgstr "{0} から"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "サイトバナー"
@@ -11234,7 +11137,6 @@ msgstr "チーム URL"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "ドキュメント無制限、API など"
msgid "Unlink"
msgstr "リンク解除"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "ピン留めを解除"
@@ -12956,10 +12846,6 @@ msgstr "アップグレード"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "<0>{0}</0> を {planName} にアップグレード"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "プランをアップグレードして、より多くのドキュメントをアップロードしましょう"
@@ -13944,11 +13830,6 @@ msgstr "おかえりなさい。あなたにまたお会いできて嬉しいで
msgid "Welcome back! Here's an overview of your account."
msgstr "お帰りなさい!アカウントの概要をご確認ください。"
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "{organisationName} へようこそ"
@@ -14026,10 +13907,6 @@ msgstr "同意の撤回"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "公開プロフィールに表示する説明文を入力してください"
@@ -15047,10 +14924,6 @@ msgstr "封筒を正常に送信しました。"
msgid "Your envelope has been resent successfully."
msgstr "封筒を正常に再送信しました。"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "あなたの名前"
-127
View File
@@ -312,12 +312,6 @@ msgstr "{0} 필드"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0}에서 \"{1}\" 문서에 대해 귀하께 {recipientActionVerb}하도록 초대했습니다."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "계정 연결 해제됨"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "확인"
@@ -2465,10 +2455,6 @@ msgstr "REM 단위의 테두리 반경 크기입니다(예: 0.5rem)."
msgid "Bottom"
msgstr "아래"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "브랜드 색상"
@@ -3002,14 +2988,6 @@ msgstr "가입을 차단할 이메일 도메인을 쉼표로 구분하여 입력
msgid "Communication"
msgstr "커뮤니케이션"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "모든 요금제와 기능을 자세히 비교합니다."
@@ -3196,11 +3174,6 @@ msgstr "전자 거래에 대한 동의"
msgid "Contact Information"
msgstr "연락처 정보"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "영업팀에 문의"
@@ -3209,10 +3182,6 @@ msgstr "영업팀에 문의"
msgid "Contact us"
msgstr "문의하기"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "콘텐츠"
@@ -3265,10 +3234,6 @@ msgstr "문서를 열람하여 계속 진행하세요."
msgid "Continue to login"
msgstr "로그인으로 이동"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "수신자가 문서가 만료되기 전에 서명을 완료할 수 있는 기간을 제어합니다. 만료 후에는 수신자가 더 이상 이 문서에 서명할 수 없습니다."
@@ -5013,10 +4978,6 @@ msgstr "예: 100"
msgid "e.g. Resend (free plans)"
msgstr "예: Resend(무료 플랜)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "여기에 텍스트를 입력하세요"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Enterprise"
@@ -6188,10 +6147,6 @@ msgstr "링크 생성"
msgid "German"
msgstr "독일어"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "관리"
msgid "Manage {0}'s profile"
msgstr "{0}의 프로필 관리"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "조직을 위한 사용자 정의 SSO 로그인 포털을 관리하세요."
@@ -7577,10 +7531,6 @@ msgstr "이름은 필수 항목입니다."
msgid "Name Settings"
msgstr "이름 설정"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "조직 역할"
msgid "Organisation Settings"
msgstr "조직 설정"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "팀에 추가할 구성원을 최소 한 명 이상 선택하세요."
msgid "Please select how you'd like to receive your verification code."
msgstr "인증 코드를 받을 방식을 선택하세요."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "다른 도메인을 시도해 주세요."
@@ -8915,10 +8859,6 @@ msgstr "공개 템플릿"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "공개 템플릿은 공개 프로필과 연결됩니다. 공개 템플릿을 수정하면 공개 프로필에도 반영됩니다."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "빠른 작업"
@@ -9247,10 +9187,6 @@ msgstr "리디렉션 중"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "응답 헤더"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "귀하의 문서는 철저히 비밀로 유지되며 절대 공유되지 않습니다. 강조되는 것은 귀하의 서명 경험뿐입니다. 개인화된 서명 카드를 공유해 서명을 보여 주세요!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "제한된 액세스"
@@ -10139,10 +10071,6 @@ msgstr "문서 보내기"
msgid "Send Document"
msgstr "문서 보내기"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "이 이메일 주소를 사용하여 팀을 대신해 문서를 보냅니다."
@@ -10151,10 +10079,6 @@ msgstr "이 이메일 주소를 사용하여 팀을 대신해 문서를 보냅
msgid "Send documents to recipients immediately"
msgstr "생성된 문서를 즉시 수신자에게 전송"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "봉투 보내기"
@@ -10201,14 +10125,6 @@ msgstr "보낸 사람"
msgid "Sender reported"
msgstr "발신자가 신고되었습니다"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "재설정 이메일 전송 중..."
@@ -10229,10 +10145,6 @@ msgstr "발송됨"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "세션이 해지되었습니다."
@@ -10338,7 +10250,6 @@ msgstr "할당량과 함께 사용량 표시하기"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "서명됨"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "서명자"
@@ -10630,10 +10537,6 @@ msgstr "회원가입이 현재 비활성화되어 있거나, 사용자의 이메
msgid "Since {0}"
msgstr "{0} 이후"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "사이트 배너"
@@ -11234,7 +11137,6 @@ msgstr "팀 URL"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "무제한 문서, API 등"
msgid "Unlink"
msgstr "연결 해제"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "고정 해제"
@@ -12956,10 +12846,6 @@ msgstr "업그레이드"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "<0>{0}</0>을(를) {planName} 요금제로 업그레이드"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "더 많은 문서를 업로드하려면 요금제를 업그레이드하세요."
@@ -13944,11 +13830,6 @@ msgstr "다시 오신 것을 환영합니다. 함께하게 되어 기쁩니다."
msgid "Welcome back! Here's an overview of your account."
msgstr "다시 오신 것을 환영합니다! 계정 개요를 확인해 보세요."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "{organisationName}에 오신 것을 환영합니다"
@@ -14026,10 +13907,6 @@ msgstr "동의 철회"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "공개 프로필에 표시될 설명을 작성하세요."
@@ -15047,10 +14924,6 @@ msgstr "봉투가 성공적으로 배포되었습니다."
msgid "Your envelope has been resent successfully."
msgstr "봉투가 성공적으로 다시 전송되었습니다."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "이름"
-127
View File
@@ -312,12 +312,6 @@ msgstr "{0}-veld"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} heeft je uitgenodigd om het document \"{1}\" te {recipientActionVerb}."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "Account ontkoppeld"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Kennisgeving"
@@ -2465,10 +2455,6 @@ msgstr "Grootte van afgeronde hoeken in REM-eenheden (bijv. 0.5rem)."
msgid "Bottom"
msgstr "Onder"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "Merkkleuren"
@@ -3002,14 +2988,6 @@ msgstr "Komma-gescheiden lijst met emaildomeinen die voor registratie moeten
msgid "Communication"
msgstr "Communicatie"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Vergelijk alle abonnementen en functies in detail"
@@ -3196,11 +3174,6 @@ msgstr "Toestemming voor elektronische transacties"
msgid "Contact Information"
msgstr "Contactgegevens"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Neem hier contact op met sales"
@@ -3209,10 +3182,6 @@ msgstr "Neem hier contact op met sales"
msgid "Contact us"
msgstr "Neem contact met ons op"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Inhoud"
@@ -3265,10 +3234,6 @@ msgstr "Ga verder door het document te bekijken."
msgid "Continue to login"
msgstr "Doorgaan naar inloggen"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "Bepaalt hoe lang ontvangers de tijd hebben om te ondertekenen voordat het document verloopt. Na de vervaldatum kunnen ontvangers het document niet meer ondertekenen."
@@ -5013,10 +4978,6 @@ msgstr "Bijv. 100"
msgid "e.g. Resend (free plans)"
msgstr "bijv. Resend (gratis abonnementen)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "Voer hier je tekst in"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Enterprise"
@@ -6188,10 +6147,6 @@ msgstr "Links genereren"
msgid "German"
msgstr "Duits"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "Beheren"
msgid "Manage {0}'s profile"
msgstr "Profiel van {0} beheren"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Beheer een aangepast SSO-inlogportaal voor uw organisatie."
@@ -7577,10 +7531,6 @@ msgstr "Naam is verplicht"
msgid "Name Settings"
msgstr "Naam-instellingen"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "Organisatierol"
msgid "Organisation Settings"
msgstr "Organisatie-instellingen"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "Selecteer minstens één lid om aan het team toe te voegen."
msgid "Please select how you'd like to receive your verification code."
msgstr "Selecteer hoe u uw verificatiecode wilt ontvangen."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Probeer een ander domein."
@@ -8915,10 +8859,6 @@ msgstr "Publieke sjabloon"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "Openbare sjablonen zijn gekoppeld aan je openbare profiel. Alle wijzigingen aan openbare sjablonen worden ook zichtbaar in je openbare profiel."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Snelle acties"
@@ -9247,10 +9187,6 @@ msgstr "Doorsturen"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "Responsheaders"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Wees gerust, je document is strikt vertrouwelijk en wordt nooit gedeeld. Alleen je ondertekeningservaring wordt uitgelicht. Deel je gepersonaliseerde ondertekeningskaart om je handtekening te laten zien!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Beperkte toegang"
@@ -10139,10 +10071,6 @@ msgstr "Document verzenden"
msgid "Send Document"
msgstr "Document verzenden"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Documenten versturen namens het team met dit e-mailadres"
@@ -10151,10 +10079,6 @@ msgstr "Documenten versturen namens het team met dit e-mailadres"
msgid "Send documents to recipients immediately"
msgstr "Documenten direct naar ontvangers verzenden"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "Envelope verzenden"
@@ -10201,14 +10125,6 @@ msgstr "Afzender"
msgid "Sender reported"
msgstr "Afzender gerapporteerd"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Resetmail wordt verzonden..."
@@ -10229,10 +10145,6 @@ msgstr "Verzonden"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Sessie ingetrokken"
@@ -10338,7 +10250,6 @@ msgstr "Gebruik met quota weergeven"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Ondertekend"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Ondertekenaar"
@@ -10630,10 +10537,6 @@ msgstr "Registratie is momenteel uitgeschakeld of niet beschikbaar voor jouw e
msgid "Since {0}"
msgstr "Sinds {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Sitebanner"
@@ -11234,7 +11137,6 @@ msgstr "TeamURL"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "Onbeperkte documenten, API en meer"
msgid "Unlink"
msgstr "Ontkoppelen"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Losmaken"
@@ -12956,10 +12846,6 @@ msgstr "Upgraden"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "Upgrade <0>{0}</0> naar {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Upgrade je abonnement om meer documenten te uploaden"
@@ -13944,11 +13830,6 @@ msgstr "Welkom terug, we boffen met je."
msgid "Welcome back! Here's an overview of your account."
msgstr "Welkom terug! Hier is een overzicht van je account."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Welkom bij {organisationName}"
@@ -14026,10 +13907,6 @@ msgstr "Toestemming intrekken"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Schrijf een beschrijving die op je openbare profiel wordt weergegeven"
@@ -15047,10 +14924,6 @@ msgstr "Uw envelop is succesvol verzonden."
msgid "Your envelope has been resent successfully."
msgstr "Uw envelop is succesvol opnieuw verzonden."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Uw naam"
File diff suppressed because it is too large Load Diff
-127
View File
@@ -307,12 +307,6 @@ msgstr ""
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} convidou você para {recipientActionVerb} o documento \"{1}\"."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1222,10 +1216,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "Conta desvinculada"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "Reconhecimento"
@@ -2460,10 +2450,6 @@ msgstr ""
msgid "Bottom"
msgstr "Inferior"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr ""
@@ -2997,14 +2983,6 @@ msgstr ""
msgid "Communication"
msgstr "Comunicação"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "Compare todos os planos e recursos em detalhes"
@@ -3191,11 +3169,6 @@ msgstr "Consentimento para Transações Eletrônicas"
msgid "Contact Information"
msgstr "Informações de Contato"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "Contate vendas aqui"
@@ -3204,10 +3177,6 @@ msgstr "Contate vendas aqui"
msgid "Contact us"
msgstr "Contate-nos"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "Conteúdo"
@@ -3260,10 +3229,6 @@ msgstr "Continue visualizando o documento."
msgid "Continue to login"
msgstr "Continuar para o login"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr ""
@@ -5008,10 +4973,6 @@ msgstr "Ex: 100"
msgid "e.g. Resend (free plans)"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5530,8 +5491,6 @@ msgid "Enter your text here"
msgstr "Digite seu texto aqui"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "Empresarial"
@@ -6183,10 +6142,6 @@ msgstr "Gerar Links"
msgid "German"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7145,7 +7100,6 @@ msgstr "Gerenciar"
msgid "Manage {0}'s profile"
msgstr "Gerenciar perfil de {0}"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "Gerencie um portal de login SSO personalizado para sua organização."
@@ -7572,10 +7526,6 @@ msgstr "O nome é obrigatório"
msgid "Name Settings"
msgstr "Configurações de Nome"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8172,7 +8122,6 @@ msgstr "Função na Organização"
msgid "Organisation Settings"
msgstr "Configurações da Organização"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8719,11 +8668,6 @@ msgstr ""
msgid "Please select how you'd like to receive your verification code."
msgstr "Por favor, selecione como você gostaria de receber seu código de verificação."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "Por favor, tente um domínio diferente."
@@ -8910,10 +8854,6 @@ msgstr "Modelo Público"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "Modelos públicos estão conectados ao seu perfil público. Quaisquer modificações em modelos públicos também aparecerão no seu perfil público."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "Ações Rápidas"
@@ -9242,10 +9182,6 @@ msgstr "Redirecionando"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9614,10 +9550,6 @@ msgstr "Cabeçalhos de Resposta"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "Fique tranquilo, seu documento é estritamente confidencial e nunca será compartilhado. Apenas sua experiência de assinatura será destacada. Compartilhe seu cartão de assinatura personalizado para mostrar sua assinatura!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "Acesso Restrito"
@@ -10134,10 +10066,6 @@ msgstr "Enviar documento"
msgid "Send Document"
msgstr "Enviar Documento"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "Enviar documentos em nome da equipe usando o endereço de e-mail"
@@ -10146,10 +10074,6 @@ msgstr "Enviar documentos em nome da equipe usando o endereço de e-mail"
msgid "Send documents to recipients immediately"
msgstr "Enviar documentos para destinatários imediatamente"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr ""
@@ -10196,14 +10120,6 @@ msgstr "Remetente"
msgid "Sender reported"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "Enviando E-mail de Redefinição..."
@@ -10224,10 +10140,6 @@ msgstr "Enviado"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "Sessão revogada"
@@ -10333,7 +10245,6 @@ msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10505,10 +10416,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "Assinado"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "Signatário"
@@ -10625,10 +10532,6 @@ msgstr ""
msgid "Since {0}"
msgstr "Desde {0}"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "Banner do Site"
@@ -11229,7 +11132,6 @@ msgstr "URL da Equipe"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12766,18 +12668,6 @@ msgstr "Documentos ilimitados, API e mais"
msgid "Unlink"
msgstr "Desvincular"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "Desafixar"
@@ -12951,10 +12841,6 @@ msgstr "Fazer upgrade"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "Fazer upgrade de <0>{0}</0> para {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "Faça upgrade do seu plano para enviar mais documentos"
@@ -13939,11 +13825,6 @@ msgstr "Bem-vindo de volta, temos sorte em ter você."
msgid "Welcome back! Here's an overview of your account."
msgstr "Bem-vindo de volta! Aqui está uma visão geral da sua conta."
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "Bem-vindo à {organisationName}"
@@ -14021,10 +13902,6 @@ msgstr "Retirada de Consentimento"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "Escreva uma descrição para exibir em seu perfil público"
@@ -15042,10 +14919,6 @@ msgstr "Seu envelope foi distribuído com sucesso."
msgid "Your envelope has been resent successfully."
msgstr "Seu envelope foi reenviado com sucesso."
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "Seu Nome"
-127
View File
@@ -312,12 +312,6 @@ msgstr "{0} 字段"
msgid "{0} has invited you to {recipientActionVerb} the document \"{1}\"."
msgstr "{0} 已邀请您 {recipientActionVerb} 文档“{1}”。"
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "{0} has invited you to sign this document."
msgstr ""
#. placeholder {0}: team.name
#: packages/lib/jobs/definitions/emails/send-signing-email.handler.ts
msgid "{0} invited you to {recipientActionVerb} a document"
@@ -1227,10 +1221,6 @@ msgstr ""
msgid "Account unlinked"
msgstr "账户已取消关联"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Accounts are automatically added to your organisation on sign-in"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
msgid "Acknowledgment"
msgstr "确认"
@@ -2465,10 +2455,6 @@ msgstr "边框圆角大小,以 REM 为单位(例如 0.5rem)。"
msgid "Bottom"
msgstr "底部对齐"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Brand accent"
msgstr ""
#: apps/remix/app/components/forms/branding-preferences-form.tsx
msgid "Brand Colours"
msgstr "品牌颜色"
@@ -3002,14 +2988,6 @@ msgstr "用逗号分隔的邮箱域名列表,这些域名将被禁止注册。
msgid "Communication"
msgstr "通信"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Company details and website in email footers"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Compare all plans and features in detail"
msgstr "详细比较所有套餐和功能"
@@ -3196,11 +3174,6 @@ msgstr "同意以电子方式进行交易"
msgid "Contact Information"
msgstr "联系信息"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Contact Sales"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
msgid "Contact sales here"
msgstr "在此联系销售"
@@ -3209,10 +3182,6 @@ msgstr "在此联系销售"
msgid "Contact us"
msgstr "联系我们"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Contact your organisation owner to upgrade plans."
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Content"
msgstr "内容"
@@ -3265,10 +3234,6 @@ msgstr "继续查看文档。"
msgid "Continue to login"
msgstr "继续登录"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Continue with SSO"
msgstr ""
#: apps/remix/app/components/forms/reminder-preferences-form.tsx
msgid "Controls how long recipients have to complete signing before the document expires. After expiration, recipients can no longer sign the document."
msgstr "控制收件人在文档过期前完成签署的时间长度。过期后,收件人将无法再签署该文档。"
@@ -5013,10 +4978,6 @@ msgstr "例如:100"
msgid "e.g. Resend (free plans)"
msgstr "例如:Resend(免费套餐)"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Easy DNS setup with auto-generated DKIM and SPF records"
msgstr ""
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/document/document-page-view-dropdown.tsx
#: apps/remix/app/components/tables/admin-dashboard-users-table.tsx
@@ -5535,8 +5496,6 @@ msgid "Enter your text here"
msgstr "在此输入你的文本"
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Enterprise"
msgstr "企业版"
@@ -6188,10 +6147,6 @@ msgstr "生成链接"
msgid "German"
msgstr "德语"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Give your members a dedicated single sign-on portal. The SSO portal is available on the Enterprise plan."
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Global"
@@ -7150,7 +7105,6 @@ msgstr "管理"
msgid "Manage {0}'s profile"
msgstr "管理 {0} 的资料"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Manage a custom SSO login portal for your organisation."
msgstr "为您的组织管理自定义 SSO 登录门户。"
@@ -7577,10 +7531,6 @@ msgstr "名称为必填项"
msgid "Name Settings"
msgstr "姓名设置"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Named senders with defaults per team, template or document"
msgstr ""
#: apps/remix/app/components/general/app-command-menu.tsx
msgid "Navigate"
msgstr ""
@@ -8177,7 +8127,6 @@ msgstr "组织角色"
msgid "Organisation Settings"
msgstr "组织设置"
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx
msgid "Organisation SSO Portal"
@@ -8724,11 +8673,6 @@ msgstr "请至少选择一名成员添加到团队。"
msgid "Please select how you'd like to receive your verification code."
msgstr "请选择您希望接收验证码的方式。"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Please sign: Example.pdf"
msgstr ""
#: apps/remix/app/components/dialogs/organisation-email-domain-create-dialog.tsx
msgid "Please try a different domain."
msgstr "请尝试使用其他域名。"
@@ -8915,10 +8859,6 @@ msgstr "公共模板"
msgid "Public templates are connected to your public profile. Any modifications to public templates will also appear in your public profile."
msgstr "公开模板与公开资料相关联。对公开模板的任何修改也会显示在你的公开资料中。"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Put your own brand on every document you send. Branding is available on the Teams plan and above."
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Quick Actions"
msgstr "快速操作"
@@ -9247,10 +9187,6 @@ msgstr "正在重定向"
msgid "Redirecting to {0}..."
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Redirecting to your identity provider"
msgstr ""
#: apps/remix/app/components/forms/signup.tsx
#: apps/remix/app/components/general/claim-account.tsx
msgid "Registration Successful"
@@ -9619,10 +9555,6 @@ msgstr "响应头"
msgid "Rest assured, your document is strictly confidential and will never be shared. Only your signing experience will be highlighted. Share your personalized signing card to showcase your signature!"
msgstr "请放心,您的文档将被严格保密,绝不会被分享。只有您的签署体验会被展示。分享您的个性化签署卡片,展示您的签名!"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Restrict sign-ins by email domain and choose the default role"
msgstr ""
#: apps/remix/app/components/general/organisations/organisation-billing-banner.tsx
msgid "Restricted Access"
msgstr "受限访问"
@@ -10139,10 +10071,6 @@ msgstr "发送文档"
msgid "Send Document"
msgstr "发送文档"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send documents from your own domain. Email domains are available on the Enterprise plan."
msgstr ""
#: packages/email/templates/confirm-team-email.tsx
msgid "Send documents on behalf of the team using the email address"
msgstr "以此邮箱地址代表团队发送文档"
@@ -10151,10 +10079,6 @@ msgstr "以此邮箱地址代表团队发送文档"
msgid "Send documents to recipients immediately"
msgstr "立即将文档发送给收件人"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Send emails to recipients from your domain"
msgstr ""
#: apps/remix/app/components/general/envelope-editor/envelope-editor.tsx
msgid "Send Envelope"
msgstr "发送信封"
@@ -10201,14 +10125,6 @@ msgstr "发件人"
msgid "Sender reported"
msgstr "已举报发件人"
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from app.documenso.com"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Sending from your domain"
msgstr ""
#: apps/remix/app/components/forms/forgot-password.tsx
msgid "Sending Reset Email..."
msgstr "正在发送重置邮件..."
@@ -10229,10 +10145,6 @@ msgstr "已发送"
msgid "Sent this period"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Separate branding per team"
msgstr ""
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
msgid "Session revoked"
msgstr "会话已撤销"
@@ -10338,7 +10250,6 @@ msgstr "显示使用情况和配额"
#: apps/remix/app/components/general/document-signing/document-signing-name-field.tsx
#: apps/remix/app/components/general/document-signing/document-signing-signature-field.tsx
#: apps/remix/app/components/general/document/document-page-view-button.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/user-profile-skeleton.tsx
#: apps/remix/app/components/general/user-profile-timur.tsx
#: apps/remix/app/components/tables/documents-table-action-button.tsx
@@ -10510,10 +10421,6 @@ msgctxt "Signed document (adjective)"
msgid "Signed"
msgstr "已签署"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Signed in"
msgstr ""
#: apps/remix/app/components/general/envelope-signing/envelope-signer-header.tsx
msgid "Signer"
msgstr "签署人"
@@ -10630,10 +10537,6 @@ msgstr "当前已禁用注册,或您的电子邮箱域名不支持注册。"
msgid "Since {0}"
msgstr "自 {0} 起"
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Single sign-on"
msgstr ""
#: apps/remix/app/components/general/admin-site-banner-section.tsx
msgid "Site Banner"
msgstr "站点横幅"
@@ -11234,7 +11137,6 @@ msgstr "团队 URL"
#: apps/remix/app/components/general/org-menu-switcher.tsx
#: apps/remix/app/components/general/organisation-usage-panel.tsx
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
#: apps/remix/app/components/general/use-admin-search-categories.ts
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
#: apps/remix/app/components/tables/organisation-insights-table.tsx
@@ -12771,18 +12673,6 @@ msgstr "无限文档、API 等更多功能"
msgid "Unlink"
msgstr "取消关联"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Unlock Branding Preferences"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx
msgid "Unlock Email Domains"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Unlock the Organisation SSO Portal"
msgstr ""
#: apps/remix/app/components/general/folder/folder-card.tsx
msgid "Unpin"
msgstr "取消固定"
@@ -12956,10 +12846,6 @@ msgstr "升级"
msgid "Upgrade <0>{0}</0> to {planName}"
msgstr "将 <0>{0}</0> 升级为 {planName}"
#: apps/remix/app/components/general/settings-upsell/settings-upsell-card.tsx
msgid "Upgrade Plan"
msgstr ""
#: apps/remix/app/components/general/envelope/envelope-drop-zone-wrapper.tsx
msgid "Upgrade your plan to upload more documents"
msgstr "升级您的套餐以上传更多文档"
@@ -13944,11 +13830,6 @@ msgstr "欢迎回来,我们很高兴再次见到你。"
msgid "Welcome back! Here's an overview of your account."
msgstr "欢迎回来!以下是您的账户概览。"
#. placeholder {0}: organisation.name
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Welcome to {0}"
msgstr ""
#: apps/remix/app/routes/_unauthenticated+/o.$orgUrl.signin.tsx
msgid "Welcome to {organisationName}"
msgstr "欢迎加入 {organisationName}"
@@ -14026,10 +13907,6 @@ msgstr "撤回同意"
msgid "Within limit"
msgstr ""
#: apps/remix/app/components/general/settings-upsell/sso-portal-upsell.tsx
msgid "Works with any OIDC provider — Okta, Entra ID, Google and more"
msgstr ""
#: apps/remix/app/components/forms/public-profile-form.tsx
msgid "Write a description to display on your public profile"
msgstr "撰写将在您的公共主页上展示的简介"
@@ -15047,10 +14924,6 @@ msgstr "您的信封已成功分发。"
msgid "Your envelope has been resent successfully."
msgstr "您的信封已成功重新发送。"
#: apps/remix/app/components/general/settings-upsell/branding-upsell.tsx
msgid "Your logo on signing pages and emails"
msgstr ""
#: apps/remix/app/components/general/document-signing/document-signing-complete-dialog.tsx
msgid "Your Name"
msgstr "您的姓名"
+2 -2
View File
@@ -1,10 +1,10 @@
/* eslint-disable turbo/no-undeclared-env-vars */
import { NEXT_PUBLIC_WEBAPP_URL, getBasePath } from '../constants/app';
import { NEXT_PUBLIC_WEBAPP_URL } from '../constants/app';
import { env } from '../utils/env';
export const getBaseUrl = () => {
if (typeof window !== 'undefined') {
return getBasePath();
return '';
}
const webAppUrl = NEXT_PUBLIC_WEBAPP_URL();
+1 -3
View File
@@ -2,8 +2,6 @@ import { DocumentDataType } from '@prisma/client';
import { base64 } from '@scure/base';
import { match } from 'ts-pattern';
import { formatPath } from '../../constants/app';
export type GetFileOptions = {
type: DocumentDataType;
data: string;
@@ -38,7 +36,7 @@ const getFileFromBytes64 = (data: string) => {
};
const getFileFromS3 = async (key: string) => {
const getPresignedUrlResponse = await fetch(formatPath('/api/files/presigned-get-url'), {
const getPresignedUrlResponse = await fetch(`/api/files/presigned-get-url`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
+1 -2
View File
@@ -1,6 +1,5 @@
import type { TUploadPdfResponse } from '@documenso/remix/server/api/files/files.types';
import { formatPath } from '../../constants/app';
import { AppError } from '../../errors/app-error';
type File = {
@@ -39,7 +38,7 @@ export const putPdfFile = async (file: File, options?: PutFileOptions) => {
formData.append('file', properFile);
const response = await fetch(formatPath('/api/files/upload-pdf'), {
const response = await fetch('/api/files/upload-pdf', {
method: 'POST',
headers: buildUploadAuthHeaders(options),
body: formData,
+3 -27
View File
@@ -1,15 +1,4 @@
import { getBasePath, NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
/**
* The origin of the web app, ignoring any sub-path NEXT_PUBLIC_WEBAPP_URL carries.
*/
const getWebAppOrigin = () => {
try {
return new URL(NEXT_PUBLIC_WEBAPP_URL()).origin;
} catch {
return NEXT_PUBLIC_WEBAPP_URL();
}
};
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
export const isValidReturnTo = (returnTo?: string) => {
if (!returnTo) {
@@ -21,10 +10,7 @@ export const isValidReturnTo = (returnTo?: string) => {
const decodedReturnTo = decodeURIComponent(returnTo);
const returnToUrl = new URL(decodedReturnTo, NEXT_PUBLIC_WEBAPP_URL());
// Compare against the origin, not the raw env value: when the app is served
// under a sub-path NEXT_PUBLIC_WEBAPP_URL is e.g. "https://host/ESign", which
// never equals a URL's origin ("https://host").
if (returnToUrl.origin !== getWebAppOrigin()) {
if (returnToUrl.origin !== NEXT_PUBLIC_WEBAPP_URL()) {
return false;
}
@@ -44,17 +30,7 @@ export const normalizeReturnTo = (returnTo?: string) => {
const decodedReturnTo = decodeURIComponent(returnTo);
const returnToUrl = new URL(decodedReturnTo, NEXT_PUBLIC_WEBAPP_URL());
const basePath = getBasePath();
let pathname = returnToUrl.pathname;
// A root-relative returnTo ("/inbox") resolves to a pathname without the
// sub-path, so re-apply it when it is missing.
if (basePath && pathname !== basePath && !pathname.startsWith(`${basePath}/`)) {
pathname = `${basePath}${pathname}`;
}
return `${pathname}${returnToUrl.search}${returnToUrl.hash}`;
return `${returnToUrl.pathname}${returnToUrl.search}${returnToUrl.hash}`;
} catch {
return undefined;
}
+3 -4
View File
@@ -18,7 +18,7 @@ import {
} from 'lucide-react';
import type { ComponentType } from 'react';
import { FaUsers } from 'react-icons/fa6';
import { IS_BILLING_ENABLED, IS_DOCUMENSO_CLOUD } from '../constants/app';
import { IS_BILLING_ENABLED } from '../constants/app';
import { canExecuteOrganisationAction } from './organisations';
import { canExecuteTeamAction } from './teams';
@@ -73,7 +73,6 @@ export const getSettingsNavGroups = ({
hasManageableBillingOrgs,
}: GetSettingsNavGroupsArgs): SettingsNavGroups => {
const isBillingEnabled = IS_BILLING_ENABLED();
const isDocumensoCloud = IS_DOCUMENSO_CLOUD();
const canManageOrg =
organisation !== null && canExecuteOrganisationAction('MANAGE_ORGANISATION', organisation.currentOrganisationRole);
@@ -127,7 +126,7 @@ export const getSettingsNavGroups = ({
label: msg`Certificates`,
isSubNav: true,
},
...((isBillingEnabled && organisation.organisationClaim.flags.emailDomains) || isDocumensoCloud
...(isBillingEnabled && organisation.organisationClaim.flags.emailDomains
? [
{
key: 'email-domains',
@@ -155,7 +154,7 @@ export const getSettingsNavGroups = ({
label: msg`Groups`,
icon: GroupIcon,
},
...((isBillingEnabled && organisation.organisationClaim.flags.authenticationPortal) || isDocumensoCloud
...(isBillingEnabled && organisation.organisationClaim.flags.authenticationPortal
? [
{
key: 'sso',
@@ -1,4 +1,3 @@
import { formatPath } from '@documenso/lib/constants/app';
import { SUPPORTED_LANGUAGES } from '@documenso/lib/constants/i18n';
import { dynamicActivate } from '@documenso/lib/utils/i18n';
import { cn } from '@documenso/ui/lib/utils';
@@ -24,7 +23,7 @@ export const LanguageSwitcherDialog = ({ open, setOpen }: LanguageSwitcherDialog
formData.append('lang', lang);
await fetch(formatPath('/api/locale'), {
await fetch('/api/locale', {
method: 'post',
body: formData,
});
+1 -1
View File
@@ -62,7 +62,7 @@
"clsx": "^1.2.1",
"cmdk": "^0.2.1",
"colord": "^2.9.3",
"framer-motion": "^12.43.0",
"framer-motion": "^12.23.24",
"lucide-react": "^0.554.0",
"luxon": "^3.7.2",
"pdfjs-dist": "5.4.296",