@greatapps/common 1.1.745 → 1.1.746
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/modals/AccountFrozenModal.mjs +35 -14
- package/dist/components/modals/AccountFrozenModal.mjs.map +1 -1
- package/dist/components/navigation/SubscriptionBanner.mjs +6 -3
- package/dist/components/navigation/SubscriptionBanner.mjs.map +1 -1
- package/dist/i18n/messages/en-us.mjs +20 -6
- package/dist/i18n/messages/en-us.mjs.map +1 -1
- package/dist/i18n/messages/es-es.mjs +18 -4
- package/dist/i18n/messages/es-es.mjs.map +1 -1
- package/dist/i18n/messages/pt-br.mjs +18 -4
- package/dist/i18n/messages/pt-br.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/modals/AccountFrozenModal.tsx +61 -13
- package/src/components/navigation/SubscriptionBanner.tsx +14 -3
- package/src/i18n/messages/en-us.ts +20 -6
- package/src/i18n/messages/es-es.ts +18 -4
- package/src/i18n/messages/pt-br.ts +18 -4
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { IconLock } from "@tabler/icons-react";
|
|
3
|
+
import { IconLock, IconAlertTriangle } from "@tabler/icons-react";
|
|
4
4
|
import { useTranslations } from "next-intl";
|
|
5
5
|
import { Button } from "../ui/buttons/Button";
|
|
6
|
+
import { Separator } from "../ui/data-display/Separator";
|
|
6
7
|
import {
|
|
7
8
|
Dialog,
|
|
8
9
|
DialogContent,
|
|
@@ -12,34 +13,54 @@ import {
|
|
|
12
13
|
} from "../ui/overlay/Dialog";
|
|
13
14
|
import { useWhitelabelUrls, useExternalContracting } from "../../providers/whitelabel.provider";
|
|
14
15
|
import { useModalManager } from "../../store/useModalManager";
|
|
16
|
+
import { formatShortDate } from "../../infra/utils/date";
|
|
17
|
+
const BLOCKED_RESOURCE_KEYS = [
|
|
18
|
+
"pages",
|
|
19
|
+
"projects",
|
|
20
|
+
"leadsExport",
|
|
21
|
+
"pageSettings",
|
|
22
|
+
"domains",
|
|
23
|
+
"users",
|
|
24
|
+
"abTests",
|
|
25
|
+
"uploads",
|
|
26
|
+
"integrations"
|
|
27
|
+
];
|
|
15
28
|
function AccountFrozenModal() {
|
|
16
29
|
const translate = useTranslations();
|
|
17
|
-
const { activeModal, closeModal } = useModalManager();
|
|
30
|
+
const { activeModal, closeModal, modalData } = useModalManager();
|
|
18
31
|
const isOpen = activeModal === "accountFrozenModal";
|
|
19
32
|
const { accountsUrl } = useWhitelabelUrls();
|
|
20
33
|
const { redirectToExternal } = useExternalContracting();
|
|
21
|
-
const
|
|
22
|
-
const
|
|
34
|
+
const freezeDate = modalData?.freezeDate ?? null;
|
|
35
|
+
const isWarning = Boolean(freezeDate);
|
|
36
|
+
const title = isWarning ? translate("common.subscription.frozen.modal.warningTitle", {
|
|
37
|
+
freezeDate: formatShortDate(freezeDate ? new Date(freezeDate) : null)
|
|
38
|
+
}) : translate("common.subscription.frozen.modal.title");
|
|
39
|
+
const description = isWarning ? translate("common.subscription.frozen.modal.warningDescription") : translate("common.subscription.frozen.modal.description");
|
|
23
40
|
const handleRegularize = () => {
|
|
24
41
|
if (redirectToExternal("plans")) return;
|
|
25
42
|
window.location.href = `${accountsUrl}/subscriptions`;
|
|
26
43
|
};
|
|
27
44
|
return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: () => closeModal(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "flex flex-col p-0 gap-0 w-full md:w-[410px] lg:w-[410px]", children: [
|
|
28
45
|
/* @__PURE__ */ jsxs(DialogHeader, { className: "gap-3 text-left p-5", children: [
|
|
29
|
-
/* @__PURE__ */ jsx(
|
|
46
|
+
/* @__PURE__ */ jsx(
|
|
47
|
+
"div",
|
|
48
|
+
{
|
|
49
|
+
className: `flex items-center justify-center w-10 h-10 rounded-lg ${isWarning ? "bg-orange-50" : "bg-zinc-50"}`,
|
|
50
|
+
children: isWarning ? /* @__PURE__ */ jsx(IconAlertTriangle, { size: 20, className: "text-orange-500" }) : /* @__PURE__ */ jsx(IconLock, { size: 24, className: "text-zinc-950" })
|
|
51
|
+
}
|
|
52
|
+
),
|
|
30
53
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
31
54
|
/* @__PURE__ */ jsx(DialogTitle, { className: "paragraph-medium-semibold text-zinc-950", children: title }),
|
|
32
|
-
/* @__PURE__ */ jsx(DialogDescription, { className: "paragraph-small-regular text-zinc-600", children:
|
|
55
|
+
/* @__PURE__ */ jsx(DialogDescription, { className: "paragraph-small-regular text-zinc-600", asChild: true, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
56
|
+
/* @__PURE__ */ jsx("p", { children: description }),
|
|
57
|
+
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5 list-disc pl-4", children: BLOCKED_RESOURCE_KEYS.map((key) => /* @__PURE__ */ jsx("li", { children: translate(`common.subscription.frozen.modal.resources.${key}`) }, key)) }),
|
|
58
|
+
/* @__PURE__ */ jsx("p", { children: translate("common.subscription.frozen.modal.keepsWorking") })
|
|
59
|
+
] }) })
|
|
33
60
|
] })
|
|
34
61
|
] }),
|
|
35
|
-
/* @__PURE__ */ jsx(
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
className: "w-fit h-10!",
|
|
39
|
-
onClick: handleRegularize,
|
|
40
|
-
children: translate("common.subscription.frozen.modal.cta")
|
|
41
|
-
}
|
|
42
|
-
) })
|
|
62
|
+
/* @__PURE__ */ jsx(Separator, {}),
|
|
63
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 p-5", children: /* @__PURE__ */ jsx(Button, { className: "w-fit h-10!", onClick: handleRegularize, children: translate("common.subscription.frozen.modal.cta") }) })
|
|
43
64
|
] }) });
|
|
44
65
|
}
|
|
45
66
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/modals/AccountFrozenModal.tsx"],"sourcesContent":["\"use client\";\n\nimport { IconLock } from '@tabler/icons-react';\nimport { useTranslations } from 'next-intl';\nimport { Button } from '../ui/buttons/Button';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '../ui/overlay/Dialog';\nimport { useWhitelabelUrls, useExternalContracting } from '../../providers/whitelabel.provider';\nimport { useModalManager } from '../../store/useModalManager';\n\nexport default function AccountFrozenModal() {\n const translate = useTranslations();\n const { activeModal, closeModal } = useModalManager();\n const isOpen = activeModal === 'accountFrozenModal';\n const { accountsUrl } = useWhitelabelUrls();\n const { redirectToExternal } = useExternalContracting();\n\n const title = translate('common.subscription.frozen.modal.title');\n const description = translate('common.subscription.frozen.modal.description');\n\n const handleRegularize = () => {\n if (redirectToExternal('plans')) return;\n window.location.href = `${accountsUrl}/subscriptions`;\n };\n\n return (\n <Dialog open={isOpen} onOpenChange={() => closeModal()}>\n <DialogContent className=\"flex flex-col p-0 gap-0 w-full md:w-[410px] lg:w-[410px]\">\n <DialogHeader className=\"gap-3 text-left p-5\">\n <div
|
|
1
|
+
{"version":3,"sources":["../../../src/components/modals/AccountFrozenModal.tsx"],"sourcesContent":["\"use client\";\n\nimport { IconLock, IconAlertTriangle } from '@tabler/icons-react';\nimport { useTranslations } from 'next-intl';\nimport { Button } from '../ui/buttons/Button';\nimport { Separator } from '../ui/data-display/Separator';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '../ui/overlay/Dialog';\nimport { useWhitelabelUrls, useExternalContracting } from '../../providers/whitelabel.provider';\nimport { useModalManager } from '../../store/useModalManager';\nimport { formatShortDate } from '../../infra/utils/date';\n\n/* Lista do que o congelamento tira, na ordem do card. O texto mora no catálogo. */\nconst BLOCKED_RESOURCE_KEYS = [\n 'pages',\n 'projects',\n 'leadsExport',\n 'pageSettings',\n 'domains',\n 'users',\n 'abTests',\n 'uploads',\n 'integrations',\n] as const;\n\n/* `freezeDate` no data = ainda VAI congelar (véspera); sem ele = já congelado. As duas\n * variantes listam os mesmos recursos: o ponto do \"Detalhes\" no banner é o usuário saber o\n * que perde ANTES de perder. */\ninterface FrozenModalData {\n freezeDate?: Date | string | null;\n}\n\nexport default function AccountFrozenModal() {\n const translate = useTranslations();\n const { activeModal, closeModal, modalData } = useModalManager();\n const isOpen = activeModal === 'accountFrozenModal';\n const { accountsUrl } = useWhitelabelUrls();\n const { redirectToExternal } = useExternalContracting();\n\n const freezeDate = (modalData as FrozenModalData | undefined)?.freezeDate ?? null;\n const isWarning = Boolean(freezeDate);\n\n const title = isWarning\n ? translate('common.subscription.frozen.modal.warningTitle', {\n freezeDate: formatShortDate(freezeDate ? new Date(freezeDate) : null),\n })\n : translate('common.subscription.frozen.modal.title');\n\n const description = isWarning\n ? translate('common.subscription.frozen.modal.warningDescription')\n : translate('common.subscription.frozen.modal.description');\n\n const handleRegularize = () => {\n if (redirectToExternal('plans')) return;\n window.location.href = `${accountsUrl}/subscriptions`;\n };\n\n return (\n <Dialog open={isOpen} onOpenChange={() => closeModal()}>\n <DialogContent className=\"flex flex-col p-0 gap-0 w-full md:w-[410px] lg:w-[410px]\">\n <DialogHeader className=\"gap-3 text-left p-5\">\n <div\n className={`flex items-center justify-center w-10 h-10 rounded-lg ${isWarning ? 'bg-orange-50' : 'bg-zinc-50'}`}\n >\n {isWarning ? (\n <IconAlertTriangle size={20} className=\"text-orange-500\" />\n ) : (\n <IconLock size={24} className=\"text-zinc-950\" />\n )}\n </div>\n <div className=\"flex flex-col gap-2\">\n <DialogTitle className=\"paragraph-medium-semibold text-zinc-950\">\n {title}\n </DialogTitle>\n <DialogDescription className=\"paragraph-small-regular text-zinc-600\" asChild>\n <div className=\"flex flex-col gap-3\">\n <p>{description}</p>\n <ul className=\"flex flex-col gap-1.5 list-disc pl-4\">\n {BLOCKED_RESOURCE_KEYS.map((key) => (\n <li key={key}>\n {translate(`common.subscription.frozen.modal.resources.${key}`)}\n </li>\n ))}\n </ul>\n <p>{translate('common.subscription.frozen.modal.keepsWorking')}</p>\n </div>\n </DialogDescription>\n </div>\n </DialogHeader>\n\n <Separator />\n\n <div className=\"flex items-center gap-2 p-5\">\n <Button className=\"w-fit h-10!\" onClick={handleRegularize}>\n {translate('common.subscription.frozen.modal.cta')}\n </Button>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";AAsE4B,cAUA,YAVA;AApE5B,SAAS,UAAU,yBAAyB;AAC5C,SAAS,uBAAuB;AAChC,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB,8BAA8B;AAC1D,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAGhC,MAAM,wBAAwB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AASe,SAAR,qBAAsC;AACzC,QAAM,YAAY,gBAAgB;AAClC,QAAM,EAAE,aAAa,YAAY,UAAU,IAAI,gBAAgB;AAC/D,QAAM,SAAS,gBAAgB;AAC/B,QAAM,EAAE,YAAY,IAAI,kBAAkB;AAC1C,QAAM,EAAE,mBAAmB,IAAI,uBAAuB;AAEtD,QAAM,aAAc,WAA2C,cAAc;AAC7E,QAAM,YAAY,QAAQ,UAAU;AAEpC,QAAM,QAAQ,YACR,UAAU,iDAAiD;AAAA,IACvD,YAAY,gBAAgB,aAAa,IAAI,KAAK,UAAU,IAAI,IAAI;AAAA,EACxE,CAAC,IACD,UAAU,wCAAwC;AAExD,QAAM,cAAc,YACd,UAAU,qDAAqD,IAC/D,UAAU,8CAA8C;AAE9D,QAAM,mBAAmB,MAAM;AAC3B,QAAI,mBAAmB,OAAO,EAAG;AACjC,WAAO,SAAS,OAAO,GAAG,WAAW;AAAA,EACzC;AAEA,SACI,oBAAC,UAAO,MAAM,QAAQ,cAAc,MAAM,WAAW,GACjD,+BAAC,iBAAc,WAAU,4DACrB;AAAA,yBAAC,gBAAa,WAAU,uBACpB;AAAA;AAAA,QAAC;AAAA;AAAA,UACG,WAAW,yDAAyD,YAAY,iBAAiB,YAAY;AAAA,UAE5G,sBACG,oBAAC,qBAAkB,MAAM,IAAI,WAAU,mBAAkB,IAEzD,oBAAC,YAAS,MAAM,IAAI,WAAU,iBAAgB;AAAA;AAAA,MAEtD;AAAA,MACA,qBAAC,SAAI,WAAU,uBACX;AAAA,4BAAC,eAAY,WAAU,2CAClB,iBACL;AAAA,QACA,oBAAC,qBAAkB,WAAU,yCAAwC,SAAO,MACxE,+BAAC,SAAI,WAAU,uBACX;AAAA,8BAAC,OAAG,uBAAY;AAAA,UAChB,oBAAC,QAAG,WAAU,wCACT,gCAAsB,IAAI,CAAC,QACxB,oBAAC,QACI,oBAAU,8CAA8C,GAAG,EAAE,KADzD,GAET,CACH,GACL;AAAA,UACA,oBAAC,OAAG,oBAAU,+CAA+C,GAAE;AAAA,WACnE,GACJ;AAAA,SACJ;AAAA,OACJ;AAAA,IAEA,oBAAC,aAAU;AAAA,IAEX,oBAAC,SAAI,WAAU,+BACX,8BAAC,UAAO,WAAU,eAAc,SAAS,kBACpC,oBAAU,sCAAsC,GACrD,GACJ;AAAA,KACJ,GACJ;AAER;","names":[]}
|
|
@@ -15,6 +15,7 @@ import { PendingCancellationBanner } from "./PendingCancellationBanner";
|
|
|
15
15
|
import { TrialBanner } from "./TrialBanner";
|
|
16
16
|
import { FrozenAccountBanner } from "./FrozenAccountBanner";
|
|
17
17
|
import { FreezeWarningBanner } from "./FreezeWarningBanner";
|
|
18
|
+
import { useModalManager } from "../../store/useModalManager";
|
|
18
19
|
const UPCOMING_WINDOW_DAYS = 7;
|
|
19
20
|
const PAYMENT_METHOD_BOLETO = 2;
|
|
20
21
|
function SubscriptionBanner({
|
|
@@ -22,6 +23,7 @@ function SubscriptionBanner({
|
|
|
22
23
|
onDetails
|
|
23
24
|
}) {
|
|
24
25
|
const { data: { data: [subscription] = [] } = {} } = useActiveSubscription();
|
|
26
|
+
const { openModal } = useModalManager();
|
|
25
27
|
const { data: pendingChargesData, isLoading: isLoadingCharges } = useCharges({
|
|
26
28
|
page: 1,
|
|
27
29
|
limit: 1,
|
|
@@ -57,14 +59,15 @@ function SubscriptionBanner({
|
|
|
57
59
|
if (subscription.type === "whitelabel") return null;
|
|
58
60
|
const freezeState = getAccountFreezeState(subscription);
|
|
59
61
|
if (freezeState === "frozen") {
|
|
60
|
-
return /* @__PURE__ */ jsx(FrozenAccountBanner, { onDetails });
|
|
62
|
+
return /* @__PURE__ */ jsx(FrozenAccountBanner, { onDetails: () => openModal("accountFrozenModal") });
|
|
61
63
|
}
|
|
62
64
|
if (freezeState === "warning") {
|
|
65
|
+
const freezeDate = getAccountFreezeDate(subscription);
|
|
63
66
|
return /* @__PURE__ */ jsx(
|
|
64
67
|
FreezeWarningBanner,
|
|
65
68
|
{
|
|
66
|
-
freezeDate
|
|
67
|
-
onDetails
|
|
69
|
+
freezeDate,
|
|
70
|
+
onDetails: () => openModal("accountFrozenModal", { freezeDate })
|
|
68
71
|
}
|
|
69
72
|
);
|
|
70
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/navigation/SubscriptionBanner.tsx"],"sourcesContent":["\"use client\";\n\nimport { useActiveSubscription } from \"../../modules/subscriptions/hooks/find-active-subscription.hook\";\nimport { useCharges } from \"../../modules/charges/hooks/charges.hook\";\nimport { SUBSCRIPTION_GRACE_PERIOD_DAYS, MAX_PAYMENT_ATTEMPTS } from \"../../modules/subscriptions/constants/subscription.constants\";\nimport { getSubscriptionExpiryDate } from \"../../modules/subscriptions/utils/get-subscription-expiry-date\";\nimport { getSubscriptionCancellationState } from \"../../modules/subscriptions/utils/get-subscription-cancellation-state\";\nimport { getAccountFreezeState } from \"../../modules/subscriptions/utils/get-account-freeze-state\";\nimport { getAccountFreezeDate } from \"../../modules/subscriptions/utils/get-account-freeze-date\";\nimport { toCalendarDate, daysBetween } from \"../../infra/utils/date\";\nimport { OverdueInvoiceBanner } from \"./OverdueInvoiceBanner\";\nimport { UpcomingInvoiceBanner } from \"./UpcomingInvoiceBanner\";\nimport { CancelledSubscriptionBanner } from \"./CancelledSubscriptionBanner\";\nimport { PendingCancellationBanner } from \"./PendingCancellationBanner\";\nimport { TrialBanner } from \"./TrialBanner\";\nimport { FrozenAccountBanner } from \"./FrozenAccountBanner\";\nimport { FreezeWarningBanner } from \"./FreezeWarningBanner\";\n\nconst UPCOMING_WINDOW_DAYS = 7;\nconst PAYMENT_METHOD_BOLETO = 2;\n\ninterface SubscriptionBannerProps {\n onReactivate?: () => void;\n onDetails?: () => void;\n}\n\nexport function SubscriptionBanner({\n onReactivate,\n onDetails,\n}: SubscriptionBannerProps) {\n const { data: { data: [subscription] = [] } = {} } = useActiveSubscription();\n const { data: pendingChargesData, isLoading: isLoadingCharges } = useCharges({\n page: 1,\n limit: 1,\n status: [0],\n });\n\n if (!subscription?.date_due) return null;\n if (subscription.type === \"free\") return null;\n\n const dueDate = toCalendarDate(subscription.date_due);\n const today = toCalendarDate(new Date());\n if (!dueDate || !today) return null;\n\n const daysSinceDue = daysBetween(dueDate, today);\n const daysToDue = daysBetween(today, dueDate);\n const hasPendingCharge = !!pendingChargesData?.data?.[0];\n const isBoleto = subscription.payment_method === PAYMENT_METHOD_BOLETO;\n\n // Estado de cancelamento (fonte da verdade única, compartilhada com o\n // CancelledSubscriptionBanner). `active === false` tem prioridade e cai em\n // \"cancelled\" mesmo com date_due no futuro — é o caso da baixa por falha de\n // pagamento, onde date_due aponta pra uma fatura não paga.\n const expiryDate = getSubscriptionExpiryDate(subscription);\n const cancellationState = getSubscriptionCancellationState(subscription);\n\n // Trial: `date_due` guarda o fim do período de teste (ver auth.service).\n // Mostra a contagem regressiva enquanto o teste está vigente: `active` e não\n // vencido (`daysToDue >= 0`). NÃO usar `cancellationState` aqui — num trial o\n // `date_cancellation` é o agendamento padrão de não-renovação (o Stripe seta\n // = `date_due`), então cairia sempre em \"pending\" e o banner nunca apareceria.\n // Um trial encerrado de verdade vem com `active === false` (date_due placeholder).\n if (subscription.type === \"trial\") {\n if (!subscription.active || daysToDue < 0) return null;\n return <TrialBanner daysRemaining={daysToDue} onReactivate={onReactivate} />;\n }\n\n if (cancellationState === \"cancelled\") {\n return <CancelledSubscriptionBanner onReactivate={onReactivate} />;\n }\n\n if (cancellationState === \"pending\") {\n return (\n <PendingCancellationBanner\n limitDate={expiryDate}\n onReactivate={onReactivate}\n />\n );\n }\n\n if (subscription.type === \"whitelabel\") return null;\n\n // Congelamento (date_due + ACCOUNT_FREEZE_AFTER_DAYS): entra antes do dunning\n // e do aviso genérico de atraso, que hoje engolem essa janela.\n const freezeState = getAccountFreezeState(subscription);\n if (freezeState === \"frozen\") {\n return <FrozenAccountBanner onDetails={
|
|
1
|
+
{"version":3,"sources":["../../../src/components/navigation/SubscriptionBanner.tsx"],"sourcesContent":["\"use client\";\n\nimport { useActiveSubscription } from \"../../modules/subscriptions/hooks/find-active-subscription.hook\";\nimport { useCharges } from \"../../modules/charges/hooks/charges.hook\";\nimport { SUBSCRIPTION_GRACE_PERIOD_DAYS, MAX_PAYMENT_ATTEMPTS } from \"../../modules/subscriptions/constants/subscription.constants\";\nimport { getSubscriptionExpiryDate } from \"../../modules/subscriptions/utils/get-subscription-expiry-date\";\nimport { getSubscriptionCancellationState } from \"../../modules/subscriptions/utils/get-subscription-cancellation-state\";\nimport { getAccountFreezeState } from \"../../modules/subscriptions/utils/get-account-freeze-state\";\nimport { getAccountFreezeDate } from \"../../modules/subscriptions/utils/get-account-freeze-date\";\nimport { toCalendarDate, daysBetween } from \"../../infra/utils/date\";\nimport { OverdueInvoiceBanner } from \"./OverdueInvoiceBanner\";\nimport { UpcomingInvoiceBanner } from \"./UpcomingInvoiceBanner\";\nimport { CancelledSubscriptionBanner } from \"./CancelledSubscriptionBanner\";\nimport { PendingCancellationBanner } from \"./PendingCancellationBanner\";\nimport { TrialBanner } from \"./TrialBanner\";\nimport { FrozenAccountBanner } from \"./FrozenAccountBanner\";\nimport { FreezeWarningBanner } from \"./FreezeWarningBanner\";\nimport { useModalManager } from \"../../store/useModalManager\";\n\nconst UPCOMING_WINDOW_DAYS = 7;\nconst PAYMENT_METHOD_BOLETO = 2;\n\ninterface SubscriptionBannerProps {\n onReactivate?: () => void;\n onDetails?: () => void;\n}\n\nexport function SubscriptionBanner({\n onReactivate,\n onDetails,\n}: SubscriptionBannerProps) {\n const { data: { data: [subscription] = [] } = {} } = useActiveSubscription();\n const { openModal } = useModalManager();\n const { data: pendingChargesData, isLoading: isLoadingCharges } = useCharges({\n page: 1,\n limit: 1,\n status: [0],\n });\n\n if (!subscription?.date_due) return null;\n if (subscription.type === \"free\") return null;\n\n const dueDate = toCalendarDate(subscription.date_due);\n const today = toCalendarDate(new Date());\n if (!dueDate || !today) return null;\n\n const daysSinceDue = daysBetween(dueDate, today);\n const daysToDue = daysBetween(today, dueDate);\n const hasPendingCharge = !!pendingChargesData?.data?.[0];\n const isBoleto = subscription.payment_method === PAYMENT_METHOD_BOLETO;\n\n // Estado de cancelamento (fonte da verdade única, compartilhada com o\n // CancelledSubscriptionBanner). `active === false` tem prioridade e cai em\n // \"cancelled\" mesmo com date_due no futuro — é o caso da baixa por falha de\n // pagamento, onde date_due aponta pra uma fatura não paga.\n const expiryDate = getSubscriptionExpiryDate(subscription);\n const cancellationState = getSubscriptionCancellationState(subscription);\n\n // Trial: `date_due` guarda o fim do período de teste (ver auth.service).\n // Mostra a contagem regressiva enquanto o teste está vigente: `active` e não\n // vencido (`daysToDue >= 0`). NÃO usar `cancellationState` aqui — num trial o\n // `date_cancellation` é o agendamento padrão de não-renovação (o Stripe seta\n // = `date_due`), então cairia sempre em \"pending\" e o banner nunca apareceria.\n // Um trial encerrado de verdade vem com `active === false` (date_due placeholder).\n if (subscription.type === \"trial\") {\n if (!subscription.active || daysToDue < 0) return null;\n return <TrialBanner daysRemaining={daysToDue} onReactivate={onReactivate} />;\n }\n\n if (cancellationState === \"cancelled\") {\n return <CancelledSubscriptionBanner onReactivate={onReactivate} />;\n }\n\n if (cancellationState === \"pending\") {\n return (\n <PendingCancellationBanner\n limitDate={expiryDate}\n onReactivate={onReactivate}\n />\n );\n }\n\n if (subscription.type === \"whitelabel\") return null;\n\n // Congelamento (date_due + ACCOUNT_FREEZE_AFTER_DAYS): entra antes do dunning\n // e do aviso genérico de atraso, que hoje engolem essa janela.\n const freezeState = getAccountFreezeState(subscription);\n // \"Detalhes\" abre a MESMA modal do bloqueio, com a lista do que o congelamento tira: no\n // aviso o usuário precisa ver o que vai perder antes de perder. O `freezeDate` no data é\n // o que faz a modal renderizar a variante de véspera.\n //\n // IGNORA o `onDetails` do host de propósito: nos apps ele abre os detalhes da COBRANÇA,\n // que responde outra pergunta. Aqui \"Detalhes\" significa \"o que eu perco\".\n if (freezeState === \"frozen\") {\n return (\n <FrozenAccountBanner onDetails={() => openModal(\"accountFrozenModal\")} />\n );\n }\n if (freezeState === \"warning\") {\n const freezeDate = getAccountFreezeDate(subscription);\n return (\n <FreezeWarningBanner\n freezeDate={freezeDate}\n onDetails={() => openModal(\"accountFrozenModal\", { freezeDate })}\n />\n );\n }\n\n // Cartão em dunning (Stripe Smart Retries): comunica as tentativas de cobrança\n // restantes antes do cancelamento automático — não mais por tolerância fixa de\n // dias. attempt_count vive no invoice (payment_retry); só cartão tem retries.\n const paymentRetry = subscription.payment_retry ?? null;\n if (\n paymentRetry &&\n paymentRetry.invoice_status === \"open\" &&\n paymentRetry.attempt_count > 0\n ) {\n const remainingAttempts = Math.max(\n 0,\n MAX_PAYMENT_ATTEMPTS - paymentRetry.attempt_count,\n );\n return (\n <OverdueInvoiceBanner\n onDetails={onDetails}\n remainingAttempts={remainingAttempts}\n />\n );\n }\n\n // Boleto/pix (sem retries): aviso genérico de atraso enquanto a fatura está\n // dentro da janela de cobrança.\n if (daysSinceDue > 0 && daysSinceDue <= SUBSCRIPTION_GRACE_PERIOD_DAYS) {\n return <OverdueInvoiceBanner onDetails={onDetails} />;\n }\n\n if (\n isBoleto &&\n !isLoadingCharges &&\n hasPendingCharge &&\n daysToDue >= 0 &&\n daysToDue <= UPCOMING_WINDOW_DAYS\n ) {\n return <UpcomingInvoiceBanner dueDate={dueDate} onDetails={onDetails} />;\n }\n\n return null;\n}\n"],"mappings":";AAkEW;AAhEX,SAAS,6BAA6B;AACtC,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC,4BAA4B;AACrE,SAAS,iCAAiC;AAC1C,SAAS,wCAAwC;AACjD,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,4BAA4B;AACrC,SAAS,6BAA6B;AACtC,SAAS,mCAAmC;AAC5C,SAAS,iCAAiC;AAC1C,SAAS,mBAAmB;AAC5B,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAEhC,MAAM,uBAAuB;AAC7B,MAAM,wBAAwB;AAOvB,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,sBAAsB;AAC3E,QAAM,EAAE,UAAU,IAAI,gBAAgB;AACtC,QAAM,EAAE,MAAM,oBAAoB,WAAW,iBAAiB,IAAI,WAAW;AAAA,IAC3E,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ,CAAC,CAAC;AAAA,EACZ,CAAC;AAED,MAAI,CAAC,cAAc,SAAU,QAAO;AACpC,MAAI,aAAa,SAAS,OAAQ,QAAO;AAEzC,QAAM,UAAU,eAAe,aAAa,QAAQ;AACpD,QAAM,QAAQ,eAAe,oBAAI,KAAK,CAAC;AACvC,MAAI,CAAC,WAAW,CAAC,MAAO,QAAO;AAE/B,QAAM,eAAe,YAAY,SAAS,KAAK;AAC/C,QAAM,YAAY,YAAY,OAAO,OAAO;AAC5C,QAAM,mBAAmB,CAAC,CAAC,oBAAoB,OAAO,CAAC;AACvD,QAAM,WAAW,aAAa,mBAAmB;AAMjD,QAAM,aAAa,0BAA0B,YAAY;AACzD,QAAM,oBAAoB,iCAAiC,YAAY;AAQvE,MAAI,aAAa,SAAS,SAAS;AACjC,QAAI,CAAC,aAAa,UAAU,YAAY,EAAG,QAAO;AAClD,WAAO,oBAAC,eAAY,eAAe,WAAW,cAA4B;AAAA,EAC5E;AAEA,MAAI,sBAAsB,aAAa;AACrC,WAAO,oBAAC,+BAA4B,cAA4B;AAAA,EAClE;AAEA,MAAI,sBAAsB,WAAW;AACnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,QACX;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,MAAI,aAAa,SAAS,aAAc,QAAO;AAI/C,QAAM,cAAc,sBAAsB,YAAY;AAOtD,MAAI,gBAAgB,UAAU;AAC5B,WACE,oBAAC,uBAAoB,WAAW,MAAM,UAAU,oBAAoB,GAAG;AAAA,EAE3E;AACA,MAAI,gBAAgB,WAAW;AAC7B,UAAM,aAAa,qBAAqB,YAAY;AACpD,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,MAAM,UAAU,sBAAsB,EAAE,WAAW,CAAC;AAAA;AAAA,IACjE;AAAA,EAEJ;AAKA,QAAM,eAAe,aAAa,iBAAiB;AACnD,MACE,gBACA,aAAa,mBAAmB,UAChC,aAAa,gBAAgB,GAC7B;AACA,UAAM,oBAAoB,KAAK;AAAA,MAC7B;AAAA,MACA,uBAAuB,aAAa;AAAA,IACtC;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAIA,MAAI,eAAe,KAAK,gBAAgB,gCAAgC;AACtE,WAAO,oBAAC,wBAAqB,WAAsB;AAAA,EACrD;AAEA,MACE,YACA,CAAC,oBACD,oBACA,aAAa,KACb,aAAa,sBACb;AACA,WAAO,oBAAC,yBAAsB,SAAkB,WAAsB;AAAA,EACxE;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -412,17 +412,31 @@ const messages = {
|
|
|
412
412
|
subscription: {
|
|
413
413
|
frozen: {
|
|
414
414
|
banner: {
|
|
415
|
-
message: "Your account
|
|
416
|
-
regularize: "
|
|
415
|
+
message: "Your account resources are blocked due to missing payment.",
|
|
416
|
+
regularize: "Update subscription"
|
|
417
417
|
},
|
|
418
418
|
warningBanner: {
|
|
419
|
-
message: "Payment overdue: your account will be blocked on {freezeDate}.
|
|
419
|
+
message: "Payment overdue: your account resources will be blocked on {freezeDate}. Pay now to keep your access.",
|
|
420
420
|
details: "Details"
|
|
421
421
|
},
|
|
422
422
|
modal: {
|
|
423
|
-
title: "
|
|
424
|
-
description: "
|
|
425
|
-
|
|
423
|
+
title: "Your account resources are blocked",
|
|
424
|
+
description: "We could not identify your payment, so these resources are blocked:",
|
|
425
|
+
warningTitle: "Your resources will be blocked on {freezeDate}",
|
|
426
|
+
warningDescription: "Your payment is overdue. If we do not identify it by then, these resources will be blocked:",
|
|
427
|
+
keepsWorking: "Your published pages stay online and your leads keep coming in. Everything is restored automatically once the payment goes through.",
|
|
428
|
+
resources: {
|
|
429
|
+
pages: "Publishing, creating and editing pages",
|
|
430
|
+
projects: "Creating and editing projects",
|
|
431
|
+
leadsExport: "Exporting leads",
|
|
432
|
+
pageSettings: "Page settings, including lead notifications",
|
|
433
|
+
domains: "Connecting new domains",
|
|
434
|
+
users: "Inviting users and changing team permissions",
|
|
435
|
+
abTests: "Creating and editing A/B tests",
|
|
436
|
+
uploads: "Uploading images, PDFs and other files",
|
|
437
|
+
integrations: "Managing integrations"
|
|
438
|
+
},
|
|
439
|
+
cta: "Update subscription"
|
|
426
440
|
}
|
|
427
441
|
}
|
|
428
442
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/messages/en-us.ts"],"sourcesContent":["/**\n * en-us translation catalog for @greatapps/common components.\n * Consumer apps merge this object under the `common` namespace.\n * Mirror the module structure of `pt-br.ts` (the source of truth).\n */\nconst messages = {\n actions: {\n save: 'Save',\n saveChanges: 'Save changes',\n cancel: 'Cancel',\n confirm: 'Confirm',\n delete: 'Delete',\n edit: 'Edit',\n close: 'Close',\n back: 'Back',\n continue: 'Continue',\n add: 'Add',\n remove: 'Remove',\n search: 'Search',\n loading: 'Loading...',\n saving: 'Saving...',\n sending: 'Sending...',\n copy: 'Copy',\n copied: 'Copied',\n },\n\n validations: {\n required: 'Required field',\n invalidEmail: 'Invalid email',\n invalidPhone: 'Invalid phone number',\n },\n\n preferences: {\n title: 'Preferences',\n companyName: 'Company name',\n companyNamePlaceholder: 'Enter the company name',\n language: 'Language',\n languagePlaceholder: 'Select the language',\n languageSearch: 'Search language...',\n currency: 'Currency',\n currencyPlaceholder: 'Select the currency',\n currencySearch: 'Search currency...',\n timeDisplay: 'Time display',\n timezone: 'Time zone',\n timezonePlaceholder: 'Select the time zone',\n timezoneSearch: 'Search time zone...',\n timeFormat: 'Time format',\n timeFormatPlaceholder: 'Select the format',\n timeFormatOptions: {\n h24: '24 hours',\n h12: '12 hours (AM/PM)',\n },\n savedSuccess: 'Preferences saved successfully',\n saveError: 'Error saving preferences',\n },\n\n account: {\n notificationTypes: {\n projectUpdates: 'Project updates',\n securityAlerts: 'Security alerts',\n planBilling: 'Plan or billing changes',\n scheduledMaintenance: 'Scheduled maintenance',\n },\n deleteAccount: {\n title: 'Delete account',\n description:\n 'This action is <b>irreversible</b>. By confirming, your account and all your data will be deleted.',\n reasonLabel: 'Reason for cancellation',\n reasonPlaceholder: 'Select',\n descriptionLabel: 'Describe what led you to make this decision',\n descriptionPlaceholder: 'Explain your decision...',\n charactersCount: '{count}/400 characters',\n passwordLabel: 'Password',\n passwordPlaceholder: 'Enter your password',\n submit: 'Delete account',\n requiredFields: 'Fill in all required fields',\n reasons: {\n noFeature: 'The tool lacks a feature I need',\n technical: 'I encountered technical issues or errors in the system',\n support: 'I had issues with support or customer service',\n updates: 'Updates take longer than expected',\n temporary: 'The cancellation is temporary',\n other: 'Other reason',\n },\n },\n deletionWarning: {\n title: 'Your account will be deleted',\n descriptionLine1:\n 'Your subscription has been cancelled for 90 days or more. Your account and all data will be permanently deleted.',\n descriptionLine2:\n 'To keep your information, reactivate your subscription before the deletion. After this period, the data cannot be recovered.',\n reactivate: 'Reactivate subscription',\n },\n confirmDelete: {\n title: 'Sorry to see you go!',\n warning:\n 'All your <b>{count} pages</b> will be permanently deleted. This action is <b>irreversible!</b>',\n sessionExpired: 'Session expired. Fill in the fields again.',\n success: 'Account deleted successfully',\n error: 'Error deleting account. Please try again.',\n keepAccount: 'Keep my account',\n deleteAnyway: 'Delete anyway',\n deleting: 'Deleting...',\n },\n cantDelete: {\n title: 'Unable to delete account',\n description:\n 'You have an active subscription. To delete your account, <b>first cancel your subscription</b> on the Subscription page and then try again.',\n confirm: 'Ok, I understand',\n goToSubscription: 'Go to subscription',\n },\n twoFactor: {\n title: 'Two-factor authentication',\n instructions:\n 'Install an authenticator app on your mobile device (e.g., <link>Google Authenticator</link>), scan the QR Code on the side or copy the key in the app, and then enter the 6-digit code generated to continue.',\n qrAlt: 'QR Code for two-factor authentication',\n retry: 'Try again',\n pasteDigits: 'Paste the 6 digits below',\n activating: 'Activating...',\n activate: 'Activate authentication',\n recoveryTitle: 'Security codes',\n recoveryHeading: 'Save these emergency recovery codes',\n recoveryText1:\n 'If you lose access to your phone, you will not be able to log into your account without a two-factor code.',\n recoveryText2: 'Print, copy, or write the codes below in a safe location.',\n copyCodes: 'Copy codes',\n finish: 'Finish',\n codesCopied: 'Codes copied successfully',\n generateError: 'Error generating QR Code. Try again.',\n confirmError: 'Error confirming code. Try again.',\n disableTitle: 'Disable 2FA authentication',\n disableDescription:\n 'Enter the 6-digit code from your authenticator app to confirm disabling.',\n authenticatorCode: 'Authenticator code',\n disabling: 'Disabling...',\n disable: 'Disable 2FA',\n disabledSuccess: 'Two-factor authentication disabled',\n disableError: 'Error disabling 2FA. Try again.',\n invalidCode: 'Invalid code',\n codeResent: 'Code resent',\n resendError: 'Error resending code. Try again.',\n },\n profile: {\n title: 'My profile',\n avatarAlt: 'User photo',\n changePhoto: 'Change photo',\n name: 'First name',\n namePlaceholder: 'Enter your first name',\n lastName: 'Last name',\n lastNamePlaceholder: 'Enter your last name',\n gender: 'Gender',\n genderPlaceholder: 'Select your gender',\n genderOptions: {\n male: 'Male',\n female: 'Female',\n },\n phone: 'Phone',\n change: 'Change',\n accessData: 'Access data',\n email: 'Email',\n savedSuccess: 'Profile updated successfully',\n saveError: 'Error updating profile',\n },\n otp: {\n validationCode: 'Validation code',\n incorrectCode: 'Incorrect code',\n resend: 'Resend code',\n resendIn: 'Resend in <b>{time}</b>',\n validating: 'Validating...',\n },\n changeEmail: {\n title: 'Change email',\n confirm: 'Change email',\n sentCodeTo: 'We sent a validation code to email <b>{email}.</b>',\n updateTitle: 'Update contact email',\n updateDescription: 'Enter your new email to keep your contact information updated.',\n newEmail: 'New email',\n newEmailPlaceholder: 'Enter your new email',\n emailChanged: 'Email changed successfully',\n emailExistsError: 'Email already exists or an error occurred. Please try again later.',\n },\n changePhone: {\n titleEdit: 'Change phone',\n titleAdd: 'Add phone',\n sentCodeTo: 'We sent a validation code to your current number <b>{phone}.</b>',\n confirm: 'Change phone',\n updateTitle: 'Update contact phone',\n addTitle: 'Add contact phone',\n updateDescription: 'Enter the new number to keep your contact information updated.',\n addDescription: 'Enter your phone number for contact.',\n newNumber: 'New number',\n numberLabel: 'Phone number',\n phoneChanged: 'Phone changed',\n phoneAdded: 'Phone added',\n invalidNumber: 'Invalid phone number',\n saveError: 'An error occurred while saving the phone number. Please try again later.',\n numberExistsError: 'Number already exists or an error occurred. Please try again later.',\n },\n security: {\n title: 'Security',\n googleLinkedTitle: 'Google account linked',\n googleLinkedDescription:\n 'Your account is linked to Google. If you unlink it, use \"Forgot my password\" to reset an email access password.',\n unlinking: 'Unlinking...',\n unlinkGoogle: 'Unlink Google',\n unlinkError: 'Error unlinking Google account.',\n deleteAccountDescription:\n 'This action is permanent and cannot be undone. All your data, projects, and settings will be permanently removed.',\n deleteMyAccount: 'Delete my account',\n },\n token: {\n title: 'Account token',\n label: 'Token',\n copySuccess: 'Token copied successfully',\n copyError: 'Failed to copy token',\n info: 'This token is unique to your account and allows API access. Do not share with third parties.',\n docsLink: 'Access documentation',\n },\n changePassword: {\n title: 'Change password',\n currentPassword: 'Current password',\n currentPasswordPlaceholder: 'Enter your current password',\n newPassword: 'New password',\n newPasswordPlaceholder: 'Enter your new password',\n submit: 'Save new password',\n changeError: 'Error changing password',\n changedSuccess: 'Password changed successfully',\n genericError: 'Error changing password. Try again.',\n },\n globalPreferences: {\n title: 'Change global preferences',\n srDescription: 'Confirmation of global account preferences change',\n warning:\n 'You are changing settings that impact <b>all account users</b>. Do you want to confirm?',\n },\n configurations: {\n title: 'Settings',\n },\n },\n\n credits: {\n buy: {\n title: 'Buy AI credits',\n externalTitle: 'AI Credits',\n externalDescription: 'To purchase AI credits, visit your subscription area.',\n externalButton: 'Go to subscription area',\n creditsOptionLabel: '{credits} AI credits',\n creditsOptionDisplayValue: '{credits} AI credits',\n paymentOnConfirm: 'Payment will be processed at the time of confirmation.',\n nextInvoiceChanges: 'Changes will take effect from your next invoice.',\n defaultPrice: 'Default',\n immediateCharge: 'Immediate charge',\n totalPlanValue: 'Total plan value',\n confirmAndPay: 'Confirm and pay',\n creditsChangedToast: 'AI credits changed to {credits}',\n purchaseSuccessToast: 'Purchase complete! {credits} AI credits were added to your balance.',\n pixConfirmedToast: 'Payment confirmed! {credits} AI credits are now in your balance.',\n },\n disabled: {\n title: 'Credit purchase unavailable',\n descriptionLine1: 'Only administrators and owners can purchase AI credits.',\n descriptionLine2:\n 'Ask an account administrator or owner to purchase more credits.',\n understood: 'Got it',\n },\n paidPlanRequired: {\n defaultTitle: 'Feature available on paid plans',\n defaultDescription: 'To access this feature, upgrade to a paid plan',\n knowPlans: 'View plans',\n },\n },\n\n cards: {\n add: {\n stepBilling: 'Billing',\n stepCard: 'Card',\n externalTitle: 'Card management unavailable',\n externalDescription: 'Access your subscription area to manage payment methods.',\n externalButton: 'Go to subscription area',\n title: 'Add card',\n billingHeading: 'Add your billing information',\n cardHeading: 'Add your card information',\n authenticating: 'Authenticating...',\n submitting: 'Adding card...',\n submit: 'Add card',\n errorInitAuth: 'Unable to start card authentication, please try again.',\n errorAuth: 'Card authentication failed.',\n errorAuthStatus: 'Authentication not completed (status: {status}).',\n statusUnknown: 'unknown',\n successToast: 'Card added successfully.',\n errorSave: 'Unable to save your new card, please try again.',\n },\n form: {\n nameOnCard: 'Name on card',\n typeHere: 'Type here',\n cardNumber: 'Card number',\n cardExpiry: 'Expiration date',\n cardCvc: 'CVC',\n country: 'Country',\n select: 'Select',\n personType: 'Person type',\n personTypePf: 'Individual',\n personTypePj: 'Business',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Full name',\n cep: 'CEP',\n postalCode: 'Postal code',\n street: 'Address',\n streetNumber: 'Number',\n city: 'City',\n state: 'UF',\n stateProvince: 'State/Province',\n neighborhood: 'Neighborhood',\n complement: 'Complement',\n cardNumberRequired: 'Card number is required',\n cardExpiryRequired: 'Expiration date is required',\n cardCvcRequired: 'Security code is required',\n },\n delete: {\n title: 'Delete card',\n description: 'Are you sure you want to delete the card:',\n confirmLabel: 'Type DELETE below',\n confirmPlaceholder: 'DELETE',\n deleting: 'Deleting...',\n successToast: 'Card •••• {digits} deleted successfully',\n errorToast: 'Unable to delete card',\n },\n cannotDelete: {\n title: 'Cannot delete this card',\n description: 'This card is in use and has an active subscription linked to it. Select another card as default or add a new one.',\n selectDefault: 'Select a card as default:',\n addNewCard: 'Add new card',\n errorUpdateCard: 'Error updating subscription card',\n },\n item: {\n defaultBadge: 'Default',\n makeDefault: 'Make default',\n setDefaultSuccess: 'Card set as default',\n setDefaultError: 'Error setting card as default',\n },\n paymentInfo: {\n email: 'Email',\n payment: 'Payment',\n addCard: 'Add card',\n selectPaymentMethod: 'Select payment method',\n manageCards: 'Manage cards',\n newPaymentMethod: 'New payment method',\n },\n },\n billing: {\n requiredData: {\n title: 'Complete your billing information',\n description:\n 'We need this information to issue the invoice for your payments. Filling it in is required to keep using the platform.',\n addressHeading: 'Billing address',\n select: 'Select',\n typeHere: 'Type here',\n personType: 'Entity type',\n personTypePf: 'Individual',\n personTypePj: 'Company',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Full name',\n companyName: 'Legal name',\n financialEmail: 'Billing email',\n financialEmailPlaceholder: 'billing@company.com',\n cep: 'ZIP code',\n postalCode: 'Postal code',\n street: 'Address',\n streetNumber: 'Number',\n neighborhood: 'District',\n complement: 'Complement',\n city: 'City',\n state: 'State',\n stateProvince: 'State/Province',\n country: 'Country',\n submit: 'Save and continue',\n submitting: 'Saving...',\n successToast: 'Billing information saved successfully.',\n errorToast: 'We could not save your billing information, please try again.',\n requiredField: 'Required field',\n invalidEmail: 'Invalid email',\n invalidCep: 'Invalid ZIP code',\n invalidCpf: 'Invalid CPF',\n invalidCnpj: 'Invalid CNPJ',\n invalidCpfChecksum: 'Invalid CPF — check the verification digits',\n invalidCnpjChecksum: 'Invalid CNPJ — check the verification digits',\n },\n },\n navigation: {\n banners: {\n cancelled: {\n message: 'Subscription cancelled! Your pages are now offline.',\n choosePlan: 'Choose a new plan',\n },\n overdue: {\n message: 'Your subscription is overdue and your pages may be taken offline at any time.',\n attemptsMessage: 'Payment failed. {count, plural, one {# attempt remains} other {# attempts remain}} before cancellation. Update your payment method.',\n details: 'Details',\n },\n pending: {\n message: 'Your subscription was cancelled. You have until {limitDate} with your pages online.',\n reactivate: 'Reactivate subscription',\n },\n upcoming: {\n message: 'Invoice pending. Pay by {dueDate} to avoid suspension of your pages.',\n details: 'Details',\n },\n trial: {\n message: 'Trial period: {days, plural, =0 {your trial ends today!} one {# day left} other {# days left}}.',\n choosePlan: 'Subscribe now',\n },\n },\n projectSelector: {\n title: 'Projects',\n searchPlaceholder: 'Search here',\n emptyLine1: 'No projects found.',\n emptyLine2: 'Create a project to get started.',\n noResults: 'No results found.',\n manageProjects: 'Manage projects',\n },\n bottomLinks: {\n news: 'News',\n helpCenter: 'Help center',\n sendSuggestions: 'Send suggestions',\n },\n creditsCard: {\n label: 'Credits used',\n },\n planCard: {\n knowPlans: 'View plans',\n },\n },\n subscription: {\n frozen: {\n banner: {\n message: 'Your account has its resources blocked due to a missed payment.',\n regularize: 'Fix subscription',\n },\n warningBanner: {\n message: 'Payment overdue: your account will be blocked on {freezeDate}. Fix it to keep access.',\n details: 'Details',\n },\n modal: {\n title: 'Account blocked due to a missed payment',\n description: 'Your account has its resources blocked due to a missed payment. Fix your subscription to unlock it.',\n cta: 'Fix subscription',\n },\n },\n },\n forms: {\n combobox: {\n placeholder: 'Select an option',\n searchPlaceholder: 'Search...',\n emptyMessage: 'No options found.',\n },\n datePicker: {\n placeholder: 'Select date',\n },\n dateRangePicker: {\n placeholder: 'Select period',\n },\n phoneInput: {\n optional: '(Optional)',\n searchPlaceholder: 'Search country...',\n emptyMessage: 'No countries found',\n },\n select: {\n placeholder: 'Select an option',\n optional: '(Optional)',\n },\n copyButton: {\n tooltipDefault: 'Copy link',\n successDefault: 'Link copied',\n errorMessage: 'Unable to copy link',\n },\n circularProgress: {\n ariaLabel: 'Export progress',\n },\n },\n imageUpload: {\n cropTitle: 'Adjust image',\n cropHint: 'Drag to adjust the crop area',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Image smaller than {dimensionText}',\n tooSmallTitleGeneric: 'Image too small',\n tooSmallBodyFileWithDimension: 'The file \"{fileName}\" is smaller than {dimensionText}. Upload an image with at least {dimensionText} to continue.',\n tooSmallBodyFileGeneric: 'The file \"{fileName}\" is smaller than the minimum required size. Upload a larger image to continue.',\n tooSmallBodyNoFileWithDimension: 'The selected image is smaller than {dimensionText}. Upload an image with at least {dimensionText} to continue.',\n tooSmallBodyNoFileGeneric: 'The selected image is smaller than the minimum required size. Upload a larger image to continue.',\n sendAnother: 'Upload another',\n errorSvg: 'SVG format is not supported. Use PNG, JPEG, WebP, or GIF.',\n errorFormat: 'Unsupported format. Use PNG, JPEG, WebP, or GIF.',\n errorTooLarge: 'File too large. Maximum {maxSize}MB.',\n },\n notifications: {\n page: {\n title: 'Notifications',\n subtitle: 'Have full control over pages, experiences, and conversions.',\n markAllReadDesktop: 'Mark all as read',\n markAllReadMobile: 'Mark as read',\n tabAll: 'All notifications',\n tabUnread: 'Unread',\n details: 'Details',\n empty: 'No notifications found.',\n markAllSuccess: 'All notifications marked as read',\n markAllError: 'Error marking notifications as read',\n },\n popover: {\n title: 'Latest notifications',\n empty: 'No notifications yet',\n viewAll: 'All notifications',\n },\n },\n layout: {\n navbar: {\n expandMenu: 'Expand menu',\n greatPages: 'GreatPages',\n pages: 'Pages',\n },\n profile: {\n usedCredits: 'Credits used',\n loggingOut: 'Signing out...',\n logout: 'Sign out',\n },\n usersSelector: {\n title: 'Users',\n add: 'Add',\n searchPlaceholder: 'Search here',\n empty: 'No users found.',\n noResults: 'No results found.',\n addToProject: 'Add to project',\n removeFromProject: 'Remove from project',\n manageTeam: 'Manage team',\n },\n },\n notFound: {\n title: 'Page not found!',\n description: 'The page you are looking for does not exist. Check that you typed the link correctly.',\n backToHome: 'Back to home',\n },\n\n // Planos: features e main features (mapApiPlanToUiPlan).\n plans: {\n features: {\n unlimitedVisits: 'Unlimited visits',\n unlimitedLeads: 'Unlimited leads',\n sharePages: 'Share pages',\n hosting: 'Hosting included',\n freeTemplates: 'Free templates',\n onboarding: 'Onboarding meeting',\n projectManagement: 'Project management',\n },\n names: {\n '415': 'Starter',\n '1': 'Essential',\n '2': 'Growth',\n '3': 'Agency',\n },\n mainFeatures: {\n pagesUnlimited: 'Unlimited pages',\n pageSingular: '1 page',\n pagesPlural: '{count} pages',\n domainsUnlimited: 'Unlimited domains',\n domainSingular: '1 external domain',\n domainsPlural: '{count} external domains',\n usersUnlimited: 'Unlimited users',\n },\n usdNotConfigured: 'USD not configured',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: \"We couldn't authenticate the payment with your bank.\",\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Monthly',\n semiannual: 'Semiannual',\n annual: 'Annual',\n suffixMonthly: '/month',\n suffixSemiannual: '/semester',\n suffixAnnual: '/year',\n labelMonthly: 'monthly',\n labelSemiannual: 'semiannual',\n labelAnnual: 'annual',\n },\n\n languages: {\n 'pt-br': 'Portuguese (Brazil)',\n 'en-us': 'English (US)',\n 'es-es': 'Spanish',\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/messages/en-us.ts"],"sourcesContent":["/**\n * en-us translation catalog for @greatapps/common components.\n * Consumer apps merge this object under the `common` namespace.\n * Mirror the module structure of `pt-br.ts` (the source of truth).\n */\nconst messages = {\n actions: {\n save: 'Save',\n saveChanges: 'Save changes',\n cancel: 'Cancel',\n confirm: 'Confirm',\n delete: 'Delete',\n edit: 'Edit',\n close: 'Close',\n back: 'Back',\n continue: 'Continue',\n add: 'Add',\n remove: 'Remove',\n search: 'Search',\n loading: 'Loading...',\n saving: 'Saving...',\n sending: 'Sending...',\n copy: 'Copy',\n copied: 'Copied',\n },\n\n validations: {\n required: 'Required field',\n invalidEmail: 'Invalid email',\n invalidPhone: 'Invalid phone number',\n },\n\n preferences: {\n title: 'Preferences',\n companyName: 'Company name',\n companyNamePlaceholder: 'Enter the company name',\n language: 'Language',\n languagePlaceholder: 'Select the language',\n languageSearch: 'Search language...',\n currency: 'Currency',\n currencyPlaceholder: 'Select the currency',\n currencySearch: 'Search currency...',\n timeDisplay: 'Time display',\n timezone: 'Time zone',\n timezonePlaceholder: 'Select the time zone',\n timezoneSearch: 'Search time zone...',\n timeFormat: 'Time format',\n timeFormatPlaceholder: 'Select the format',\n timeFormatOptions: {\n h24: '24 hours',\n h12: '12 hours (AM/PM)',\n },\n savedSuccess: 'Preferences saved successfully',\n saveError: 'Error saving preferences',\n },\n\n account: {\n notificationTypes: {\n projectUpdates: 'Project updates',\n securityAlerts: 'Security alerts',\n planBilling: 'Plan or billing changes',\n scheduledMaintenance: 'Scheduled maintenance',\n },\n deleteAccount: {\n title: 'Delete account',\n description:\n 'This action is <b>irreversible</b>. By confirming, your account and all your data will be deleted.',\n reasonLabel: 'Reason for cancellation',\n reasonPlaceholder: 'Select',\n descriptionLabel: 'Describe what led you to make this decision',\n descriptionPlaceholder: 'Explain your decision...',\n charactersCount: '{count}/400 characters',\n passwordLabel: 'Password',\n passwordPlaceholder: 'Enter your password',\n submit: 'Delete account',\n requiredFields: 'Fill in all required fields',\n reasons: {\n noFeature: 'The tool lacks a feature I need',\n technical: 'I encountered technical issues or errors in the system',\n support: 'I had issues with support or customer service',\n updates: 'Updates take longer than expected',\n temporary: 'The cancellation is temporary',\n other: 'Other reason',\n },\n },\n deletionWarning: {\n title: 'Your account will be deleted',\n descriptionLine1:\n 'Your subscription has been cancelled for 90 days or more. Your account and all data will be permanently deleted.',\n descriptionLine2:\n 'To keep your information, reactivate your subscription before the deletion. After this period, the data cannot be recovered.',\n reactivate: 'Reactivate subscription',\n },\n confirmDelete: {\n title: 'Sorry to see you go!',\n warning:\n 'All your <b>{count} pages</b> will be permanently deleted. This action is <b>irreversible!</b>',\n sessionExpired: 'Session expired. Fill in the fields again.',\n success: 'Account deleted successfully',\n error: 'Error deleting account. Please try again.',\n keepAccount: 'Keep my account',\n deleteAnyway: 'Delete anyway',\n deleting: 'Deleting...',\n },\n cantDelete: {\n title: 'Unable to delete account',\n description:\n 'You have an active subscription. To delete your account, <b>first cancel your subscription</b> on the Subscription page and then try again.',\n confirm: 'Ok, I understand',\n goToSubscription: 'Go to subscription',\n },\n twoFactor: {\n title: 'Two-factor authentication',\n instructions:\n 'Install an authenticator app on your mobile device (e.g., <link>Google Authenticator</link>), scan the QR Code on the side or copy the key in the app, and then enter the 6-digit code generated to continue.',\n qrAlt: 'QR Code for two-factor authentication',\n retry: 'Try again',\n pasteDigits: 'Paste the 6 digits below',\n activating: 'Activating...',\n activate: 'Activate authentication',\n recoveryTitle: 'Security codes',\n recoveryHeading: 'Save these emergency recovery codes',\n recoveryText1:\n 'If you lose access to your phone, you will not be able to log into your account without a two-factor code.',\n recoveryText2: 'Print, copy, or write the codes below in a safe location.',\n copyCodes: 'Copy codes',\n finish: 'Finish',\n codesCopied: 'Codes copied successfully',\n generateError: 'Error generating QR Code. Try again.',\n confirmError: 'Error confirming code. Try again.',\n disableTitle: 'Disable 2FA authentication',\n disableDescription:\n 'Enter the 6-digit code from your authenticator app to confirm disabling.',\n authenticatorCode: 'Authenticator code',\n disabling: 'Disabling...',\n disable: 'Disable 2FA',\n disabledSuccess: 'Two-factor authentication disabled',\n disableError: 'Error disabling 2FA. Try again.',\n invalidCode: 'Invalid code',\n codeResent: 'Code resent',\n resendError: 'Error resending code. Try again.',\n },\n profile: {\n title: 'My profile',\n avatarAlt: 'User photo',\n changePhoto: 'Change photo',\n name: 'First name',\n namePlaceholder: 'Enter your first name',\n lastName: 'Last name',\n lastNamePlaceholder: 'Enter your last name',\n gender: 'Gender',\n genderPlaceholder: 'Select your gender',\n genderOptions: {\n male: 'Male',\n female: 'Female',\n },\n phone: 'Phone',\n change: 'Change',\n accessData: 'Access data',\n email: 'Email',\n savedSuccess: 'Profile updated successfully',\n saveError: 'Error updating profile',\n },\n otp: {\n validationCode: 'Validation code',\n incorrectCode: 'Incorrect code',\n resend: 'Resend code',\n resendIn: 'Resend in <b>{time}</b>',\n validating: 'Validating...',\n },\n changeEmail: {\n title: 'Change email',\n confirm: 'Change email',\n sentCodeTo: 'We sent a validation code to email <b>{email}.</b>',\n updateTitle: 'Update contact email',\n updateDescription: 'Enter your new email to keep your contact information updated.',\n newEmail: 'New email',\n newEmailPlaceholder: 'Enter your new email',\n emailChanged: 'Email changed successfully',\n emailExistsError: 'Email already exists or an error occurred. Please try again later.',\n },\n changePhone: {\n titleEdit: 'Change phone',\n titleAdd: 'Add phone',\n sentCodeTo: 'We sent a validation code to your current number <b>{phone}.</b>',\n confirm: 'Change phone',\n updateTitle: 'Update contact phone',\n addTitle: 'Add contact phone',\n updateDescription: 'Enter the new number to keep your contact information updated.',\n addDescription: 'Enter your phone number for contact.',\n newNumber: 'New number',\n numberLabel: 'Phone number',\n phoneChanged: 'Phone changed',\n phoneAdded: 'Phone added',\n invalidNumber: 'Invalid phone number',\n saveError: 'An error occurred while saving the phone number. Please try again later.',\n numberExistsError: 'Number already exists or an error occurred. Please try again later.',\n },\n security: {\n title: 'Security',\n googleLinkedTitle: 'Google account linked',\n googleLinkedDescription:\n 'Your account is linked to Google. If you unlink it, use \"Forgot my password\" to reset an email access password.',\n unlinking: 'Unlinking...',\n unlinkGoogle: 'Unlink Google',\n unlinkError: 'Error unlinking Google account.',\n deleteAccountDescription:\n 'This action is permanent and cannot be undone. All your data, projects, and settings will be permanently removed.',\n deleteMyAccount: 'Delete my account',\n },\n token: {\n title: 'Account token',\n label: 'Token',\n copySuccess: 'Token copied successfully',\n copyError: 'Failed to copy token',\n info: 'This token is unique to your account and allows API access. Do not share with third parties.',\n docsLink: 'Access documentation',\n },\n changePassword: {\n title: 'Change password',\n currentPassword: 'Current password',\n currentPasswordPlaceholder: 'Enter your current password',\n newPassword: 'New password',\n newPasswordPlaceholder: 'Enter your new password',\n submit: 'Save new password',\n changeError: 'Error changing password',\n changedSuccess: 'Password changed successfully',\n genericError: 'Error changing password. Try again.',\n },\n globalPreferences: {\n title: 'Change global preferences',\n srDescription: 'Confirmation of global account preferences change',\n warning:\n 'You are changing settings that impact <b>all account users</b>. Do you want to confirm?',\n },\n configurations: {\n title: 'Settings',\n },\n },\n\n credits: {\n buy: {\n title: 'Buy AI credits',\n externalTitle: 'AI Credits',\n externalDescription: 'To purchase AI credits, visit your subscription area.',\n externalButton: 'Go to subscription area',\n creditsOptionLabel: '{credits} AI credits',\n creditsOptionDisplayValue: '{credits} AI credits',\n paymentOnConfirm: 'Payment will be processed at the time of confirmation.',\n nextInvoiceChanges: 'Changes will take effect from your next invoice.',\n defaultPrice: 'Default',\n immediateCharge: 'Immediate charge',\n totalPlanValue: 'Total plan value',\n confirmAndPay: 'Confirm and pay',\n creditsChangedToast: 'AI credits changed to {credits}',\n purchaseSuccessToast: 'Purchase complete! {credits} AI credits were added to your balance.',\n pixConfirmedToast: 'Payment confirmed! {credits} AI credits are now in your balance.',\n },\n disabled: {\n title: 'Credit purchase unavailable',\n descriptionLine1: 'Only administrators and owners can purchase AI credits.',\n descriptionLine2:\n 'Ask an account administrator or owner to purchase more credits.',\n understood: 'Got it',\n },\n paidPlanRequired: {\n defaultTitle: 'Feature available on paid plans',\n defaultDescription: 'To access this feature, upgrade to a paid plan',\n knowPlans: 'View plans',\n },\n },\n\n cards: {\n add: {\n stepBilling: 'Billing',\n stepCard: 'Card',\n externalTitle: 'Card management unavailable',\n externalDescription: 'Access your subscription area to manage payment methods.',\n externalButton: 'Go to subscription area',\n title: 'Add card',\n billingHeading: 'Add your billing information',\n cardHeading: 'Add your card information',\n authenticating: 'Authenticating...',\n submitting: 'Adding card...',\n submit: 'Add card',\n errorInitAuth: 'Unable to start card authentication, please try again.',\n errorAuth: 'Card authentication failed.',\n errorAuthStatus: 'Authentication not completed (status: {status}).',\n statusUnknown: 'unknown',\n successToast: 'Card added successfully.',\n errorSave: 'Unable to save your new card, please try again.',\n },\n form: {\n nameOnCard: 'Name on card',\n typeHere: 'Type here',\n cardNumber: 'Card number',\n cardExpiry: 'Expiration date',\n cardCvc: 'CVC',\n country: 'Country',\n select: 'Select',\n personType: 'Person type',\n personTypePf: 'Individual',\n personTypePj: 'Business',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Full name',\n cep: 'CEP',\n postalCode: 'Postal code',\n street: 'Address',\n streetNumber: 'Number',\n city: 'City',\n state: 'UF',\n stateProvince: 'State/Province',\n neighborhood: 'Neighborhood',\n complement: 'Complement',\n cardNumberRequired: 'Card number is required',\n cardExpiryRequired: 'Expiration date is required',\n cardCvcRequired: 'Security code is required',\n },\n delete: {\n title: 'Delete card',\n description: 'Are you sure you want to delete the card:',\n confirmLabel: 'Type DELETE below',\n confirmPlaceholder: 'DELETE',\n deleting: 'Deleting...',\n successToast: 'Card •••• {digits} deleted successfully',\n errorToast: 'Unable to delete card',\n },\n cannotDelete: {\n title: 'Cannot delete this card',\n description: 'This card is in use and has an active subscription linked to it. Select another card as default or add a new one.',\n selectDefault: 'Select a card as default:',\n addNewCard: 'Add new card',\n errorUpdateCard: 'Error updating subscription card',\n },\n item: {\n defaultBadge: 'Default',\n makeDefault: 'Make default',\n setDefaultSuccess: 'Card set as default',\n setDefaultError: 'Error setting card as default',\n },\n paymentInfo: {\n email: 'Email',\n payment: 'Payment',\n addCard: 'Add card',\n selectPaymentMethod: 'Select payment method',\n manageCards: 'Manage cards',\n newPaymentMethod: 'New payment method',\n },\n },\n billing: {\n requiredData: {\n title: 'Complete your billing information',\n description:\n 'We need this information to issue the invoice for your payments. Filling it in is required to keep using the platform.',\n addressHeading: 'Billing address',\n select: 'Select',\n typeHere: 'Type here',\n personType: 'Entity type',\n personTypePf: 'Individual',\n personTypePj: 'Company',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Full name',\n companyName: 'Legal name',\n financialEmail: 'Billing email',\n financialEmailPlaceholder: 'billing@company.com',\n cep: 'ZIP code',\n postalCode: 'Postal code',\n street: 'Address',\n streetNumber: 'Number',\n neighborhood: 'District',\n complement: 'Complement',\n city: 'City',\n state: 'State',\n stateProvince: 'State/Province',\n country: 'Country',\n submit: 'Save and continue',\n submitting: 'Saving...',\n successToast: 'Billing information saved successfully.',\n errorToast: 'We could not save your billing information, please try again.',\n requiredField: 'Required field',\n invalidEmail: 'Invalid email',\n invalidCep: 'Invalid ZIP code',\n invalidCpf: 'Invalid CPF',\n invalidCnpj: 'Invalid CNPJ',\n invalidCpfChecksum: 'Invalid CPF — check the verification digits',\n invalidCnpjChecksum: 'Invalid CNPJ — check the verification digits',\n },\n },\n navigation: {\n banners: {\n cancelled: {\n message: 'Subscription cancelled! Your pages are now offline.',\n choosePlan: 'Choose a new plan',\n },\n overdue: {\n message: 'Your subscription is overdue and your pages may be taken offline at any time.',\n attemptsMessage: 'Payment failed. {count, plural, one {# attempt remains} other {# attempts remain}} before cancellation. Update your payment method.',\n details: 'Details',\n },\n pending: {\n message: 'Your subscription was cancelled. You have until {limitDate} with your pages online.',\n reactivate: 'Reactivate subscription',\n },\n upcoming: {\n message: 'Invoice pending. Pay by {dueDate} to avoid suspension of your pages.',\n details: 'Details',\n },\n trial: {\n message: 'Trial period: {days, plural, =0 {your trial ends today!} one {# day left} other {# days left}}.',\n choosePlan: 'Subscribe now',\n },\n },\n projectSelector: {\n title: 'Projects',\n searchPlaceholder: 'Search here',\n emptyLine1: 'No projects found.',\n emptyLine2: 'Create a project to get started.',\n noResults: 'No results found.',\n manageProjects: 'Manage projects',\n },\n bottomLinks: {\n news: 'News',\n helpCenter: 'Help center',\n sendSuggestions: 'Send suggestions',\n },\n creditsCard: {\n label: 'Credits used',\n },\n planCard: {\n knowPlans: 'View plans',\n },\n },\n subscription: {\n frozen: {\n banner: {\n message: 'Your account resources are blocked due to missing payment.',\n regularize: 'Update subscription',\n },\n warningBanner: {\n message: 'Payment overdue: your account resources will be blocked on {freezeDate}. Pay now to keep your access.',\n details: 'Details',\n },\n modal: {\n title: 'Your account resources are blocked',\n description: 'We could not identify your payment, so these resources are blocked:',\n warningTitle: 'Your resources will be blocked on {freezeDate}',\n warningDescription: 'Your payment is overdue. If we do not identify it by then, these resources will be blocked:',\n keepsWorking: 'Your published pages stay online and your leads keep coming in. Everything is restored automatically once the payment goes through.',\n resources: {\n pages: 'Publishing, creating and editing pages',\n projects: 'Creating and editing projects',\n leadsExport: 'Exporting leads',\n pageSettings: 'Page settings, including lead notifications',\n domains: 'Connecting new domains',\n users: 'Inviting users and changing team permissions',\n abTests: 'Creating and editing A/B tests',\n uploads: 'Uploading images, PDFs and other files',\n integrations: 'Managing integrations',\n },\n cta: 'Update subscription',\n },\n },\n },\n forms: {\n combobox: {\n placeholder: 'Select an option',\n searchPlaceholder: 'Search...',\n emptyMessage: 'No options found.',\n },\n datePicker: {\n placeholder: 'Select date',\n },\n dateRangePicker: {\n placeholder: 'Select period',\n },\n phoneInput: {\n optional: '(Optional)',\n searchPlaceholder: 'Search country...',\n emptyMessage: 'No countries found',\n },\n select: {\n placeholder: 'Select an option',\n optional: '(Optional)',\n },\n copyButton: {\n tooltipDefault: 'Copy link',\n successDefault: 'Link copied',\n errorMessage: 'Unable to copy link',\n },\n circularProgress: {\n ariaLabel: 'Export progress',\n },\n },\n imageUpload: {\n cropTitle: 'Adjust image',\n cropHint: 'Drag to adjust the crop area',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Image smaller than {dimensionText}',\n tooSmallTitleGeneric: 'Image too small',\n tooSmallBodyFileWithDimension: 'The file \"{fileName}\" is smaller than {dimensionText}. Upload an image with at least {dimensionText} to continue.',\n tooSmallBodyFileGeneric: 'The file \"{fileName}\" is smaller than the minimum required size. Upload a larger image to continue.',\n tooSmallBodyNoFileWithDimension: 'The selected image is smaller than {dimensionText}. Upload an image with at least {dimensionText} to continue.',\n tooSmallBodyNoFileGeneric: 'The selected image is smaller than the minimum required size. Upload a larger image to continue.',\n sendAnother: 'Upload another',\n errorSvg: 'SVG format is not supported. Use PNG, JPEG, WebP, or GIF.',\n errorFormat: 'Unsupported format. Use PNG, JPEG, WebP, or GIF.',\n errorTooLarge: 'File too large. Maximum {maxSize}MB.',\n },\n notifications: {\n page: {\n title: 'Notifications',\n subtitle: 'Have full control over pages, experiences, and conversions.',\n markAllReadDesktop: 'Mark all as read',\n markAllReadMobile: 'Mark as read',\n tabAll: 'All notifications',\n tabUnread: 'Unread',\n details: 'Details',\n empty: 'No notifications found.',\n markAllSuccess: 'All notifications marked as read',\n markAllError: 'Error marking notifications as read',\n },\n popover: {\n title: 'Latest notifications',\n empty: 'No notifications yet',\n viewAll: 'All notifications',\n },\n },\n layout: {\n navbar: {\n expandMenu: 'Expand menu',\n greatPages: 'GreatPages',\n pages: 'Pages',\n },\n profile: {\n usedCredits: 'Credits used',\n loggingOut: 'Signing out...',\n logout: 'Sign out',\n },\n usersSelector: {\n title: 'Users',\n add: 'Add',\n searchPlaceholder: 'Search here',\n empty: 'No users found.',\n noResults: 'No results found.',\n addToProject: 'Add to project',\n removeFromProject: 'Remove from project',\n manageTeam: 'Manage team',\n },\n },\n notFound: {\n title: 'Page not found!',\n description: 'The page you are looking for does not exist. Check that you typed the link correctly.',\n backToHome: 'Back to home',\n },\n\n // Planos: features e main features (mapApiPlanToUiPlan).\n plans: {\n features: {\n unlimitedVisits: 'Unlimited visits',\n unlimitedLeads: 'Unlimited leads',\n sharePages: 'Share pages',\n hosting: 'Hosting included',\n freeTemplates: 'Free templates',\n onboarding: 'Onboarding meeting',\n projectManagement: 'Project management',\n },\n names: {\n '415': 'Starter',\n '1': 'Essential',\n '2': 'Growth',\n '3': 'Agency',\n },\n mainFeatures: {\n pagesUnlimited: 'Unlimited pages',\n pageSingular: '1 page',\n pagesPlural: '{count} pages',\n domainsUnlimited: 'Unlimited domains',\n domainSingular: '1 external domain',\n domainsPlural: '{count} external domains',\n usersUnlimited: 'Unlimited users',\n },\n usdNotConfigured: 'USD not configured',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: \"We couldn't authenticate the payment with your bank.\",\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Monthly',\n semiannual: 'Semiannual',\n annual: 'Annual',\n suffixMonthly: '/month',\n suffixSemiannual: '/semester',\n suffixAnnual: '/year',\n labelMonthly: 'monthly',\n labelSemiannual: 'semiannual',\n labelAnnual: 'annual',\n },\n\n languages: {\n 'pt-br': 'Portuguese (Brazil)',\n 'en-us': 'English (US)',\n 'es-es': 'Spanish',\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
|
@@ -412,16 +412,30 @@ const messages = {
|
|
|
412
412
|
subscription: {
|
|
413
413
|
frozen: {
|
|
414
414
|
banner: {
|
|
415
|
-
message: "
|
|
415
|
+
message: "Los recursos de tu cuenta est\xE1n bloqueados por falta de pago.",
|
|
416
416
|
regularize: "Regularizar suscripci\xF3n"
|
|
417
417
|
},
|
|
418
418
|
warningBanner: {
|
|
419
|
-
message: "Pago atrasado: tu cuenta
|
|
419
|
+
message: "Pago atrasado: los recursos de tu cuenta se bloquear\xE1n el {freezeDate}. Regulariza para no perder el acceso.",
|
|
420
420
|
details: "Detalles"
|
|
421
421
|
},
|
|
422
422
|
modal: {
|
|
423
|
-
title: "
|
|
424
|
-
description: "
|
|
423
|
+
title: "Los recursos de tu cuenta est\xE1n bloqueados",
|
|
424
|
+
description: "No identificamos el pago, as\xED que estos recursos est\xE1n bloqueados:",
|
|
425
|
+
warningTitle: "Tus recursos se bloquear\xE1n el {freezeDate}",
|
|
426
|
+
warningDescription: "El pago est\xE1 atrasado. Si no lo identificamos hasta entonces, estos recursos se bloquear\xE1n:",
|
|
427
|
+
keepsWorking: "Tus p\xE1ginas publicadas siguen en l\xEDnea y tus leads se siguen capturando. Todo vuelve autom\xE1ticamente en cuanto se identifique el pago.",
|
|
428
|
+
resources: {
|
|
429
|
+
pages: "Publicar, crear y editar p\xE1ginas",
|
|
430
|
+
projects: "Crear y editar proyectos",
|
|
431
|
+
leadsExport: "Exportar leads",
|
|
432
|
+
pageSettings: "Configuraci\xF3n de la p\xE1gina, incluidas las notificaciones de leads",
|
|
433
|
+
domains: "Conectar nuevos dominios",
|
|
434
|
+
users: "Invitar usuarios y cambiar permisos del equipo",
|
|
435
|
+
abTests: "Crear y editar pruebas A/B",
|
|
436
|
+
uploads: "Subir im\xE1genes, PDF y otros archivos",
|
|
437
|
+
integrations: "Gestionar integraciones"
|
|
438
|
+
},
|
|
425
439
|
cta: "Regularizar suscripci\xF3n"
|
|
426
440
|
}
|
|
427
441
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/messages/es-es.ts"],"sourcesContent":["/**\n * Catálogo de traducción es-es para los componentes de @greatapps/common.\n * Las apps consumidoras combinan este objeto bajo el namespace `common`.\n * Refleja la estructura de módulos de `pt-br.ts` (la fuente de verdad).\n */\nconst messages = {\n actions: {\n save: 'Guardar',\n saveChanges: 'Guardar cambios',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n delete: 'Eliminar',\n edit: 'Editar',\n close: 'Cerrar',\n back: 'Volver',\n continue: 'Continuar',\n add: 'Agregar',\n remove: 'Quitar',\n search: 'Buscar',\n loading: 'Cargando...',\n saving: 'Guardando...',\n sending: 'Enviando...',\n copy: 'Copiar',\n copied: 'Copiado',\n },\n\n validations: {\n required: 'Campo obligatorio',\n invalidEmail: 'Correo electrónico inválido',\n invalidPhone: 'Teléfono inválido',\n },\n\n preferences: {\n title: 'Preferencias',\n companyName: 'Nombre de la empresa',\n companyNamePlaceholder: 'Ingrese el nombre de la empresa',\n language: 'Idioma',\n languagePlaceholder: 'Seleccione el idioma',\n languageSearch: 'Buscar idioma...',\n currency: 'Moneda',\n currencyPlaceholder: 'Seleccione la moneda',\n currencySearch: 'Buscar moneda...',\n timeDisplay: 'Visualización de hora',\n timezone: 'Zona horaria',\n timezonePlaceholder: 'Seleccione la zona horaria',\n timezoneSearch: 'Buscar zona horaria...',\n timeFormat: 'Formato de hora',\n timeFormatPlaceholder: 'Seleccione el formato',\n timeFormatOptions: {\n h24: '24 horas',\n h12: '12 horas (AM/PM)',\n },\n savedSuccess: 'Preferencias guardadas con éxito',\n saveError: 'Error al guardar las preferencias',\n },\n\n account: {\n notificationTypes: {\n projectUpdates: 'Actualizaciones de proyectos',\n securityAlerts: 'Alertas de seguridad',\n planBilling: 'Cambios en el plan o facturación',\n scheduledMaintenance: 'Mantenimientos programados',\n },\n deleteAccount: {\n title: 'Eliminar cuenta',\n description:\n 'Esta acción es <b>irreversible</b>. Al confirmar, su cuenta y todos sus datos serán eliminados.',\n reasonLabel: 'Motivo de la cancelación',\n reasonPlaceholder: 'Seleccionar',\n descriptionLabel: 'Describa qué lo llevó a tomar esta decisión',\n descriptionPlaceholder: 'Explique su decisión...',\n charactersCount: '{count}/400 caracteres',\n passwordLabel: 'Contraseña',\n passwordPlaceholder: 'Ingrese su contraseña',\n submit: 'Eliminar cuenta',\n requiredFields: 'Complete todos los campos obligatorios',\n reasons: {\n noFeature: 'La herramienta no tiene una función que necesito',\n technical: 'Encontré problemas técnicos o errores en el sistema',\n support: 'Tuve problemas con el soporte o atención al cliente',\n updates: 'Las actualizaciones tardan más de lo esperado',\n temporary: 'La cancelación es temporal',\n other: 'Otro motivo',\n },\n },\n deletionWarning: {\n title: 'Su cuenta será eliminada',\n descriptionLine1:\n 'Su suscripción está cancelada desde hace 90 días o más. Su cuenta y todos los datos serán eliminados permanentemente.',\n descriptionLine2:\n 'Para conservar su información, reactive su suscripción antes de la eliminación. Después de ese plazo, no será posible recuperar los datos.',\n reactivate: 'Reactivar suscripción',\n },\n confirmDelete: {\n title: '¡Qué pena verte partir!',\n warning:\n 'Todas sus <b>{count} páginas</b> serán eliminadas permanentemente. ¡Esta acción es <b>irreversible!</b>',\n sessionExpired: 'Sesión expirada. Complete los campos nuevamente.',\n success: 'Cuenta eliminada exitosamente',\n error: 'Error al eliminar la cuenta. Intente nuevamente.',\n keepAccount: 'Mantener mi cuenta',\n deleteAnyway: 'Eliminar de todas formas',\n deleting: 'Eliminando...',\n },\n cantDelete: {\n title: 'No es posible eliminar la cuenta',\n description:\n 'Tiene una suscripción activa. Para eliminar su cuenta, <b>primero cancele su suscripción</b> en la página Suscripción e intente nuevamente.',\n confirm: 'Ok, entendido',\n goToSubscription: 'Ir a suscripción',\n },\n twoFactor: {\n title: 'Autenticación de dos factores',\n instructions:\n 'Instale una aplicación autenticadora en su dispositivo móvil (p. ej., <link>Google Authenticator</link>), escanee el código QR al lado o copie la clave en la aplicación y, a continuación, ingrese el código de 6 dígitos generado para continuar.',\n qrAlt: 'Código QR para autenticación de dos factores',\n retry: 'Intentar de nuevo',\n pasteDigits: 'Pegue los 6 dígitos abajo',\n activating: 'Activando...',\n activate: 'Activar autenticación',\n recoveryTitle: 'Códigos de seguridad',\n recoveryHeading: 'Guarde estos códigos de recuperación de emergencia',\n recoveryText1:\n 'Si pierde acceso a su teléfono, no podrá iniciar sesión en su cuenta sin un código de dos factores.',\n recoveryText2: 'Imprima, copie o escriba los códigos a continuación en un lugar seguro.',\n copyCodes: 'Copiar códigos',\n finish: 'Finalizar',\n codesCopied: 'Códigos copiados correctamente',\n generateError: 'Error al generar el código QR. Intente de nuevo.',\n confirmError: 'Error al confirmar el código. Intente de nuevo.',\n disableTitle: 'Desactivar autenticación 2FA',\n disableDescription:\n 'Ingrese el código de 6 dígitos de su aplicación autenticadora para confirmar la desactivación.',\n authenticatorCode: 'Código del autenticador',\n disabling: 'Desactivando...',\n disable: 'Desactivar 2FA',\n disabledSuccess: 'Autenticación de dos factores desactivada',\n disableError: 'Error al desactivar 2FA. Intente de nuevo.',\n invalidCode: 'Código inválido',\n codeResent: 'Código reenviado',\n resendError: 'Error al reenviar el código. Intente de nuevo.',\n },\n profile: {\n title: 'Mi perfil',\n avatarAlt: 'Foto del usuario',\n changePhoto: 'Cambiar foto',\n name: 'Nombre',\n namePlaceholder: 'Ingrese su nombre',\n lastName: 'Apellido',\n lastNamePlaceholder: 'Ingrese su apellido',\n gender: 'Género',\n genderPlaceholder: 'Seleccione su género',\n genderOptions: {\n male: 'Masculino',\n female: 'Femenino',\n },\n phone: 'Teléfono',\n change: 'Cambiar',\n accessData: 'Datos de acceso',\n email: 'Correo electrónico',\n savedSuccess: 'Perfil actualizado exitosamente',\n saveError: 'Error al actualizar el perfil',\n },\n otp: {\n validationCode: 'Código de validación',\n incorrectCode: 'Código incorrecto',\n resend: 'Reenviar código',\n resendIn: 'Reenviar en <b>{time}</b>',\n validating: 'Validando...',\n },\n changeEmail: {\n title: 'Cambiar correo electrónico',\n confirm: 'Cambiar correo electrónico',\n sentCodeTo: 'Enviamos un código de validación al correo electrónico <b>{email}.</b>',\n updateTitle: 'Actualizar correo electrónico de contacto',\n updateDescription:\n 'Indique su nuevo correo electrónico para mantener su información de contacto actualizada.',\n newEmail: 'Nuevo correo electrónico',\n newEmailPlaceholder: 'Ingrese su nuevo correo electrónico',\n emailChanged: 'Correo electrónico cambiado exitosamente',\n emailExistsError: 'El correo electrónico ya existe o ocurrió un error. Intente más tarde.',\n },\n changePhone: {\n titleEdit: 'Cambiar teléfono',\n titleAdd: 'Agregar teléfono',\n sentCodeTo: 'Enviamos un código de validación al número actual <b>{phone}.</b>',\n confirm: 'Cambiar teléfono',\n updateTitle: 'Actualizar teléfono de contacto',\n addTitle: 'Agregar teléfono de contacto',\n updateDescription: 'Indique el nuevo número para mantener su información de contacto actualizada.',\n addDescription: 'Indique su número de teléfono para contacto.',\n newNumber: 'Nuevo número',\n numberLabel: 'Número de teléfono',\n phoneChanged: 'Teléfono cambiado',\n phoneAdded: 'Teléfono agregado',\n invalidNumber: 'Número de teléfono inválido',\n saveError: 'Ocurrió un error al guardar el número de teléfono. Intente más tarde.',\n numberExistsError: 'El número ya existe o ocurrió un error. Intente más tarde.',\n },\n security: {\n title: 'Seguridad',\n googleLinkedTitle: 'Cuenta Google vinculada',\n googleLinkedDescription:\n 'Su cuenta está vinculada a Google. Si la desvincula, utilice \"Olvidé mi contraseña\" para restablecer una contraseña de acceso por correo electrónico.',\n unlinking: 'Desvinculando...',\n unlinkGoogle: 'Desvincular Google',\n unlinkError: 'Error al desvincular la cuenta Google.',\n deleteAccountDescription:\n 'Esta acción es permanente y no se puede deshacer. Todos sus datos, proyectos y configuraciones serán eliminados permanentemente.',\n deleteMyAccount: 'Eliminar mi cuenta',\n },\n token: {\n title: 'Token de la cuenta',\n label: 'Token',\n copySuccess: 'Token copiado correctamente',\n copyError: 'No se pudo copiar el token',\n info: 'Este token es exclusivo de su cuenta y permite el acceso a la API. No lo comparta con terceros.',\n docsLink: 'Acceder a la documentación',\n },\n changePassword: {\n title: 'Cambiar contraseña',\n currentPassword: 'Contraseña actual',\n currentPasswordPlaceholder: 'Ingrese su contraseña actual',\n newPassword: 'Nueva contraseña',\n newPasswordPlaceholder: 'Ingrese su nueva contraseña',\n submit: 'Guardar nueva contraseña',\n changeError: 'Error al cambiar la contraseña',\n changedSuccess: 'Contraseña cambiada correctamente',\n genericError: 'Error al cambiar la contraseña. Intente nuevamente.',\n },\n globalPreferences: {\n title: 'Cambiar preferencias globales',\n srDescription: 'Confirmación de cambio de preferencias globales de la cuenta',\n warning:\n 'Está cambiando configuraciones que impactan <b>todos los usuarios de la cuenta</b>. ¿Desea confirmar?',\n },\n configurations: {\n title: 'Configuración',\n },\n },\n\n credits: {\n buy: {\n title: 'Comprar créditos de IA',\n externalTitle: 'Créditos de IA',\n externalDescription: 'Para adquirir créditos de IA, acceda a su área de suscripción.',\n externalButton: 'Ir al área de suscripción',\n creditsOptionLabel: '{credits} créditos de IA',\n creditsOptionDisplayValue: '{credits} créditos de IA',\n paymentOnConfirm: 'El pago se procesará en el momento de la confirmación.',\n nextInvoiceChanges: 'Los cambios entrarán en vigor a partir de su próxima factura.',\n defaultPrice: 'Estándar',\n immediateCharge: 'Cargo inmediato',\n totalPlanValue: 'Valor total del plan',\n confirmAndPay: 'Confirmar y pagar',\n creditsChangedToast: 'Créditos de IA cambiados a {credits}',\n purchaseSuccessToast: '¡Compra completada! Se agregaron {credits} créditos de IA a tu saldo.',\n pixConfirmedToast: '¡Pago confirmado! {credits} créditos de IA ya están en tu saldo.',\n },\n disabled: {\n title: 'Compra de créditos no disponible',\n descriptionLine1: 'Solo los administradores y propietarios pueden comprar créditos de IA.',\n descriptionLine2:\n 'Pida a un administrador o propietario de la cuenta que adquiera más créditos.',\n understood: 'Entendido',\n },\n paidPlanRequired: {\n defaultTitle: 'Función disponible en planes de pago',\n defaultDescription: 'Para acceder a esta función, actualice a un plan de pago',\n knowPlans: 'Ver planes',\n },\n },\n\n cards: {\n add: {\n stepBilling: 'Facturación',\n stepCard: 'Tarjeta',\n externalTitle: 'Gestión de tarjetas no disponible',\n externalDescription: 'Accede a tu área de suscripción para gestionar tus métodos de pago.',\n externalButton: 'Acceder al área de suscripción',\n title: 'Añadir tarjeta',\n billingHeading: 'Añade tu información de facturación',\n cardHeading: 'Añade la información de tu tarjeta',\n authenticating: 'Autenticando...',\n submitting: 'Añadiendo tarjeta...',\n submit: 'Añadir tarjeta',\n errorInitAuth: 'No se pudo iniciar la autenticación de la tarjeta, intenta de nuevo.',\n errorAuth: 'Falló la autenticación de la tarjeta.',\n errorAuthStatus: 'Autenticación no completada (estado: {status}).',\n statusUnknown: 'desconocido',\n successToast: 'Tarjeta añadida correctamente.',\n errorSave: 'No se pudo guardar tu nueva tarjeta, intenta de nuevo.',\n },\n form: {\n nameOnCard: 'Nombre impreso en la tarjeta',\n typeHere: 'Escribe aquí',\n cardNumber: 'Número de tarjeta',\n cardExpiry: 'Fecha de vencimiento',\n cardCvc: 'CVC',\n country: 'País',\n select: 'Selecciona',\n personType: 'Tipo de persona',\n personTypePf: 'Persona física',\n personTypePj: 'Persona jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nombre completo',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Dirección',\n streetNumber: 'Número',\n city: 'Ciudad',\n state: 'UF',\n stateProvince: 'Estado/Provincia',\n neighborhood: 'Barrio',\n complement: 'Complemento',\n cardNumberRequired: 'El número de tarjeta es obligatorio',\n cardExpiryRequired: 'La fecha de vencimiento es obligatoria',\n cardCvcRequired: 'El código de seguridad es obligatorio',\n },\n delete: {\n title: 'Eliminar tarjeta',\n description: 'Realmente deseas eliminar la tarjeta:',\n confirmLabel: 'Escribe ELIMINAR a continuación',\n confirmPlaceholder: 'ELIMINAR',\n deleting: 'Eliminando...',\n successToast: 'La tarjeta •••• {digits} se eliminó correctamente',\n errorToast: 'No se pudo eliminar la tarjeta',\n },\n cannotDelete: {\n title: 'No se puede eliminar esta tarjeta',\n description: 'Esta tarjeta está en uso y tiene una suscripción activa vinculada. Selecciona otra tarjeta como predeterminada o añade una nueva.',\n selectDefault: 'Selecciona una tarjeta como predeterminada:',\n addNewCard: 'Añadir nueva tarjeta',\n errorUpdateCard: 'Error al actualizar la tarjeta de la suscripción',\n },\n item: {\n defaultBadge: 'Predeterminada',\n makeDefault: 'Establecer como predeterminada',\n setDefaultSuccess: 'Tarjeta establecida como predeterminada',\n setDefaultError: 'Error al establecer la tarjeta predeterminada',\n },\n paymentInfo: {\n email: 'Correo electrónico',\n payment: 'Pago',\n addCard: 'Añadir tarjeta',\n selectPaymentMethod: 'Selecciona el método de pago',\n manageCards: 'Gestionar tarjetas',\n newPaymentMethod: 'Nuevo método de pago',\n },\n },\n billing: {\n requiredData: {\n title: 'Completa tus datos de facturación',\n description:\n 'Necesitamos esta información para emitir la factura de tus pagos. Completarla es obligatorio para seguir usando la plataforma.',\n addressHeading: 'Dirección de facturación',\n select: 'Selecciona',\n typeHere: 'Escribe aquí',\n personType: 'Tipo de persona',\n personTypePf: 'Persona física',\n personTypePj: 'Persona jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nombre completo',\n companyName: 'Razón social',\n financialEmail: 'Correo de facturación',\n financialEmailPlaceholder: 'facturacion@empresa.com',\n cep: 'Código postal',\n postalCode: 'Código postal',\n street: 'Dirección',\n streetNumber: 'Número',\n neighborhood: 'Barrio',\n complement: 'Complemento',\n city: 'Ciudad',\n state: 'Estado',\n stateProvince: 'Estado/Provincia',\n country: 'País',\n submit: 'Guardar y continuar',\n submitting: 'Guardando...',\n successToast: 'Datos de facturación guardados con éxito.',\n errorToast: 'No se pudieron guardar los datos de facturación, inténtalo de nuevo.',\n requiredField: 'Campo obligatorio',\n invalidEmail: 'Correo electrónico inválido',\n invalidCep: 'Código postal inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpj: 'CNPJ inválido',\n invalidCpfChecksum: 'CPF inválido — revisa los dígitos verificadores',\n invalidCnpjChecksum: 'CNPJ inválido — revisa los dígitos verificadores',\n },\n },\n navigation: {\n banners: {\n cancelled: {\n message: '¡Suscripción cancelada! Tus páginas han sido retiradas del aire.',\n choosePlan: 'Elige un nuevo plan',\n },\n overdue: {\n message: 'Tu suscripción está vencida y tus páginas pueden ser retiradas del aire en cualquier momento.',\n attemptsMessage: 'El pago falló. {count, plural, one {Queda # intento} other {Quedan # intentos}} antes de la cancelación. Actualiza tu forma de pago.',\n details: 'Detalles',\n },\n pending: {\n message: 'Tu suscripción ha sido cancelada, tienes hasta {limitDate} con tus páginas en línea.',\n reactivate: 'Reactivar suscripción',\n },\n upcoming: {\n message: 'Factura pendiente. Paga antes del {dueDate} para evitar la suspensión de tus páginas.',\n details: 'Detalles',\n },\n trial: {\n message: 'Período de prueba: {days, plural, =0 {¡tu prueba termina hoy!} one {queda # día para terminar} other {quedan # días para terminar}}.',\n choosePlan: 'Suscríbete ahora',\n },\n },\n projectSelector: {\n title: 'Proyectos',\n searchPlaceholder: 'Busca aquí',\n emptyLine1: 'No se encontró ningún proyecto.',\n emptyLine2: 'Crea un proyecto para comenzar.',\n noResults: 'No se encontraron resultados.',\n manageProjects: 'Gestionar proyectos',\n },\n bottomLinks: {\n news: 'Novedades',\n helpCenter: 'Centro de ayuda',\n sendSuggestions: 'Enviar sugerencias',\n },\n creditsCard: {\n label: 'Créditos utilizados',\n },\n planCard: {\n knowPlans: 'Conoce nuestros planes',\n },\n },\n subscription: {\n frozen: {\n banner: {\n message: 'Tu cuenta tiene los recursos bloqueados por falta de pago.',\n regularize: 'Regularizar suscripción',\n },\n warningBanner: {\n message: 'Pago atrasado: tu cuenta será bloqueada el {freezeDate}. Regulariza para no perder el acceso.',\n details: 'Detalles',\n },\n modal: {\n title: 'Cuenta bloqueada por falta de pago',\n description: 'Tu cuenta tiene los recursos bloqueados por falta de pago. Regulariza tu suscripción para liberarla.',\n cta: 'Regularizar suscripción',\n },\n },\n },\n forms: {\n combobox: {\n placeholder: 'Selecciona una opción',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'No se encontró ninguna opción.',\n },\n datePicker: {\n placeholder: 'Selecciona la fecha',\n },\n dateRangePicker: {\n placeholder: 'Selecciona el período',\n },\n phoneInput: {\n optional: '(Opcional)',\n searchPlaceholder: 'Buscar país...',\n emptyMessage: 'No se encontró ningún país',\n },\n select: {\n placeholder: 'Selecciona una opción',\n optional: '(Opcional)',\n },\n copyButton: {\n tooltipDefault: 'Copiar enlace',\n successDefault: 'Enlace copiado',\n errorMessage: 'No se pudo copiar el enlace',\n },\n circularProgress: {\n ariaLabel: 'Progreso de exportación',\n },\n },\n imageUpload: {\n cropTitle: 'Ajustar imagen',\n cropHint: 'Arrastra para ajustar el área de recorte',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Foto menor que {dimensionText}',\n tooSmallTitleGeneric: 'Foto muy pequeña',\n tooSmallBodyFileWithDimension: 'El archivo \"{fileName}\" es menor que {dimensionText}. Sube una imagen de al menos {dimensionText} para continuar.',\n tooSmallBodyFileGeneric: 'El archivo \"{fileName}\" es menor que el tamaño mínimo requerido. Sube una imagen más grande para continuar.',\n tooSmallBodyNoFileWithDimension: 'La imagen seleccionada es menor que {dimensionText}. Sube una imagen de al menos {dimensionText} para continuar.',\n tooSmallBodyNoFileGeneric: 'La imagen seleccionada es menor que el tamaño mínimo requerido. Sube una imagen más grande para continuar.',\n sendAnother: 'Enviar otra',\n errorSvg: 'El formato SVG no es compatible. Usa PNG, JPEG, WebP o GIF.',\n errorFormat: 'Formato no compatible. Usa PNG, JPEG, WebP o GIF.',\n errorTooLarge: 'Archivo demasiado grande. Máximo {maxSize}MB.',\n },\n notifications: {\n page: {\n title: 'Notificaciones',\n subtitle: 'Mantén el control total sobre tus páginas, experiencias y conversiones.',\n markAllReadDesktop: 'Marcar todo como leído',\n markAllReadMobile: 'Marcar como leído',\n tabAll: 'Todas las notificaciones',\n tabUnread: 'No leídas',\n details: 'Detalles',\n empty: 'No se encontró ninguna notificación.',\n markAllSuccess: 'Todas las notificaciones se marcaron como leídas',\n markAllError: 'Error al marcar notificaciones como leídas',\n },\n popover: {\n title: 'Últimas notificaciones',\n empty: 'Sin notificaciones por ahora',\n viewAll: 'Todas las notificaciones',\n },\n },\n layout: {\n navbar: {\n expandMenu: 'Expandir menú',\n greatPages: 'GreatPages',\n pages: 'Páginas',\n },\n profile: {\n usedCredits: 'Créditos utilizados',\n loggingOut: 'Cerrando tu sesión...',\n logout: 'Cerrar sesión',\n },\n usersSelector: {\n title: 'Usuarios',\n add: 'Añadir',\n searchPlaceholder: 'Busca aquí',\n empty: 'No se encontró ningún usuario.',\n noResults: 'No se encontraron resultados.',\n addToProject: 'Añadir al proyecto',\n removeFromProject: 'Eliminar del proyecto',\n manageTeam: 'Gestionar equipo',\n },\n },\n notFound: {\n title: '¡Página no encontrada!',\n description: 'La página que buscas no existe. Verifica que hayas escrito correctamente el enlace que buscas.',\n backToHome: 'Volver al inicio',\n },\n\n // Planos: features e main features (mapApiPlanToUiPlan).\n plans: {\n features: {\n unlimitedVisits: 'Visitas ilimitadas',\n unlimitedLeads: 'Leads ilimitados',\n sharePages: 'Compartir páginas',\n hosting: 'Hosting incluido',\n freeTemplates: 'Plantillas gratuitas',\n onboarding: 'Reunión de Onboarding',\n projectManagement: 'Gestión de proyectos',\n },\n names: {\n '415': 'Starter',\n '1': 'Essential',\n '2': 'Growth',\n '3': 'Agency',\n },\n mainFeatures: {\n pagesUnlimited: 'Páginas ilimitadas',\n pageSingular: '1 página',\n pagesPlural: '{count} páginas',\n domainsUnlimited: 'Dominios ilimitados',\n domainSingular: '1 dominio externo',\n domainsPlural: '{count} dominios externos',\n usersUnlimited: 'Usuarios ilimitados',\n },\n usdNotConfigured: 'USD no configurado',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: 'No se pudo autenticar el pago con tu banco.',\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Mensual',\n semiannual: 'Semestral',\n annual: 'Anual',\n suffixMonthly: '/mes',\n suffixSemiannual: '/semestre',\n suffixAnnual: '/año',\n labelMonthly: 'mensual',\n labelSemiannual: 'semestral',\n labelAnnual: 'anual',\n },\n\n languages: {\n 'pt-br': 'Portugués (Brasil)',\n 'en-us': 'Inglés (EE. UU.)',\n 'es-es': 'Español',\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/messages/es-es.ts"],"sourcesContent":["/**\n * Catálogo de traducción es-es para los componentes de @greatapps/common.\n * Las apps consumidoras combinan este objeto bajo el namespace `common`.\n * Refleja la estructura de módulos de `pt-br.ts` (la fuente de verdad).\n */\nconst messages = {\n actions: {\n save: 'Guardar',\n saveChanges: 'Guardar cambios',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n delete: 'Eliminar',\n edit: 'Editar',\n close: 'Cerrar',\n back: 'Volver',\n continue: 'Continuar',\n add: 'Agregar',\n remove: 'Quitar',\n search: 'Buscar',\n loading: 'Cargando...',\n saving: 'Guardando...',\n sending: 'Enviando...',\n copy: 'Copiar',\n copied: 'Copiado',\n },\n\n validations: {\n required: 'Campo obligatorio',\n invalidEmail: 'Correo electrónico inválido',\n invalidPhone: 'Teléfono inválido',\n },\n\n preferences: {\n title: 'Preferencias',\n companyName: 'Nombre de la empresa',\n companyNamePlaceholder: 'Ingrese el nombre de la empresa',\n language: 'Idioma',\n languagePlaceholder: 'Seleccione el idioma',\n languageSearch: 'Buscar idioma...',\n currency: 'Moneda',\n currencyPlaceholder: 'Seleccione la moneda',\n currencySearch: 'Buscar moneda...',\n timeDisplay: 'Visualización de hora',\n timezone: 'Zona horaria',\n timezonePlaceholder: 'Seleccione la zona horaria',\n timezoneSearch: 'Buscar zona horaria...',\n timeFormat: 'Formato de hora',\n timeFormatPlaceholder: 'Seleccione el formato',\n timeFormatOptions: {\n h24: '24 horas',\n h12: '12 horas (AM/PM)',\n },\n savedSuccess: 'Preferencias guardadas con éxito',\n saveError: 'Error al guardar las preferencias',\n },\n\n account: {\n notificationTypes: {\n projectUpdates: 'Actualizaciones de proyectos',\n securityAlerts: 'Alertas de seguridad',\n planBilling: 'Cambios en el plan o facturación',\n scheduledMaintenance: 'Mantenimientos programados',\n },\n deleteAccount: {\n title: 'Eliminar cuenta',\n description:\n 'Esta acción es <b>irreversible</b>. Al confirmar, su cuenta y todos sus datos serán eliminados.',\n reasonLabel: 'Motivo de la cancelación',\n reasonPlaceholder: 'Seleccionar',\n descriptionLabel: 'Describa qué lo llevó a tomar esta decisión',\n descriptionPlaceholder: 'Explique su decisión...',\n charactersCount: '{count}/400 caracteres',\n passwordLabel: 'Contraseña',\n passwordPlaceholder: 'Ingrese su contraseña',\n submit: 'Eliminar cuenta',\n requiredFields: 'Complete todos los campos obligatorios',\n reasons: {\n noFeature: 'La herramienta no tiene una función que necesito',\n technical: 'Encontré problemas técnicos o errores en el sistema',\n support: 'Tuve problemas con el soporte o atención al cliente',\n updates: 'Las actualizaciones tardan más de lo esperado',\n temporary: 'La cancelación es temporal',\n other: 'Otro motivo',\n },\n },\n deletionWarning: {\n title: 'Su cuenta será eliminada',\n descriptionLine1:\n 'Su suscripción está cancelada desde hace 90 días o más. Su cuenta y todos los datos serán eliminados permanentemente.',\n descriptionLine2:\n 'Para conservar su información, reactive su suscripción antes de la eliminación. Después de ese plazo, no será posible recuperar los datos.',\n reactivate: 'Reactivar suscripción',\n },\n confirmDelete: {\n title: '¡Qué pena verte partir!',\n warning:\n 'Todas sus <b>{count} páginas</b> serán eliminadas permanentemente. ¡Esta acción es <b>irreversible!</b>',\n sessionExpired: 'Sesión expirada. Complete los campos nuevamente.',\n success: 'Cuenta eliminada exitosamente',\n error: 'Error al eliminar la cuenta. Intente nuevamente.',\n keepAccount: 'Mantener mi cuenta',\n deleteAnyway: 'Eliminar de todas formas',\n deleting: 'Eliminando...',\n },\n cantDelete: {\n title: 'No es posible eliminar la cuenta',\n description:\n 'Tiene una suscripción activa. Para eliminar su cuenta, <b>primero cancele su suscripción</b> en la página Suscripción e intente nuevamente.',\n confirm: 'Ok, entendido',\n goToSubscription: 'Ir a suscripción',\n },\n twoFactor: {\n title: 'Autenticación de dos factores',\n instructions:\n 'Instale una aplicación autenticadora en su dispositivo móvil (p. ej., <link>Google Authenticator</link>), escanee el código QR al lado o copie la clave en la aplicación y, a continuación, ingrese el código de 6 dígitos generado para continuar.',\n qrAlt: 'Código QR para autenticación de dos factores',\n retry: 'Intentar de nuevo',\n pasteDigits: 'Pegue los 6 dígitos abajo',\n activating: 'Activando...',\n activate: 'Activar autenticación',\n recoveryTitle: 'Códigos de seguridad',\n recoveryHeading: 'Guarde estos códigos de recuperación de emergencia',\n recoveryText1:\n 'Si pierde acceso a su teléfono, no podrá iniciar sesión en su cuenta sin un código de dos factores.',\n recoveryText2: 'Imprima, copie o escriba los códigos a continuación en un lugar seguro.',\n copyCodes: 'Copiar códigos',\n finish: 'Finalizar',\n codesCopied: 'Códigos copiados correctamente',\n generateError: 'Error al generar el código QR. Intente de nuevo.',\n confirmError: 'Error al confirmar el código. Intente de nuevo.',\n disableTitle: 'Desactivar autenticación 2FA',\n disableDescription:\n 'Ingrese el código de 6 dígitos de su aplicación autenticadora para confirmar la desactivación.',\n authenticatorCode: 'Código del autenticador',\n disabling: 'Desactivando...',\n disable: 'Desactivar 2FA',\n disabledSuccess: 'Autenticación de dos factores desactivada',\n disableError: 'Error al desactivar 2FA. Intente de nuevo.',\n invalidCode: 'Código inválido',\n codeResent: 'Código reenviado',\n resendError: 'Error al reenviar el código. Intente de nuevo.',\n },\n profile: {\n title: 'Mi perfil',\n avatarAlt: 'Foto del usuario',\n changePhoto: 'Cambiar foto',\n name: 'Nombre',\n namePlaceholder: 'Ingrese su nombre',\n lastName: 'Apellido',\n lastNamePlaceholder: 'Ingrese su apellido',\n gender: 'Género',\n genderPlaceholder: 'Seleccione su género',\n genderOptions: {\n male: 'Masculino',\n female: 'Femenino',\n },\n phone: 'Teléfono',\n change: 'Cambiar',\n accessData: 'Datos de acceso',\n email: 'Correo electrónico',\n savedSuccess: 'Perfil actualizado exitosamente',\n saveError: 'Error al actualizar el perfil',\n },\n otp: {\n validationCode: 'Código de validación',\n incorrectCode: 'Código incorrecto',\n resend: 'Reenviar código',\n resendIn: 'Reenviar en <b>{time}</b>',\n validating: 'Validando...',\n },\n changeEmail: {\n title: 'Cambiar correo electrónico',\n confirm: 'Cambiar correo electrónico',\n sentCodeTo: 'Enviamos un código de validación al correo electrónico <b>{email}.</b>',\n updateTitle: 'Actualizar correo electrónico de contacto',\n updateDescription:\n 'Indique su nuevo correo electrónico para mantener su información de contacto actualizada.',\n newEmail: 'Nuevo correo electrónico',\n newEmailPlaceholder: 'Ingrese su nuevo correo electrónico',\n emailChanged: 'Correo electrónico cambiado exitosamente',\n emailExistsError: 'El correo electrónico ya existe o ocurrió un error. Intente más tarde.',\n },\n changePhone: {\n titleEdit: 'Cambiar teléfono',\n titleAdd: 'Agregar teléfono',\n sentCodeTo: 'Enviamos un código de validación al número actual <b>{phone}.</b>',\n confirm: 'Cambiar teléfono',\n updateTitle: 'Actualizar teléfono de contacto',\n addTitle: 'Agregar teléfono de contacto',\n updateDescription: 'Indique el nuevo número para mantener su información de contacto actualizada.',\n addDescription: 'Indique su número de teléfono para contacto.',\n newNumber: 'Nuevo número',\n numberLabel: 'Número de teléfono',\n phoneChanged: 'Teléfono cambiado',\n phoneAdded: 'Teléfono agregado',\n invalidNumber: 'Número de teléfono inválido',\n saveError: 'Ocurrió un error al guardar el número de teléfono. Intente más tarde.',\n numberExistsError: 'El número ya existe o ocurrió un error. Intente más tarde.',\n },\n security: {\n title: 'Seguridad',\n googleLinkedTitle: 'Cuenta Google vinculada',\n googleLinkedDescription:\n 'Su cuenta está vinculada a Google. Si la desvincula, utilice \"Olvidé mi contraseña\" para restablecer una contraseña de acceso por correo electrónico.',\n unlinking: 'Desvinculando...',\n unlinkGoogle: 'Desvincular Google',\n unlinkError: 'Error al desvincular la cuenta Google.',\n deleteAccountDescription:\n 'Esta acción es permanente y no se puede deshacer. Todos sus datos, proyectos y configuraciones serán eliminados permanentemente.',\n deleteMyAccount: 'Eliminar mi cuenta',\n },\n token: {\n title: 'Token de la cuenta',\n label: 'Token',\n copySuccess: 'Token copiado correctamente',\n copyError: 'No se pudo copiar el token',\n info: 'Este token es exclusivo de su cuenta y permite el acceso a la API. No lo comparta con terceros.',\n docsLink: 'Acceder a la documentación',\n },\n changePassword: {\n title: 'Cambiar contraseña',\n currentPassword: 'Contraseña actual',\n currentPasswordPlaceholder: 'Ingrese su contraseña actual',\n newPassword: 'Nueva contraseña',\n newPasswordPlaceholder: 'Ingrese su nueva contraseña',\n submit: 'Guardar nueva contraseña',\n changeError: 'Error al cambiar la contraseña',\n changedSuccess: 'Contraseña cambiada correctamente',\n genericError: 'Error al cambiar la contraseña. Intente nuevamente.',\n },\n globalPreferences: {\n title: 'Cambiar preferencias globales',\n srDescription: 'Confirmación de cambio de preferencias globales de la cuenta',\n warning:\n 'Está cambiando configuraciones que impactan <b>todos los usuarios de la cuenta</b>. ¿Desea confirmar?',\n },\n configurations: {\n title: 'Configuración',\n },\n },\n\n credits: {\n buy: {\n title: 'Comprar créditos de IA',\n externalTitle: 'Créditos de IA',\n externalDescription: 'Para adquirir créditos de IA, acceda a su área de suscripción.',\n externalButton: 'Ir al área de suscripción',\n creditsOptionLabel: '{credits} créditos de IA',\n creditsOptionDisplayValue: '{credits} créditos de IA',\n paymentOnConfirm: 'El pago se procesará en el momento de la confirmación.',\n nextInvoiceChanges: 'Los cambios entrarán en vigor a partir de su próxima factura.',\n defaultPrice: 'Estándar',\n immediateCharge: 'Cargo inmediato',\n totalPlanValue: 'Valor total del plan',\n confirmAndPay: 'Confirmar y pagar',\n creditsChangedToast: 'Créditos de IA cambiados a {credits}',\n purchaseSuccessToast: '¡Compra completada! Se agregaron {credits} créditos de IA a tu saldo.',\n pixConfirmedToast: '¡Pago confirmado! {credits} créditos de IA ya están en tu saldo.',\n },\n disabled: {\n title: 'Compra de créditos no disponible',\n descriptionLine1: 'Solo los administradores y propietarios pueden comprar créditos de IA.',\n descriptionLine2:\n 'Pida a un administrador o propietario de la cuenta que adquiera más créditos.',\n understood: 'Entendido',\n },\n paidPlanRequired: {\n defaultTitle: 'Función disponible en planes de pago',\n defaultDescription: 'Para acceder a esta función, actualice a un plan de pago',\n knowPlans: 'Ver planes',\n },\n },\n\n cards: {\n add: {\n stepBilling: 'Facturación',\n stepCard: 'Tarjeta',\n externalTitle: 'Gestión de tarjetas no disponible',\n externalDescription: 'Accede a tu área de suscripción para gestionar tus métodos de pago.',\n externalButton: 'Acceder al área de suscripción',\n title: 'Añadir tarjeta',\n billingHeading: 'Añade tu información de facturación',\n cardHeading: 'Añade la información de tu tarjeta',\n authenticating: 'Autenticando...',\n submitting: 'Añadiendo tarjeta...',\n submit: 'Añadir tarjeta',\n errorInitAuth: 'No se pudo iniciar la autenticación de la tarjeta, intenta de nuevo.',\n errorAuth: 'Falló la autenticación de la tarjeta.',\n errorAuthStatus: 'Autenticación no completada (estado: {status}).',\n statusUnknown: 'desconocido',\n successToast: 'Tarjeta añadida correctamente.',\n errorSave: 'No se pudo guardar tu nueva tarjeta, intenta de nuevo.',\n },\n form: {\n nameOnCard: 'Nombre impreso en la tarjeta',\n typeHere: 'Escribe aquí',\n cardNumber: 'Número de tarjeta',\n cardExpiry: 'Fecha de vencimiento',\n cardCvc: 'CVC',\n country: 'País',\n select: 'Selecciona',\n personType: 'Tipo de persona',\n personTypePf: 'Persona física',\n personTypePj: 'Persona jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nombre completo',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Dirección',\n streetNumber: 'Número',\n city: 'Ciudad',\n state: 'UF',\n stateProvince: 'Estado/Provincia',\n neighborhood: 'Barrio',\n complement: 'Complemento',\n cardNumberRequired: 'El número de tarjeta es obligatorio',\n cardExpiryRequired: 'La fecha de vencimiento es obligatoria',\n cardCvcRequired: 'El código de seguridad es obligatorio',\n },\n delete: {\n title: 'Eliminar tarjeta',\n description: 'Realmente deseas eliminar la tarjeta:',\n confirmLabel: 'Escribe ELIMINAR a continuación',\n confirmPlaceholder: 'ELIMINAR',\n deleting: 'Eliminando...',\n successToast: 'La tarjeta •••• {digits} se eliminó correctamente',\n errorToast: 'No se pudo eliminar la tarjeta',\n },\n cannotDelete: {\n title: 'No se puede eliminar esta tarjeta',\n description: 'Esta tarjeta está en uso y tiene una suscripción activa vinculada. Selecciona otra tarjeta como predeterminada o añade una nueva.',\n selectDefault: 'Selecciona una tarjeta como predeterminada:',\n addNewCard: 'Añadir nueva tarjeta',\n errorUpdateCard: 'Error al actualizar la tarjeta de la suscripción',\n },\n item: {\n defaultBadge: 'Predeterminada',\n makeDefault: 'Establecer como predeterminada',\n setDefaultSuccess: 'Tarjeta establecida como predeterminada',\n setDefaultError: 'Error al establecer la tarjeta predeterminada',\n },\n paymentInfo: {\n email: 'Correo electrónico',\n payment: 'Pago',\n addCard: 'Añadir tarjeta',\n selectPaymentMethod: 'Selecciona el método de pago',\n manageCards: 'Gestionar tarjetas',\n newPaymentMethod: 'Nuevo método de pago',\n },\n },\n billing: {\n requiredData: {\n title: 'Completa tus datos de facturación',\n description:\n 'Necesitamos esta información para emitir la factura de tus pagos. Completarla es obligatorio para seguir usando la plataforma.',\n addressHeading: 'Dirección de facturación',\n select: 'Selecciona',\n typeHere: 'Escribe aquí',\n personType: 'Tipo de persona',\n personTypePf: 'Persona física',\n personTypePj: 'Persona jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nombre completo',\n companyName: 'Razón social',\n financialEmail: 'Correo de facturación',\n financialEmailPlaceholder: 'facturacion@empresa.com',\n cep: 'Código postal',\n postalCode: 'Código postal',\n street: 'Dirección',\n streetNumber: 'Número',\n neighborhood: 'Barrio',\n complement: 'Complemento',\n city: 'Ciudad',\n state: 'Estado',\n stateProvince: 'Estado/Provincia',\n country: 'País',\n submit: 'Guardar y continuar',\n submitting: 'Guardando...',\n successToast: 'Datos de facturación guardados con éxito.',\n errorToast: 'No se pudieron guardar los datos de facturación, inténtalo de nuevo.',\n requiredField: 'Campo obligatorio',\n invalidEmail: 'Correo electrónico inválido',\n invalidCep: 'Código postal inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpj: 'CNPJ inválido',\n invalidCpfChecksum: 'CPF inválido — revisa los dígitos verificadores',\n invalidCnpjChecksum: 'CNPJ inválido — revisa los dígitos verificadores',\n },\n },\n navigation: {\n banners: {\n cancelled: {\n message: '¡Suscripción cancelada! Tus páginas han sido retiradas del aire.',\n choosePlan: 'Elige un nuevo plan',\n },\n overdue: {\n message: 'Tu suscripción está vencida y tus páginas pueden ser retiradas del aire en cualquier momento.',\n attemptsMessage: 'El pago falló. {count, plural, one {Queda # intento} other {Quedan # intentos}} antes de la cancelación. Actualiza tu forma de pago.',\n details: 'Detalles',\n },\n pending: {\n message: 'Tu suscripción ha sido cancelada, tienes hasta {limitDate} con tus páginas en línea.',\n reactivate: 'Reactivar suscripción',\n },\n upcoming: {\n message: 'Factura pendiente. Paga antes del {dueDate} para evitar la suspensión de tus páginas.',\n details: 'Detalles',\n },\n trial: {\n message: 'Período de prueba: {days, plural, =0 {¡tu prueba termina hoy!} one {queda # día para terminar} other {quedan # días para terminar}}.',\n choosePlan: 'Suscríbete ahora',\n },\n },\n projectSelector: {\n title: 'Proyectos',\n searchPlaceholder: 'Busca aquí',\n emptyLine1: 'No se encontró ningún proyecto.',\n emptyLine2: 'Crea un proyecto para comenzar.',\n noResults: 'No se encontraron resultados.',\n manageProjects: 'Gestionar proyectos',\n },\n bottomLinks: {\n news: 'Novedades',\n helpCenter: 'Centro de ayuda',\n sendSuggestions: 'Enviar sugerencias',\n },\n creditsCard: {\n label: 'Créditos utilizados',\n },\n planCard: {\n knowPlans: 'Conoce nuestros planes',\n },\n },\n subscription: {\n frozen: {\n banner: {\n message: 'Los recursos de tu cuenta están bloqueados por falta de pago.',\n regularize: 'Regularizar suscripción',\n },\n warningBanner: {\n message: 'Pago atrasado: los recursos de tu cuenta se bloquearán el {freezeDate}. Regulariza para no perder el acceso.',\n details: 'Detalles',\n },\n modal: {\n title: 'Los recursos de tu cuenta están bloqueados',\n description: 'No identificamos el pago, así que estos recursos están bloqueados:',\n warningTitle: 'Tus recursos se bloquearán el {freezeDate}',\n warningDescription: 'El pago está atrasado. Si no lo identificamos hasta entonces, estos recursos se bloquearán:',\n keepsWorking: 'Tus páginas publicadas siguen en línea y tus leads se siguen capturando. Todo vuelve automáticamente en cuanto se identifique el pago.',\n resources: {\n pages: 'Publicar, crear y editar páginas',\n projects: 'Crear y editar proyectos',\n leadsExport: 'Exportar leads',\n pageSettings: 'Configuración de la página, incluidas las notificaciones de leads',\n domains: 'Conectar nuevos dominios',\n users: 'Invitar usuarios y cambiar permisos del equipo',\n abTests: 'Crear y editar pruebas A/B',\n uploads: 'Subir imágenes, PDF y otros archivos',\n integrations: 'Gestionar integraciones',\n },\n cta: 'Regularizar suscripción',\n },\n },\n },\n forms: {\n combobox: {\n placeholder: 'Selecciona una opción',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'No se encontró ninguna opción.',\n },\n datePicker: {\n placeholder: 'Selecciona la fecha',\n },\n dateRangePicker: {\n placeholder: 'Selecciona el período',\n },\n phoneInput: {\n optional: '(Opcional)',\n searchPlaceholder: 'Buscar país...',\n emptyMessage: 'No se encontró ningún país',\n },\n select: {\n placeholder: 'Selecciona una opción',\n optional: '(Opcional)',\n },\n copyButton: {\n tooltipDefault: 'Copiar enlace',\n successDefault: 'Enlace copiado',\n errorMessage: 'No se pudo copiar el enlace',\n },\n circularProgress: {\n ariaLabel: 'Progreso de exportación',\n },\n },\n imageUpload: {\n cropTitle: 'Ajustar imagen',\n cropHint: 'Arrastra para ajustar el área de recorte',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Foto menor que {dimensionText}',\n tooSmallTitleGeneric: 'Foto muy pequeña',\n tooSmallBodyFileWithDimension: 'El archivo \"{fileName}\" es menor que {dimensionText}. Sube una imagen de al menos {dimensionText} para continuar.',\n tooSmallBodyFileGeneric: 'El archivo \"{fileName}\" es menor que el tamaño mínimo requerido. Sube una imagen más grande para continuar.',\n tooSmallBodyNoFileWithDimension: 'La imagen seleccionada es menor que {dimensionText}. Sube una imagen de al menos {dimensionText} para continuar.',\n tooSmallBodyNoFileGeneric: 'La imagen seleccionada es menor que el tamaño mínimo requerido. Sube una imagen más grande para continuar.',\n sendAnother: 'Enviar otra',\n errorSvg: 'El formato SVG no es compatible. Usa PNG, JPEG, WebP o GIF.',\n errorFormat: 'Formato no compatible. Usa PNG, JPEG, WebP o GIF.',\n errorTooLarge: 'Archivo demasiado grande. Máximo {maxSize}MB.',\n },\n notifications: {\n page: {\n title: 'Notificaciones',\n subtitle: 'Mantén el control total sobre tus páginas, experiencias y conversiones.',\n markAllReadDesktop: 'Marcar todo como leído',\n markAllReadMobile: 'Marcar como leído',\n tabAll: 'Todas las notificaciones',\n tabUnread: 'No leídas',\n details: 'Detalles',\n empty: 'No se encontró ninguna notificación.',\n markAllSuccess: 'Todas las notificaciones se marcaron como leídas',\n markAllError: 'Error al marcar notificaciones como leídas',\n },\n popover: {\n title: 'Últimas notificaciones',\n empty: 'Sin notificaciones por ahora',\n viewAll: 'Todas las notificaciones',\n },\n },\n layout: {\n navbar: {\n expandMenu: 'Expandir menú',\n greatPages: 'GreatPages',\n pages: 'Páginas',\n },\n profile: {\n usedCredits: 'Créditos utilizados',\n loggingOut: 'Cerrando tu sesión...',\n logout: 'Cerrar sesión',\n },\n usersSelector: {\n title: 'Usuarios',\n add: 'Añadir',\n searchPlaceholder: 'Busca aquí',\n empty: 'No se encontró ningún usuario.',\n noResults: 'No se encontraron resultados.',\n addToProject: 'Añadir al proyecto',\n removeFromProject: 'Eliminar del proyecto',\n manageTeam: 'Gestionar equipo',\n },\n },\n notFound: {\n title: '¡Página no encontrada!',\n description: 'La página que buscas no existe. Verifica que hayas escrito correctamente el enlace que buscas.',\n backToHome: 'Volver al inicio',\n },\n\n // Planos: features e main features (mapApiPlanToUiPlan).\n plans: {\n features: {\n unlimitedVisits: 'Visitas ilimitadas',\n unlimitedLeads: 'Leads ilimitados',\n sharePages: 'Compartir páginas',\n hosting: 'Hosting incluido',\n freeTemplates: 'Plantillas gratuitas',\n onboarding: 'Reunión de Onboarding',\n projectManagement: 'Gestión de proyectos',\n },\n names: {\n '415': 'Starter',\n '1': 'Essential',\n '2': 'Growth',\n '3': 'Agency',\n },\n mainFeatures: {\n pagesUnlimited: 'Páginas ilimitadas',\n pageSingular: '1 página',\n pagesPlural: '{count} páginas',\n domainsUnlimited: 'Dominios ilimitados',\n domainSingular: '1 dominio externo',\n domainsPlural: '{count} dominios externos',\n usersUnlimited: 'Usuarios ilimitados',\n },\n usdNotConfigured: 'USD no configurado',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: 'No se pudo autenticar el pago con tu banco.',\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Mensual',\n semiannual: 'Semestral',\n annual: 'Anual',\n suffixMonthly: '/mes',\n suffixSemiannual: '/semestre',\n suffixAnnual: '/año',\n labelMonthly: 'mensual',\n labelSemiannual: 'semestral',\n labelAnnual: 'anual',\n },\n\n languages: {\n 'pt-br': 'Portugués (Brasil)',\n 'en-us': 'Inglés (EE. UU.)',\n 'es-es': 'Español',\n },\n} as const;\n\nexport default messages;\n"],"mappings":"AAKA,MAAM,WAAW;AAAA,EACf,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EAEA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EAEA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,wBAAwB;AAAA,IACxB,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,uBAAuB;AAAA,IACvB,mBAAmB;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,cAAc;AAAA,IACd,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,mBAAmB;AAAA,MACjB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,sBAAsB;AAAA,IACxB;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,MACP,aACE;AAAA,MACF,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,kBAAkB;AAAA,MAClB,wBAAwB;AAAA,MACxB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,SAAS;AAAA,QACP,WAAW;AAAA,QACX,WAAW;AAAA,QACX,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,kBACE;AAAA,MACF,kBACE;AAAA,MACF,YAAY;AAAA,IACd;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,MACP,SACE;AAAA,MACF,gBAAgB;AAAA,MAChB,SAAS;AAAA,MACT,OAAO;AAAA,MACP,aAAa;AAAA,MACb,cAAc;AAAA,MACd,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,MACP,aACE;AAAA,MACF,SAAS;AAAA,MACT,kBAAkB;AAAA,IACpB;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,MACP,cACE;AAAA,MACF,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,eACE;AAAA,MACF,eAAe;AAAA,MACf,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,eAAe;AAAA,MACf,cAAc;AAAA,MACd,cAAc;AAAA,MACd,oBACE;AAAA,MACF,mBAAmB;AAAA,MACnB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,aAAa;AAAA,IACf;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,QAAQ;AAAA,MACR,mBAAmB;AAAA,MACnB,eAAe;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,MACA,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AAAA,IACA,KAAK;AAAA,MACH,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,IACd;AAAA,IACA,aAAa;AAAA,MACX,OAAO;AAAA,MACP,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,mBACE;AAAA,MACF,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,cAAc;AAAA,MACd,kBAAkB;AAAA,IACpB;AAAA,IACA,aAAa;AAAA,MACX,WAAW;AAAA,MACX,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,WAAW;AAAA,MACX,mBAAmB;AAAA,IACrB;AAAA,IACA,UAAU;AAAA,MACR,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,yBACE;AAAA,MACF,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa;AAAA,MACb,0BACE;AAAA,MACF,iBAAiB;AAAA,IACnB;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa;AAAA,MACb,WAAW;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,iBAAiB;AAAA,MACjB,4BAA4B;AAAA,MAC5B,aAAa;AAAA,MACb,wBAAwB;AAAA,MACxB,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA,mBAAmB;AAAA,MACjB,OAAO;AAAA,MACP,eAAe;AAAA,MACf,SACE;AAAA,IACJ;AAAA,IACA,gBAAgB;AAAA,MACd,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,SAAS;AAAA,IACP,KAAK;AAAA,MACH,OAAO;AAAA,MACP,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,2BAA2B;AAAA,MAC3B,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,sBAAsB;AAAA,MACtB,mBAAmB;AAAA,IACrB;AAAA,IACA,UAAU;AAAA,MACR,OAAO;AAAA,MACP,kBAAkB;AAAA,MAClB,kBACE;AAAA,MACF,YAAY;AAAA,IACd;AAAA,IACA,kBAAkB;AAAA,MAChB,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,KAAK;AAAA,MACH,aAAa;AAAA,MACb,UAAU;AAAA,MACV,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AAAA,IACA,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,MACP,eAAe;AAAA,MACf,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,IACnB;AAAA,IACA,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB,UAAU;AAAA,MACV,cAAc;AAAA,MACd,YAAY;AAAA,IACd;AAAA,IACA,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACnB;AAAA,IACA,MAAM;AAAA,MACJ,cAAc;AAAA,MACd,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,IACnB;AAAA,IACA,aAAa;AAAA,MACX,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,qBAAqB;AAAA,MACrB,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,aACE;AAAA,MACF,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,2BAA2B;AAAA,MAC3B,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,eAAe;AAAA,MACf,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,IACvB;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,SAAS;AAAA,MACP,WAAW;AAAA,QACT,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,MACA,SAAS;AAAA,QACP,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,SAAS;AAAA,MACX;AAAA,MACA,SAAS;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,MACA,UAAU;AAAA,QACR,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,gBAAgB;AAAA,IAClB;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACnB;AAAA,IACA,aAAa;AAAA,MACX,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,MACA,eAAe;AAAA,QACb,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,cAAc;AAAA,QACd,WAAW;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,aAAa;AAAA,UACb,cAAc;AAAA,UACd,SAAS;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAS;AAAA,UACT,cAAc;AAAA,QAChB;AAAA,QACA,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,UAAU;AAAA,MACR,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,cAAc;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,MACV,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,aAAa;AAAA,IACf;AAAA,IACA,YAAY;AAAA,MACV,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,cAAc;AAAA,IAChB;AAAA,IACA,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA,kBAAkB;AAAA,MAChB,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,4BAA4B;AAAA,IAC5B,sBAAsB;AAAA,IACtB,+BAA+B;AAAA,IAC/B,yBAAyB;AAAA,IACzB,iCAAiC;AAAA,IACjC,2BAA2B;AAAA,IAC3B,aAAa;AAAA,IACb,UAAU;AAAA,IACV,aAAa;AAAA,IACb,eAAe;AAAA,EACjB;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,SAAS;AAAA,MACT,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,SAAS;AAAA,MACP,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,MACL,mBAAmB;AAAA,MACnB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,cAAc;AAAA,MACd,mBAAmB;AAAA,MACnB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AAAA;AAAA,EAGA,OAAO;AAAA,IACL,UAAU;AAAA,MACR,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,mBAAmB;AAAA,IACrB;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,cAAc;AAAA,MACZ,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,gBAAgB;AAAA,IAClB;AAAA,IACA,kBAAkB;AAAA,EACpB;AAAA;AAAA,EAGA,SAAS;AAAA,IACP,YAAY;AAAA,EACd;AAAA;AAAA,EAGA,aAAa;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EAEA,WAAW;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AACF;AAEA,IAAO,gBAAQ;","names":[]}
|
|
@@ -422,16 +422,30 @@ const messages = {
|
|
|
422
422
|
subscription: {
|
|
423
423
|
frozen: {
|
|
424
424
|
banner: {
|
|
425
|
-
message: "
|
|
425
|
+
message: "Os recursos da sua conta est\xE3o bloqueados por falta de pagamento.",
|
|
426
426
|
regularize: "Regularizar assinatura"
|
|
427
427
|
},
|
|
428
428
|
warningBanner: {
|
|
429
|
-
message: "Pagamento em atraso: sua conta ser\
|
|
429
|
+
message: "Pagamento em atraso: os recursos da sua conta ser\xE3o bloqueados em {freezeDate}. Regularize para n\xE3o perder o acesso.",
|
|
430
430
|
details: "Detalhes"
|
|
431
431
|
},
|
|
432
432
|
modal: {
|
|
433
|
-
title: "
|
|
434
|
-
description: "
|
|
433
|
+
title: "Recursos da sua conta bloqueados",
|
|
434
|
+
description: "O pagamento n\xE3o foi identificado, ent\xE3o estes recursos est\xE3o bloqueados:",
|
|
435
|
+
warningTitle: "Seus recursos ser\xE3o bloqueados em {freezeDate}",
|
|
436
|
+
warningDescription: "O pagamento est\xE1 em atraso. Se n\xE3o for identificado at\xE9 l\xE1, estes recursos ser\xE3o bloqueados:",
|
|
437
|
+
keepsWorking: "Suas p\xE1ginas publicadas continuam no ar e seus leads seguem sendo capturados. Assim que o pagamento for identificado, tudo volta automaticamente.",
|
|
438
|
+
resources: {
|
|
439
|
+
pages: "Publicar, criar e editar p\xE1ginas",
|
|
440
|
+
projects: "Criar e editar projetos",
|
|
441
|
+
leadsExport: "Exportar leads",
|
|
442
|
+
pageSettings: "Configura\xE7\xF5es da p\xE1gina, incluindo notifica\xE7\xF5es de leads",
|
|
443
|
+
domains: "Conectar novos dom\xEDnios",
|
|
444
|
+
users: "Convidar usu\xE1rios e alterar permiss\xF5es da equipe",
|
|
445
|
+
abTests: "Criar e editar testes A/B",
|
|
446
|
+
uploads: "Enviar imagens, PDFs e outros arquivos",
|
|
447
|
+
integrations: "Gerenciar integra\xE7\xF5es"
|
|
448
|
+
},
|
|
435
449
|
cta: "Regularizar assinatura"
|
|
436
450
|
}
|
|
437
451
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/messages/pt-br.ts"],"sourcesContent":["/**\n * Catálogo de traduções pt-br dos componentes da @greatapps/common.\n * Os apps consumidores mesclam este objeto sob o namespace `common`.\n *\n * Padrão modular: cada chave de primeiro nível é um **módulo** (um agrupamento por\n * componente/domínio). Para adicionar traduções, crie/edite o módulo correspondente aqui\n * e replique a mesma estrutura em `en-us.ts` e `es-es.ts`.\n *\n * pt-br é a fonte da verdade — os textos saem verbatim do que o componente já exibe hoje.\n */\nconst messages = {\n // Vocabulário global de ações (botões, comandos).\n actions: {\n save: 'Salvar',\n saveChanges: 'Salvar alterações',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n delete: 'Excluir',\n edit: 'Editar',\n close: 'Fechar',\n back: 'Voltar',\n continue: 'Continuar',\n add: 'Adicionar',\n remove: 'Remover',\n search: 'Buscar',\n loading: 'Carregando...',\n saving: 'Salvando...',\n sending: 'Enviando...',\n copy: 'Copiar',\n copied: 'Copiado',\n },\n\n // Mensagens de validação de formulário.\n validations: {\n required: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidPhone: 'Telefone inválido',\n },\n\n // Componente: PreferencesSection.\n preferences: {\n title: 'Preferências',\n companyName: 'Nome da empresa',\n companyNamePlaceholder: 'Digite o nome da empresa',\n language: 'Idioma',\n languagePlaceholder: 'Selecione o idioma',\n languageSearch: 'Buscar idioma...',\n currency: 'Moeda',\n currencyPlaceholder: 'Selecione a moeda',\n currencySearch: 'Buscar moeda...',\n timeDisplay: 'Exibição hora',\n timezone: 'Fuso horário',\n timezonePlaceholder: 'Selecione o fuso horário',\n timezoneSearch: 'Buscar fuso horário...',\n timeFormat: 'Formato hora',\n timeFormatPlaceholder: 'Selecione o formato',\n timeFormatOptions: {\n h24: '24 horas',\n h12: '12 horas (AM/PM)',\n },\n savedSuccess: 'Preferências salvas com sucesso',\n saveError: 'Erro ao salvar preferências',\n },\n\n // Conta — modais e seções. `<b>` = trecho em negrito (rich text); `{count}` = interpolação.\n account: {\n notificationTypes: {\n projectUpdates: 'Atualizações de projetos',\n securityAlerts: 'Alertas de segurança',\n planBilling: 'Mudanças no plano ou faturamento',\n scheduledMaintenance: 'Manutenções programadas',\n },\n deleteAccount: {\n title: 'Excluir conta',\n description:\n 'Esta ação é <b>irreversível</b>. Ao confirmar, sua conta e todos os seus dados serão excluídos.',\n reasonLabel: 'Motivo do cancelamento',\n reasonPlaceholder: 'Selecione',\n descriptionLabel: 'Descreva o que levou a tomar essa decisão',\n descriptionPlaceholder: 'Explique sua decisão...',\n charactersCount: '{count}/400 caracteres',\n passwordLabel: 'Senha',\n passwordPlaceholder: 'Informe sua senha',\n submit: 'Excluir conta',\n requiredFields: 'Preencha todos os campos obrigatórios',\n reasons: {\n noFeature: 'A ferramenta não possui uma função que eu preciso',\n technical: 'Encontrei problemas técnicos ou erros no sistema',\n support: 'Tive problemas com o suporte ou atendimento',\n updates: 'As atualizações demoram mais do que o esperado',\n temporary: 'O cancelamento é temporário',\n other: 'Outro motivo',\n },\n },\n deletionWarning: {\n title: 'Sua conta será excluída',\n descriptionLine1:\n 'Sua assinatura está cancelada há 90 dias ou mais. Sua conta e todos os dados serão excluídos permanentemente.',\n descriptionLine2:\n 'Para manter suas informações, reative sua assinatura antes da exclusão. Após esse prazo, não será possível recuperar os dados.',\n reactivate: 'Reativar assinatura',\n },\n confirmDelete: {\n title: 'Uma pena te ver ir!',\n warning:\n 'Todas suas <b>{count} páginas</b> serão deletadas permanentemente. Essa ação é <b>irreversível!</b>',\n sessionExpired: 'Sessão expirada. Preencha os campos novamente.',\n success: 'Conta excluída com sucesso',\n error: 'Erro ao excluir. Tente novamente.',\n keepAccount: 'Manter minha conta',\n deleteAnyway: 'Excluir mesmo assim',\n deleting: 'Excluindo...',\n },\n cantDelete: {\n title: 'Não é possível excluir a conta',\n description:\n 'Você tem uma assinatura ativa. Para excluir sua conta, <b>primeiro cancele a assinatura</b> na página Assinatura e depois tente novamente.',\n confirm: 'Ok, entendi',\n goToSubscription: 'Ir para assinatura',\n },\n twoFactor: {\n title: 'Autenticação de dois fatores',\n instructions:\n 'Instale um aplicativo autenticador no seu celular (ex.: <link>Google Authenticator</link>), escaneie o QR Code ao lado ou copie a chave no aplicativo e, em seguida, digite o código de 6 dígitos gerado para continuar.',\n qrAlt: 'QR Code para autenticação de dois fatores',\n retry: 'Tentar novamente',\n pasteDigits: 'Cole os 6 dígitos abaixo',\n activating: 'Ativando...',\n activate: 'Ativar autenticação',\n recoveryTitle: 'Códigos de segurança',\n recoveryHeading: 'Salve estes códigos de recuperação de emergência',\n recoveryText1:\n 'Se você perder acesso ao seu telefone, não será possível fazer login em sua conta sem um código de dois fatores.',\n recoveryText2: 'Imprima, copie ou escreva em um local seguro os códigos abaixo.',\n copyCodes: 'Copiar códigos',\n finish: 'Finalizar',\n codesCopied: 'Códigos copiados com sucesso',\n generateError: 'Erro ao gerar QR Code. Tente novamente.',\n confirmError: 'Erro ao confirmar código. Tente novamente.',\n disableTitle: 'Desabilitar autenticação 2FA',\n disableDescription:\n 'Informe o código de 6 dígitos do seu aplicativo autenticador para confirmar a desativação.',\n authenticatorCode: 'Código do autenticador',\n disabling: 'Desabilitando...',\n disable: 'Desabilitar 2FA',\n disabledSuccess: 'Autenticação de dois fatores desabilitada',\n disableError: 'Erro ao desabilitar 2FA. Tente novamente.',\n invalidCode: 'Código inválido',\n codeResent: 'Código reenviado',\n resendError: 'Erro ao reenviar código. Tente novamente.',\n },\n profile: {\n title: 'Meu perfil',\n avatarAlt: 'Foto do usuário',\n changePhoto: 'Alterar foto',\n name: 'Nome',\n namePlaceholder: 'Digite seu nome',\n lastName: 'Sobrenome',\n lastNamePlaceholder: 'Digite seu sobrenome',\n gender: 'Gênero',\n genderPlaceholder: 'Selecione seu gênero',\n genderOptions: {\n male: 'Masculino',\n female: 'Feminino',\n },\n phone: 'Telefone',\n change: 'Alterar',\n accessData: 'Dados de acesso',\n email: 'E-mail',\n savedSuccess: 'Perfil atualizado com sucesso',\n saveError: 'Erro ao atualizar perfil',\n },\n otp: {\n validationCode: 'Código de validação',\n incorrectCode: 'Código incorreto',\n resend: 'Reenviar código',\n resendIn: 'Reenviar em <b>{time}</b>',\n validating: 'Validando...',\n },\n changeEmail: {\n title: 'Alterar e-mail',\n confirm: 'Alterar e-mail',\n sentCodeTo: 'Enviamos um código de validação para o E-mail <b>{email}.</b>',\n updateTitle: 'Atualizar E-mail de contato',\n updateDescription: 'Informe o seu novo E-mail para manter seu contato atualizado.',\n newEmail: 'Novo e-mail',\n newEmailPlaceholder: 'Digite seu novo e-mail',\n emailChanged: 'E-mail alterado com sucesso',\n emailExistsError: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n changePhone: {\n titleEdit: 'Alterar telefone',\n titleAdd: 'Adicionar telefone',\n sentCodeTo: 'Enviamos um código de validação para o número atual <b>{phone}.</b>',\n confirm: 'Alterar telefone',\n updateTitle: 'Atualizar telefone de contato',\n addTitle: 'Adicionar telefone de contato',\n updateDescription: 'Informe o novo número para manter seu contato atualizado.',\n addDescription: 'Informe seu número de telefone para contato.',\n newNumber: 'Novo número',\n numberLabel: 'Número de telefone',\n phoneChanged: 'Telefone alterado',\n phoneAdded: 'Telefone adicionado',\n invalidNumber: 'Número de telefone inválido',\n saveError: 'Ocorreu um erro ao salvar o telefone. Tente novamente mais tarde.',\n numberExistsError: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n security: {\n title: 'Segurança',\n googleLinkedTitle: 'Conta Google vinculada',\n googleLinkedDescription:\n 'Sua conta está vinculada ao Google. Se desvincular, use \"Esqueci minha senha\" para redefinir uma senha de acesso por e-mail.',\n unlinking: 'Desvinculando...',\n unlinkGoogle: 'Desvincular Google',\n unlinkError: 'Erro ao desvincular conta Google.',\n deleteAccountDescription:\n 'Esta ação é permanente e não pode ser desfeita. Todos os seus dados, projetos e configurações serão removidos definitivamente.',\n deleteMyAccount: 'Excluir minha conta',\n },\n token: {\n title: 'Token da conta',\n label: 'Token',\n copySuccess: 'Token copiado com sucesso',\n copyError: 'Não foi possível copiar o token',\n info: 'Este token é exclusivo da sua conta e permite acesso à API. Não compartilhe com terceiros.',\n docsLink: 'Acessar a documentação',\n },\n changePassword: {\n title: 'Alterar senha',\n currentPassword: 'Senha atual',\n currentPasswordPlaceholder: 'Digite sua senha atual',\n newPassword: 'Nova senha',\n newPasswordPlaceholder: 'Digite sua nova senha',\n submit: 'Salvar nova senha',\n changeError: 'Erro ao alterar senha',\n changedSuccess: 'Senha alterada com sucesso',\n genericError: 'Erro ao alterar senha. Tente novamente.',\n },\n globalPreferences: {\n title: 'Alterar preferências globais',\n srDescription: 'Confirmação de alteração de preferências globais da conta',\n warning:\n 'Você está alterando configurações que impactam <b>todos os usuários da conta</b>. Deseja confirmar?',\n },\n configurations: {\n title: 'Configurações',\n },\n },\n\n // Modais de créditos de IA.\n credits: {\n buy: {\n title: 'Comprar créditos de IA',\n externalTitle: 'Créditos de IA',\n externalDescription: 'Para adquirir créditos de IA, acesse sua área de assinatura.',\n externalButton: 'Acessar área de assinatura',\n creditsOptionLabel: '{credits} créditos de IA',\n creditsOptionDisplayValue: '{credits} créditos de IA',\n paymentOnConfirm: 'O pagamento será processado no momento da confirmação.',\n nextInvoiceChanges: 'As alterações entrarão em vigor a partir da sua próxima fatura.',\n defaultPrice: 'Padrão',\n immediateCharge: 'Cobrança imediata',\n totalPlanValue: 'Valor total do plano',\n confirmAndPay: 'Confirmar e pagar',\n creditsChangedToast: 'Créditos de IA alterados para {credits}',\n purchaseSuccessToast: 'Compra concluída! {credits} créditos de IA foram adicionados ao seu saldo.',\n pixConfirmedToast: 'Pagamento confirmado! {credits} créditos de IA já estão no seu saldo.',\n },\n disabled: {\n title: 'Compra de créditos indisponível',\n descriptionLine1: 'Apenas administradores e proprietários podem comprar créditos de IA.',\n descriptionLine2:\n 'Peça a um administrador ou proprietário da conta para adquirir mais créditos.',\n understood: 'Entendi',\n },\n paidPlanRequired: {\n defaultTitle: 'Recurso disponível em planos pagos',\n defaultDescription: 'Para acessar este recurso, faça upgrade para um plano pago',\n knowPlans: 'Conhecer planos',\n },\n },\n\n // Cartões: adicionar, formulário, excluir, não-pode-excluir, item, info de pagamento.\n cards: {\n add: {\n stepBilling: 'Cobrança',\n stepCard: 'Cartão',\n externalTitle: 'Gerenciamento de cartões indisponível',\n externalDescription: 'Acesse sua área de assinatura para gerenciar formas de pagamento.',\n externalButton: 'Acessar área de assinatura',\n title: 'Adicionar cartão',\n billingHeading: 'Adicione suas informações de cobrança',\n cardHeading: 'Adicione informações do seu cartão',\n authenticating: 'Autenticando...',\n submitting: 'Adicionando cartão...',\n submit: 'Adicionar cartão',\n errorInitAuth: 'Não foi possível iniciar a autenticação do cartão, tente novamente.',\n errorAuth: 'Falha na autenticação do cartão.',\n errorAuthStatus: 'Autenticação não concluída (status: {status}).',\n statusUnknown: 'desconhecido',\n successToast: 'Cartão adicionado com sucesso.',\n errorSave: 'Não foi possível salvar o seu novo cartão, tente novamente.',\n },\n form: {\n nameOnCard: 'Nome impresso no cartão',\n typeHere: 'Digite aqui',\n cardNumber: 'Número do cartão',\n cardExpiry: 'Data de validade',\n cardCvc: 'CVC',\n country: 'País',\n select: 'Selecione',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n cardNumberRequired: 'Número do cartão é obrigatório',\n cardExpiryRequired: 'Data de validade é obrigatória',\n cardCvcRequired: 'Código de segurança é obrigatório',\n },\n delete: {\n title: 'Excluir cartão',\n description: 'Deseja realmente excluir o cartão:',\n confirmLabel: 'Digite EXCLUIR abaixo',\n confirmPlaceholder: 'EXCLUIR',\n deleting: 'Excluindo...',\n successToast: 'O cartão •••• {digits} foi excluído com sucesso',\n errorToast: 'Não foi possível excluir o cartão',\n },\n cannotDelete: {\n title: 'Não é possível excluir este cartão',\n description: 'Este cartão está em uso e tem uma assinatura ativa vinculada a ele. Selecione outro cartão como padrão ou adicione um novo.',\n selectDefault: 'Selecione um cartão como padrão:',\n addNewCard: 'Adicionar novo cartão',\n errorUpdateCard: 'Erro ao atualizar cartão da assinatura',\n },\n item: {\n defaultBadge: 'Padrão',\n makeDefault: 'Tornar padrão',\n setDefaultSuccess: 'Cartão definido como padrão',\n setDefaultError: 'Erro ao definir cartão padrão',\n },\n paymentInfo: {\n email: 'E-mail',\n payment: 'Pagamento',\n addCard: 'Adicionar cartão',\n selectPaymentMethod: 'Selecione a forma de pagamento',\n manageCards: 'Gerenciar cartões',\n newPaymentMethod: 'Nova forma de pagamento',\n },\n },\n\n // Componente: RequiredBillingDataModal.\n billing: {\n requiredData: {\n title: 'Complete seus dados de cobrança',\n description:\n 'Precisamos dessas informações para emitir a nota fiscal dos seus pagamentos. O preenchimento é obrigatório para continuar usando a plataforma.',\n addressHeading: 'Endereço de cobrança',\n select: 'Selecione',\n typeHere: 'Digite aqui',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n companyName: 'Razão social',\n financialEmail: 'E-mail financeiro',\n financialEmailPlaceholder: 'financeiro@empresa.com',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n country: 'País',\n submit: 'Salvar e continuar',\n submitting: 'Salvando...',\n successToast: 'Dados de cobrança salvos com sucesso.',\n errorToast: 'Não foi possível salvar os dados de cobrança, tente novamente.',\n requiredField: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidCep: 'CEP inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpj: 'CNPJ inválido',\n invalidCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n invalidCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n },\n },\n\n // Componentes de navegação: banners de assinatura, seletor de projeto, links de rodapé, créditos, plano.\n navigation: {\n banners: {\n cancelled: {\n message: 'Assinatura cancelada! Suas páginas foram retiradas do ar.',\n choosePlan: 'Escolher um novo plano',\n },\n overdue: {\n message: 'Sua assinatura está atrasada e suas páginas podem ser retiradas do ar a qualquer momento.',\n attemptsMessage: 'Pagamento falhou. {count, plural, one {Resta # tentativa} other {Restam # tentativas}} antes do cancelamento. Atualize sua forma de pagamento.',\n details: 'Detalhes',\n },\n pending: {\n message: 'Sua assinatura foi cancelada, você possui até {limitDate} com suas páginas online.',\n reactivate: 'Reativar assinatura',\n },\n upcoming: {\n message: 'Fatura em aberto. Pague até {dueDate} para evitar a suspensão das suas páginas.',\n details: 'Detalhes',\n },\n trial: {\n message: 'Período de teste: {days, plural, =0 {seu teste termina hoje!} one {falta # dia para terminar} other {faltam # dias para terminar}}.',\n choosePlan: 'Assinar agora',\n },\n },\n projectSelector: {\n title: 'Projetos',\n searchPlaceholder: 'Busque aqui',\n emptyLine1: 'Nenhum projeto encontrado.',\n emptyLine2: 'Crie um projeto para começar.',\n noResults: 'Nenhum resultado encontrado.',\n manageProjects: 'Gerenciar projetos',\n },\n bottomLinks: {\n news: 'Novidades',\n helpCenter: 'Central de ajuda',\n sendSuggestions: 'Enviar sugestões',\n },\n creditsCard: {\n label: 'Créditos usados',\n },\n planCard: {\n knowPlans: 'Conheça os planos',\n },\n },\n\n // Congelamento por falta de pagamento (date_due + 7d) — banner, aviso de\n // véspera e modal única entre as 3 aplicações.\n subscription: {\n frozen: {\n banner: {\n message: 'Sua conta está com os recursos bloqueados por falta de pagamento.',\n regularize: 'Regularizar assinatura',\n },\n warningBanner: {\n message: 'Pagamento em atraso: sua conta será bloqueada em {freezeDate}. Regularize para não perder o acesso.',\n details: 'Detalhes',\n },\n modal: {\n title: 'Conta bloqueada por falta de pagamento',\n description: 'Sua conta está com os recursos bloqueados por falta de pagamento. Regularize a assinatura para liberar.',\n cta: 'Regularizar assinatura',\n },\n },\n },\n\n // Nomes dos idiomas exibidos no seletor.\n // Planos: features e main features (mapApiPlanToUiPlan).\n plans: {\n features: {\n unlimitedVisits: 'Visitas ilimitadas',\n unlimitedLeads: 'Leads ilimitadas',\n sharePages: 'Compartilhar páginas',\n hosting: 'Hospedagem inclusa',\n freeTemplates: 'Templates gratuitos',\n onboarding: 'Reunião de Onboarding',\n projectManagement: 'Gestão de projetos',\n },\n names: {\n '415': 'Iniciante',\n '1': 'Essencial',\n '2': 'Negócio',\n '3': 'Agência',\n },\n mainFeatures: {\n pagesUnlimited: 'Páginas ilimitadas',\n pageSingular: '1 página',\n pagesPlural: '{count} páginas',\n domainsUnlimited: 'Domínios ilimitados',\n domainSingular: '1 domínio externo',\n domainsPlural: '{count} domínios externos',\n usersUnlimited: 'Usuários ilimitados',\n },\n usdNotConfigured: 'Internacional não configurado',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: 'Não foi possível autenticar o pagamento com seu banco.',\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Mensal',\n semiannual: 'Semestral',\n annual: 'Anual',\n suffixMonthly: '/mês',\n suffixSemiannual: '/semestre',\n suffixAnnual: '/ano',\n labelMonthly: 'mensal',\n labelSemiannual: 'semestral',\n labelAnnual: 'anual',\n },\n\n languages: {\n 'pt-br': 'Português (Brasil)',\n 'en-us': 'Inglês (EUA)',\n 'es-es': 'Espanhol',\n },\n\n // Componentes de formulário e entrada.\n forms: {\n combobox: {\n placeholder: 'Selecione uma opção',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhuma opção encontrada.',\n },\n datePicker: {\n placeholder: 'Selecione a data',\n },\n dateRangePicker: {\n placeholder: 'Selecione o período',\n },\n phoneInput: {\n optional: '(Opcional)',\n searchPlaceholder: 'Buscar país...',\n emptyMessage: 'Nenhum país encontrado',\n },\n select: {\n placeholder: 'Selecione uma opção',\n optional: '(Opcional)',\n },\n copyButton: {\n tooltipDefault: 'Copiar link',\n successDefault: 'Link copiado',\n errorMessage: 'Não foi possível copiar o link',\n },\n circularProgress: {\n ariaLabel: 'Progresso de exportação',\n },\n },\n\n // Componentes: ImageCropModal, ImageTooSmallModal.\n imageUpload: {\n cropTitle: 'Ajustar imagem',\n cropHint: 'Arraste para ajustar a área de corte',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Foto menor que {dimensionText}',\n tooSmallTitleGeneric: 'Foto muito pequena',\n tooSmallBodyFileWithDimension: 'O arquivo \"{fileName}\" é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyFileGeneric: 'O arquivo \"{fileName}\" é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n tooSmallBodyNoFileWithDimension: 'A imagem selecionada é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyNoFileGeneric: 'A imagem selecionada é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n sendAnother: 'Enviar outra',\n errorSvg: 'Formato SVG não é suportado. Use PNG, JPEG, WebP ou GIF.',\n errorFormat: 'Formato não suportado. Use PNG, JPEG, WebP ou GIF.',\n errorTooLarge: 'Arquivo muito grande. Máximo {maxSize}MB.',\n },\n\n // Componentes: NotificationPageContent (Notifications.tsx), NotificationsPopover.tsx.\n notifications: {\n page: {\n title: 'Notificações',\n subtitle: 'Tenha controle total sobre páginas, experiências e conversões.',\n markAllReadDesktop: 'Marcar todos como lidos',\n markAllReadMobile: 'Marcar como lidos',\n tabAll: 'Todas as notificações',\n tabUnread: 'Não lidas',\n details: 'Detalhes',\n empty: 'Nenhuma notificação encontrada.',\n markAllSuccess: 'Todas as notificações foram marcadas como lidas',\n markAllError: 'Erro ao marcar notificações como lidas',\n },\n popover: {\n title: 'Últimas notificações',\n empty: 'Sem notificações por enquanto',\n viewAll: 'Todas as notificações',\n },\n },\n\n // Componentes: NavBar.tsx, ProfilePopover.tsx, UsersSelectorPopover.tsx.\n layout: {\n navbar: {\n expandMenu: 'Expandir menu',\n greatPages: 'GreatPages',\n pages: 'Páginas',\n },\n profile: {\n usedCredits: 'Créditos usados',\n loggingOut: 'Saindo da sua conta...',\n logout: 'Sair',\n },\n usersSelector: {\n title: 'Usuários',\n add: 'Adicionar',\n searchPlaceholder: 'Busque aqui',\n empty: 'Nenhum usuário encontrado.',\n noResults: 'Nenhum resultado encontrado.',\n addToProject: 'Adicionar ao projeto',\n removeFromProject: 'Remover do projeto',\n manageTeam: 'Gerenciar equipe',\n },\n },\n\n // Componente: NotFoundPage.tsx.\n notFound: {\n title: 'Página não foi encontrada!',\n description: 'A página que você está procurando não existe. Verifique se digitou corretamente o link que está procurando.',\n backToHome: 'Voltar para o início',\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/messages/pt-br.ts"],"sourcesContent":["/**\n * Catálogo de traduções pt-br dos componentes da @greatapps/common.\n * Os apps consumidores mesclam este objeto sob o namespace `common`.\n *\n * Padrão modular: cada chave de primeiro nível é um **módulo** (um agrupamento por\n * componente/domínio). Para adicionar traduções, crie/edite o módulo correspondente aqui\n * e replique a mesma estrutura em `en-us.ts` e `es-es.ts`.\n *\n * pt-br é a fonte da verdade — os textos saem verbatim do que o componente já exibe hoje.\n */\nconst messages = {\n // Vocabulário global de ações (botões, comandos).\n actions: {\n save: 'Salvar',\n saveChanges: 'Salvar alterações',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n delete: 'Excluir',\n edit: 'Editar',\n close: 'Fechar',\n back: 'Voltar',\n continue: 'Continuar',\n add: 'Adicionar',\n remove: 'Remover',\n search: 'Buscar',\n loading: 'Carregando...',\n saving: 'Salvando...',\n sending: 'Enviando...',\n copy: 'Copiar',\n copied: 'Copiado',\n },\n\n // Mensagens de validação de formulário.\n validations: {\n required: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidPhone: 'Telefone inválido',\n },\n\n // Componente: PreferencesSection.\n preferences: {\n title: 'Preferências',\n companyName: 'Nome da empresa',\n companyNamePlaceholder: 'Digite o nome da empresa',\n language: 'Idioma',\n languagePlaceholder: 'Selecione o idioma',\n languageSearch: 'Buscar idioma...',\n currency: 'Moeda',\n currencyPlaceholder: 'Selecione a moeda',\n currencySearch: 'Buscar moeda...',\n timeDisplay: 'Exibição hora',\n timezone: 'Fuso horário',\n timezonePlaceholder: 'Selecione o fuso horário',\n timezoneSearch: 'Buscar fuso horário...',\n timeFormat: 'Formato hora',\n timeFormatPlaceholder: 'Selecione o formato',\n timeFormatOptions: {\n h24: '24 horas',\n h12: '12 horas (AM/PM)',\n },\n savedSuccess: 'Preferências salvas com sucesso',\n saveError: 'Erro ao salvar preferências',\n },\n\n // Conta — modais e seções. `<b>` = trecho em negrito (rich text); `{count}` = interpolação.\n account: {\n notificationTypes: {\n projectUpdates: 'Atualizações de projetos',\n securityAlerts: 'Alertas de segurança',\n planBilling: 'Mudanças no plano ou faturamento',\n scheduledMaintenance: 'Manutenções programadas',\n },\n deleteAccount: {\n title: 'Excluir conta',\n description:\n 'Esta ação é <b>irreversível</b>. Ao confirmar, sua conta e todos os seus dados serão excluídos.',\n reasonLabel: 'Motivo do cancelamento',\n reasonPlaceholder: 'Selecione',\n descriptionLabel: 'Descreva o que levou a tomar essa decisão',\n descriptionPlaceholder: 'Explique sua decisão...',\n charactersCount: '{count}/400 caracteres',\n passwordLabel: 'Senha',\n passwordPlaceholder: 'Informe sua senha',\n submit: 'Excluir conta',\n requiredFields: 'Preencha todos os campos obrigatórios',\n reasons: {\n noFeature: 'A ferramenta não possui uma função que eu preciso',\n technical: 'Encontrei problemas técnicos ou erros no sistema',\n support: 'Tive problemas com o suporte ou atendimento',\n updates: 'As atualizações demoram mais do que o esperado',\n temporary: 'O cancelamento é temporário',\n other: 'Outro motivo',\n },\n },\n deletionWarning: {\n title: 'Sua conta será excluída',\n descriptionLine1:\n 'Sua assinatura está cancelada há 90 dias ou mais. Sua conta e todos os dados serão excluídos permanentemente.',\n descriptionLine2:\n 'Para manter suas informações, reative sua assinatura antes da exclusão. Após esse prazo, não será possível recuperar os dados.',\n reactivate: 'Reativar assinatura',\n },\n confirmDelete: {\n title: 'Uma pena te ver ir!',\n warning:\n 'Todas suas <b>{count} páginas</b> serão deletadas permanentemente. Essa ação é <b>irreversível!</b>',\n sessionExpired: 'Sessão expirada. Preencha os campos novamente.',\n success: 'Conta excluída com sucesso',\n error: 'Erro ao excluir. Tente novamente.',\n keepAccount: 'Manter minha conta',\n deleteAnyway: 'Excluir mesmo assim',\n deleting: 'Excluindo...',\n },\n cantDelete: {\n title: 'Não é possível excluir a conta',\n description:\n 'Você tem uma assinatura ativa. Para excluir sua conta, <b>primeiro cancele a assinatura</b> na página Assinatura e depois tente novamente.',\n confirm: 'Ok, entendi',\n goToSubscription: 'Ir para assinatura',\n },\n twoFactor: {\n title: 'Autenticação de dois fatores',\n instructions:\n 'Instale um aplicativo autenticador no seu celular (ex.: <link>Google Authenticator</link>), escaneie o QR Code ao lado ou copie a chave no aplicativo e, em seguida, digite o código de 6 dígitos gerado para continuar.',\n qrAlt: 'QR Code para autenticação de dois fatores',\n retry: 'Tentar novamente',\n pasteDigits: 'Cole os 6 dígitos abaixo',\n activating: 'Ativando...',\n activate: 'Ativar autenticação',\n recoveryTitle: 'Códigos de segurança',\n recoveryHeading: 'Salve estes códigos de recuperação de emergência',\n recoveryText1:\n 'Se você perder acesso ao seu telefone, não será possível fazer login em sua conta sem um código de dois fatores.',\n recoveryText2: 'Imprima, copie ou escreva em um local seguro os códigos abaixo.',\n copyCodes: 'Copiar códigos',\n finish: 'Finalizar',\n codesCopied: 'Códigos copiados com sucesso',\n generateError: 'Erro ao gerar QR Code. Tente novamente.',\n confirmError: 'Erro ao confirmar código. Tente novamente.',\n disableTitle: 'Desabilitar autenticação 2FA',\n disableDescription:\n 'Informe o código de 6 dígitos do seu aplicativo autenticador para confirmar a desativação.',\n authenticatorCode: 'Código do autenticador',\n disabling: 'Desabilitando...',\n disable: 'Desabilitar 2FA',\n disabledSuccess: 'Autenticação de dois fatores desabilitada',\n disableError: 'Erro ao desabilitar 2FA. Tente novamente.',\n invalidCode: 'Código inválido',\n codeResent: 'Código reenviado',\n resendError: 'Erro ao reenviar código. Tente novamente.',\n },\n profile: {\n title: 'Meu perfil',\n avatarAlt: 'Foto do usuário',\n changePhoto: 'Alterar foto',\n name: 'Nome',\n namePlaceholder: 'Digite seu nome',\n lastName: 'Sobrenome',\n lastNamePlaceholder: 'Digite seu sobrenome',\n gender: 'Gênero',\n genderPlaceholder: 'Selecione seu gênero',\n genderOptions: {\n male: 'Masculino',\n female: 'Feminino',\n },\n phone: 'Telefone',\n change: 'Alterar',\n accessData: 'Dados de acesso',\n email: 'E-mail',\n savedSuccess: 'Perfil atualizado com sucesso',\n saveError: 'Erro ao atualizar perfil',\n },\n otp: {\n validationCode: 'Código de validação',\n incorrectCode: 'Código incorreto',\n resend: 'Reenviar código',\n resendIn: 'Reenviar em <b>{time}</b>',\n validating: 'Validando...',\n },\n changeEmail: {\n title: 'Alterar e-mail',\n confirm: 'Alterar e-mail',\n sentCodeTo: 'Enviamos um código de validação para o E-mail <b>{email}.</b>',\n updateTitle: 'Atualizar E-mail de contato',\n updateDescription: 'Informe o seu novo E-mail para manter seu contato atualizado.',\n newEmail: 'Novo e-mail',\n newEmailPlaceholder: 'Digite seu novo e-mail',\n emailChanged: 'E-mail alterado com sucesso',\n emailExistsError: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n changePhone: {\n titleEdit: 'Alterar telefone',\n titleAdd: 'Adicionar telefone',\n sentCodeTo: 'Enviamos um código de validação para o número atual <b>{phone}.</b>',\n confirm: 'Alterar telefone',\n updateTitle: 'Atualizar telefone de contato',\n addTitle: 'Adicionar telefone de contato',\n updateDescription: 'Informe o novo número para manter seu contato atualizado.',\n addDescription: 'Informe seu número de telefone para contato.',\n newNumber: 'Novo número',\n numberLabel: 'Número de telefone',\n phoneChanged: 'Telefone alterado',\n phoneAdded: 'Telefone adicionado',\n invalidNumber: 'Número de telefone inválido',\n saveError: 'Ocorreu um erro ao salvar o telefone. Tente novamente mais tarde.',\n numberExistsError: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.',\n },\n security: {\n title: 'Segurança',\n googleLinkedTitle: 'Conta Google vinculada',\n googleLinkedDescription:\n 'Sua conta está vinculada ao Google. Se desvincular, use \"Esqueci minha senha\" para redefinir uma senha de acesso por e-mail.',\n unlinking: 'Desvinculando...',\n unlinkGoogle: 'Desvincular Google',\n unlinkError: 'Erro ao desvincular conta Google.',\n deleteAccountDescription:\n 'Esta ação é permanente e não pode ser desfeita. Todos os seus dados, projetos e configurações serão removidos definitivamente.',\n deleteMyAccount: 'Excluir minha conta',\n },\n token: {\n title: 'Token da conta',\n label: 'Token',\n copySuccess: 'Token copiado com sucesso',\n copyError: 'Não foi possível copiar o token',\n info: 'Este token é exclusivo da sua conta e permite acesso à API. Não compartilhe com terceiros.',\n docsLink: 'Acessar a documentação',\n },\n changePassword: {\n title: 'Alterar senha',\n currentPassword: 'Senha atual',\n currentPasswordPlaceholder: 'Digite sua senha atual',\n newPassword: 'Nova senha',\n newPasswordPlaceholder: 'Digite sua nova senha',\n submit: 'Salvar nova senha',\n changeError: 'Erro ao alterar senha',\n changedSuccess: 'Senha alterada com sucesso',\n genericError: 'Erro ao alterar senha. Tente novamente.',\n },\n globalPreferences: {\n title: 'Alterar preferências globais',\n srDescription: 'Confirmação de alteração de preferências globais da conta',\n warning:\n 'Você está alterando configurações que impactam <b>todos os usuários da conta</b>. Deseja confirmar?',\n },\n configurations: {\n title: 'Configurações',\n },\n },\n\n // Modais de créditos de IA.\n credits: {\n buy: {\n title: 'Comprar créditos de IA',\n externalTitle: 'Créditos de IA',\n externalDescription: 'Para adquirir créditos de IA, acesse sua área de assinatura.',\n externalButton: 'Acessar área de assinatura',\n creditsOptionLabel: '{credits} créditos de IA',\n creditsOptionDisplayValue: '{credits} créditos de IA',\n paymentOnConfirm: 'O pagamento será processado no momento da confirmação.',\n nextInvoiceChanges: 'As alterações entrarão em vigor a partir da sua próxima fatura.',\n defaultPrice: 'Padrão',\n immediateCharge: 'Cobrança imediata',\n totalPlanValue: 'Valor total do plano',\n confirmAndPay: 'Confirmar e pagar',\n creditsChangedToast: 'Créditos de IA alterados para {credits}',\n purchaseSuccessToast: 'Compra concluída! {credits} créditos de IA foram adicionados ao seu saldo.',\n pixConfirmedToast: 'Pagamento confirmado! {credits} créditos de IA já estão no seu saldo.',\n },\n disabled: {\n title: 'Compra de créditos indisponível',\n descriptionLine1: 'Apenas administradores e proprietários podem comprar créditos de IA.',\n descriptionLine2:\n 'Peça a um administrador ou proprietário da conta para adquirir mais créditos.',\n understood: 'Entendi',\n },\n paidPlanRequired: {\n defaultTitle: 'Recurso disponível em planos pagos',\n defaultDescription: 'Para acessar este recurso, faça upgrade para um plano pago',\n knowPlans: 'Conhecer planos',\n },\n },\n\n // Cartões: adicionar, formulário, excluir, não-pode-excluir, item, info de pagamento.\n cards: {\n add: {\n stepBilling: 'Cobrança',\n stepCard: 'Cartão',\n externalTitle: 'Gerenciamento de cartões indisponível',\n externalDescription: 'Acesse sua área de assinatura para gerenciar formas de pagamento.',\n externalButton: 'Acessar área de assinatura',\n title: 'Adicionar cartão',\n billingHeading: 'Adicione suas informações de cobrança',\n cardHeading: 'Adicione informações do seu cartão',\n authenticating: 'Autenticando...',\n submitting: 'Adicionando cartão...',\n submit: 'Adicionar cartão',\n errorInitAuth: 'Não foi possível iniciar a autenticação do cartão, tente novamente.',\n errorAuth: 'Falha na autenticação do cartão.',\n errorAuthStatus: 'Autenticação não concluída (status: {status}).',\n statusUnknown: 'desconhecido',\n successToast: 'Cartão adicionado com sucesso.',\n errorSave: 'Não foi possível salvar o seu novo cartão, tente novamente.',\n },\n form: {\n nameOnCard: 'Nome impresso no cartão',\n typeHere: 'Digite aqui',\n cardNumber: 'Número do cartão',\n cardExpiry: 'Data de validade',\n cardCvc: 'CVC',\n country: 'País',\n select: 'Selecione',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n cardNumberRequired: 'Número do cartão é obrigatório',\n cardExpiryRequired: 'Data de validade é obrigatória',\n cardCvcRequired: 'Código de segurança é obrigatório',\n },\n delete: {\n title: 'Excluir cartão',\n description: 'Deseja realmente excluir o cartão:',\n confirmLabel: 'Digite EXCLUIR abaixo',\n confirmPlaceholder: 'EXCLUIR',\n deleting: 'Excluindo...',\n successToast: 'O cartão •••• {digits} foi excluído com sucesso',\n errorToast: 'Não foi possível excluir o cartão',\n },\n cannotDelete: {\n title: 'Não é possível excluir este cartão',\n description: 'Este cartão está em uso e tem uma assinatura ativa vinculada a ele. Selecione outro cartão como padrão ou adicione um novo.',\n selectDefault: 'Selecione um cartão como padrão:',\n addNewCard: 'Adicionar novo cartão',\n errorUpdateCard: 'Erro ao atualizar cartão da assinatura',\n },\n item: {\n defaultBadge: 'Padrão',\n makeDefault: 'Tornar padrão',\n setDefaultSuccess: 'Cartão definido como padrão',\n setDefaultError: 'Erro ao definir cartão padrão',\n },\n paymentInfo: {\n email: 'E-mail',\n payment: 'Pagamento',\n addCard: 'Adicionar cartão',\n selectPaymentMethod: 'Selecione a forma de pagamento',\n manageCards: 'Gerenciar cartões',\n newPaymentMethod: 'Nova forma de pagamento',\n },\n },\n\n // Componente: RequiredBillingDataModal.\n billing: {\n requiredData: {\n title: 'Complete seus dados de cobrança',\n description:\n 'Precisamos dessas informações para emitir a nota fiscal dos seus pagamentos. O preenchimento é obrigatório para continuar usando a plataforma.',\n addressHeading: 'Endereço de cobrança',\n select: 'Selecione',\n typeHere: 'Digite aqui',\n personType: 'Tipo de pessoa',\n personTypePf: 'Pessoa física',\n personTypePj: 'Pessoa jurídica',\n cpf: 'CPF',\n cnpj: 'CNPJ',\n fullName: 'Nome completo',\n companyName: 'Razão social',\n financialEmail: 'E-mail financeiro',\n financialEmailPlaceholder: 'financeiro@empresa.com',\n cep: 'CEP',\n postalCode: 'Código postal',\n street: 'Endereço',\n streetNumber: 'Número',\n neighborhood: 'Bairro',\n complement: 'Complemento',\n city: 'Cidade',\n state: 'UF',\n stateProvince: 'Estado/Província',\n country: 'País',\n submit: 'Salvar e continuar',\n submitting: 'Salvando...',\n successToast: 'Dados de cobrança salvos com sucesso.',\n errorToast: 'Não foi possível salvar os dados de cobrança, tente novamente.',\n requiredField: 'Campo obrigatório',\n invalidEmail: 'E-mail inválido',\n invalidCep: 'CEP inválido',\n invalidCpf: 'CPF inválido',\n invalidCnpj: 'CNPJ inválido',\n invalidCpfChecksum: 'CPF inválido — confira os dígitos verificadores',\n invalidCnpjChecksum: 'CNPJ inválido — confira os dígitos verificadores',\n },\n },\n\n // Componentes de navegação: banners de assinatura, seletor de projeto, links de rodapé, créditos, plano.\n navigation: {\n banners: {\n cancelled: {\n message: 'Assinatura cancelada! Suas páginas foram retiradas do ar.',\n choosePlan: 'Escolher um novo plano',\n },\n overdue: {\n message: 'Sua assinatura está atrasada e suas páginas podem ser retiradas do ar a qualquer momento.',\n attemptsMessage: 'Pagamento falhou. {count, plural, one {Resta # tentativa} other {Restam # tentativas}} antes do cancelamento. Atualize sua forma de pagamento.',\n details: 'Detalhes',\n },\n pending: {\n message: 'Sua assinatura foi cancelada, você possui até {limitDate} com suas páginas online.',\n reactivate: 'Reativar assinatura',\n },\n upcoming: {\n message: 'Fatura em aberto. Pague até {dueDate} para evitar a suspensão das suas páginas.',\n details: 'Detalhes',\n },\n trial: {\n message: 'Período de teste: {days, plural, =0 {seu teste termina hoje!} one {falta # dia para terminar} other {faltam # dias para terminar}}.',\n choosePlan: 'Assinar agora',\n },\n },\n projectSelector: {\n title: 'Projetos',\n searchPlaceholder: 'Busque aqui',\n emptyLine1: 'Nenhum projeto encontrado.',\n emptyLine2: 'Crie um projeto para começar.',\n noResults: 'Nenhum resultado encontrado.',\n manageProjects: 'Gerenciar projetos',\n },\n bottomLinks: {\n news: 'Novidades',\n helpCenter: 'Central de ajuda',\n sendSuggestions: 'Enviar sugestões',\n },\n creditsCard: {\n label: 'Créditos usados',\n },\n planCard: {\n knowPlans: 'Conheça os planos',\n },\n },\n\n // Congelamento por falta de pagamento (date_due + 7d) — banner, aviso de\n // véspera e modal única entre as 3 aplicações.\n subscription: {\n frozen: {\n banner: {\n message: 'Os recursos da sua conta estão bloqueados por falta de pagamento.',\n regularize: 'Regularizar assinatura',\n },\n warningBanner: {\n message: 'Pagamento em atraso: os recursos da sua conta serão bloqueados em {freezeDate}. Regularize para não perder o acesso.',\n details: 'Detalhes',\n },\n modal: {\n title: 'Recursos da sua conta bloqueados',\n description: 'O pagamento não foi identificado, então estes recursos estão bloqueados:',\n warningTitle: 'Seus recursos serão bloqueados em {freezeDate}',\n warningDescription: 'O pagamento está em atraso. Se não for identificado até lá, estes recursos serão bloqueados:',\n keepsWorking: 'Suas páginas publicadas continuam no ar e seus leads seguem sendo capturados. Assim que o pagamento for identificado, tudo volta automaticamente.',\n resources: {\n pages: 'Publicar, criar e editar páginas',\n projects: 'Criar e editar projetos',\n leadsExport: 'Exportar leads',\n pageSettings: 'Configurações da página, incluindo notificações de leads',\n domains: 'Conectar novos domínios',\n users: 'Convidar usuários e alterar permissões da equipe',\n abTests: 'Criar e editar testes A/B',\n uploads: 'Enviar imagens, PDFs e outros arquivos',\n integrations: 'Gerenciar integrações',\n },\n cta: 'Regularizar assinatura',\n },\n },\n },\n\n // Nomes dos idiomas exibidos no seletor.\n // Planos: features e main features (mapApiPlanToUiPlan).\n plans: {\n features: {\n unlimitedVisits: 'Visitas ilimitadas',\n unlimitedLeads: 'Leads ilimitadas',\n sharePages: 'Compartilhar páginas',\n hosting: 'Hospedagem inclusa',\n freeTemplates: 'Templates gratuitos',\n onboarding: 'Reunião de Onboarding',\n projectManagement: 'Gestão de projetos',\n },\n names: {\n '415': 'Iniciante',\n '1': 'Essencial',\n '2': 'Negócio',\n '3': 'Agência',\n },\n mainFeatures: {\n pagesUnlimited: 'Páginas ilimitadas',\n pageSingular: '1 página',\n pagesPlural: '{count} páginas',\n domainsUnlimited: 'Domínios ilimitados',\n domainSingular: '1 domínio externo',\n domainsPlural: '{count} domínios externos',\n usersUnlimited: 'Usuários ilimitados',\n },\n usdNotConfigured: 'Internacional não configurado',\n },\n\n // Autenticação de pagamento (3DS/SCA).\n payment: {\n authFailed: 'Não foi possível autenticar o pagamento com seu banco.',\n },\n\n // Periodicidade de cobrança.\n periodicity: {\n monthly: 'Mensal',\n semiannual: 'Semestral',\n annual: 'Anual',\n suffixMonthly: '/mês',\n suffixSemiannual: '/semestre',\n suffixAnnual: '/ano',\n labelMonthly: 'mensal',\n labelSemiannual: 'semestral',\n labelAnnual: 'anual',\n },\n\n languages: {\n 'pt-br': 'Português (Brasil)',\n 'en-us': 'Inglês (EUA)',\n 'es-es': 'Espanhol',\n },\n\n // Componentes de formulário e entrada.\n forms: {\n combobox: {\n placeholder: 'Selecione uma opção',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhuma opção encontrada.',\n },\n datePicker: {\n placeholder: 'Selecione a data',\n },\n dateRangePicker: {\n placeholder: 'Selecione o período',\n },\n phoneInput: {\n optional: '(Opcional)',\n searchPlaceholder: 'Buscar país...',\n emptyMessage: 'Nenhum país encontrado',\n },\n select: {\n placeholder: 'Selecione uma opção',\n optional: '(Opcional)',\n },\n copyButton: {\n tooltipDefault: 'Copiar link',\n successDefault: 'Link copiado',\n errorMessage: 'Não foi possível copiar o link',\n },\n circularProgress: {\n ariaLabel: 'Progresso de exportação',\n },\n },\n\n // Componentes: ImageCropModal, ImageTooSmallModal.\n imageUpload: {\n cropTitle: 'Ajustar imagem',\n cropHint: 'Arraste para ajustar a área de corte',\n cropAlt: 'Crop',\n tooSmallTitleWithDimension: 'Foto menor que {dimensionText}',\n tooSmallTitleGeneric: 'Foto muito pequena',\n tooSmallBodyFileWithDimension: 'O arquivo \"{fileName}\" é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyFileGeneric: 'O arquivo \"{fileName}\" é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n tooSmallBodyNoFileWithDimension: 'A imagem selecionada é menor que {dimensionText}. Faça envio de uma imagem com pelo menos {dimensionText} para continuar.',\n tooSmallBodyNoFileGeneric: 'A imagem selecionada é menor que o tamanho mínimo exigido. Faça envio de uma imagem maior para continuar.',\n sendAnother: 'Enviar outra',\n errorSvg: 'Formato SVG não é suportado. Use PNG, JPEG, WebP ou GIF.',\n errorFormat: 'Formato não suportado. Use PNG, JPEG, WebP ou GIF.',\n errorTooLarge: 'Arquivo muito grande. Máximo {maxSize}MB.',\n },\n\n // Componentes: NotificationPageContent (Notifications.tsx), NotificationsPopover.tsx.\n notifications: {\n page: {\n title: 'Notificações',\n subtitle: 'Tenha controle total sobre páginas, experiências e conversões.',\n markAllReadDesktop: 'Marcar todos como lidos',\n markAllReadMobile: 'Marcar como lidos',\n tabAll: 'Todas as notificações',\n tabUnread: 'Não lidas',\n details: 'Detalhes',\n empty: 'Nenhuma notificação encontrada.',\n markAllSuccess: 'Todas as notificações foram marcadas como lidas',\n markAllError: 'Erro ao marcar notificações como lidas',\n },\n popover: {\n title: 'Últimas notificações',\n empty: 'Sem notificações por enquanto',\n viewAll: 'Todas as notificações',\n },\n },\n\n // Componentes: NavBar.tsx, ProfilePopover.tsx, UsersSelectorPopover.tsx.\n layout: {\n navbar: {\n expandMenu: 'Expandir menu',\n greatPages: 'GreatPages',\n pages: 'Páginas',\n },\n profile: {\n usedCredits: 'Créditos usados',\n loggingOut: 'Saindo da sua conta...',\n logout: 'Sair',\n },\n usersSelector: {\n title: 'Usuários',\n add: 'Adicionar',\n searchPlaceholder: 'Busque aqui',\n empty: 'Nenhum usuário encontrado.',\n noResults: 'Nenhum resultado encontrado.',\n addToProject: 'Adicionar ao projeto',\n removeFromProject: 'Remover do projeto',\n manageTeam: 'Gerenciar equipe',\n },\n },\n\n // Componente: NotFoundPage.tsx.\n notFound: {\n title: 'Página não foi encontrada!',\n description: 'A página que você está procurando não existe. Verifique se digitou corretamente o link que está procurando.',\n backToHome: 'Voltar para o início',\n },\n} as const;\n\nexport default messages;\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { IconLock } from '@tabler/icons-react';
|
|
3
|
+
import { IconLock, IconAlertTriangle } from '@tabler/icons-react';
|
|
4
4
|
import { useTranslations } from 'next-intl';
|
|
5
5
|
import { Button } from '../ui/buttons/Button';
|
|
6
|
+
import { Separator } from '../ui/data-display/Separator';
|
|
6
7
|
import {
|
|
7
8
|
Dialog,
|
|
8
9
|
DialogContent,
|
|
@@ -12,16 +13,47 @@ import {
|
|
|
12
13
|
} from '../ui/overlay/Dialog';
|
|
13
14
|
import { useWhitelabelUrls, useExternalContracting } from '../../providers/whitelabel.provider';
|
|
14
15
|
import { useModalManager } from '../../store/useModalManager';
|
|
16
|
+
import { formatShortDate } from '../../infra/utils/date';
|
|
17
|
+
|
|
18
|
+
/* Lista do que o congelamento tira, na ordem do card. O texto mora no catálogo. */
|
|
19
|
+
const BLOCKED_RESOURCE_KEYS = [
|
|
20
|
+
'pages',
|
|
21
|
+
'projects',
|
|
22
|
+
'leadsExport',
|
|
23
|
+
'pageSettings',
|
|
24
|
+
'domains',
|
|
25
|
+
'users',
|
|
26
|
+
'abTests',
|
|
27
|
+
'uploads',
|
|
28
|
+
'integrations',
|
|
29
|
+
] as const;
|
|
30
|
+
|
|
31
|
+
/* `freezeDate` no data = ainda VAI congelar (véspera); sem ele = já congelado. As duas
|
|
32
|
+
* variantes listam os mesmos recursos: o ponto do "Detalhes" no banner é o usuário saber o
|
|
33
|
+
* que perde ANTES de perder. */
|
|
34
|
+
interface FrozenModalData {
|
|
35
|
+
freezeDate?: Date | string | null;
|
|
36
|
+
}
|
|
15
37
|
|
|
16
38
|
export default function AccountFrozenModal() {
|
|
17
39
|
const translate = useTranslations();
|
|
18
|
-
const { activeModal, closeModal } = useModalManager();
|
|
40
|
+
const { activeModal, closeModal, modalData } = useModalManager();
|
|
19
41
|
const isOpen = activeModal === 'accountFrozenModal';
|
|
20
42
|
const { accountsUrl } = useWhitelabelUrls();
|
|
21
43
|
const { redirectToExternal } = useExternalContracting();
|
|
22
44
|
|
|
23
|
-
const
|
|
24
|
-
const
|
|
45
|
+
const freezeDate = (modalData as FrozenModalData | undefined)?.freezeDate ?? null;
|
|
46
|
+
const isWarning = Boolean(freezeDate);
|
|
47
|
+
|
|
48
|
+
const title = isWarning
|
|
49
|
+
? translate('common.subscription.frozen.modal.warningTitle', {
|
|
50
|
+
freezeDate: formatShortDate(freezeDate ? new Date(freezeDate) : null),
|
|
51
|
+
})
|
|
52
|
+
: translate('common.subscription.frozen.modal.title');
|
|
53
|
+
|
|
54
|
+
const description = isWarning
|
|
55
|
+
? translate('common.subscription.frozen.modal.warningDescription')
|
|
56
|
+
: translate('common.subscription.frozen.modal.description');
|
|
25
57
|
|
|
26
58
|
const handleRegularize = () => {
|
|
27
59
|
if (redirectToExternal('plans')) return;
|
|
@@ -32,23 +64,39 @@ export default function AccountFrozenModal() {
|
|
|
32
64
|
<Dialog open={isOpen} onOpenChange={() => closeModal()}>
|
|
33
65
|
<DialogContent className="flex flex-col p-0 gap-0 w-full md:w-[410px] lg:w-[410px]">
|
|
34
66
|
<DialogHeader className="gap-3 text-left p-5">
|
|
35
|
-
<div
|
|
36
|
-
|
|
67
|
+
<div
|
|
68
|
+
className={`flex items-center justify-center w-10 h-10 rounded-lg ${isWarning ? 'bg-orange-50' : 'bg-zinc-50'}`}
|
|
69
|
+
>
|
|
70
|
+
{isWarning ? (
|
|
71
|
+
<IconAlertTriangle size={20} className="text-orange-500" />
|
|
72
|
+
) : (
|
|
73
|
+
<IconLock size={24} className="text-zinc-950" />
|
|
74
|
+
)}
|
|
37
75
|
</div>
|
|
38
76
|
<div className="flex flex-col gap-2">
|
|
39
77
|
<DialogTitle className="paragraph-medium-semibold text-zinc-950">
|
|
40
78
|
{title}
|
|
41
79
|
</DialogTitle>
|
|
42
|
-
<DialogDescription className="paragraph-small-regular text-zinc-600">
|
|
43
|
-
|
|
80
|
+
<DialogDescription className="paragraph-small-regular text-zinc-600" asChild>
|
|
81
|
+
<div className="flex flex-col gap-3">
|
|
82
|
+
<p>{description}</p>
|
|
83
|
+
<ul className="flex flex-col gap-1.5 list-disc pl-4">
|
|
84
|
+
{BLOCKED_RESOURCE_KEYS.map((key) => (
|
|
85
|
+
<li key={key}>
|
|
86
|
+
{translate(`common.subscription.frozen.modal.resources.${key}`)}
|
|
87
|
+
</li>
|
|
88
|
+
))}
|
|
89
|
+
</ul>
|
|
90
|
+
<p>{translate('common.subscription.frozen.modal.keepsWorking')}</p>
|
|
91
|
+
</div>
|
|
44
92
|
</DialogDescription>
|
|
45
93
|
</div>
|
|
46
94
|
</DialogHeader>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
>
|
|
95
|
+
|
|
96
|
+
<Separator />
|
|
97
|
+
|
|
98
|
+
<div className="flex items-center gap-2 p-5">
|
|
99
|
+
<Button className="w-fit h-10!" onClick={handleRegularize}>
|
|
52
100
|
{translate('common.subscription.frozen.modal.cta')}
|
|
53
101
|
</Button>
|
|
54
102
|
</div>
|
|
@@ -15,6 +15,7 @@ import { PendingCancellationBanner } from "./PendingCancellationBanner";
|
|
|
15
15
|
import { TrialBanner } from "./TrialBanner";
|
|
16
16
|
import { FrozenAccountBanner } from "./FrozenAccountBanner";
|
|
17
17
|
import { FreezeWarningBanner } from "./FreezeWarningBanner";
|
|
18
|
+
import { useModalManager } from "../../store/useModalManager";
|
|
18
19
|
|
|
19
20
|
const UPCOMING_WINDOW_DAYS = 7;
|
|
20
21
|
const PAYMENT_METHOD_BOLETO = 2;
|
|
@@ -29,6 +30,7 @@ export function SubscriptionBanner({
|
|
|
29
30
|
onDetails,
|
|
30
31
|
}: SubscriptionBannerProps) {
|
|
31
32
|
const { data: { data: [subscription] = [] } = {} } = useActiveSubscription();
|
|
33
|
+
const { openModal } = useModalManager();
|
|
32
34
|
const { data: pendingChargesData, isLoading: isLoadingCharges } = useCharges({
|
|
33
35
|
page: 1,
|
|
34
36
|
limit: 1,
|
|
@@ -83,14 +85,23 @@ export function SubscriptionBanner({
|
|
|
83
85
|
// Congelamento (date_due + ACCOUNT_FREEZE_AFTER_DAYS): entra antes do dunning
|
|
84
86
|
// e do aviso genérico de atraso, que hoje engolem essa janela.
|
|
85
87
|
const freezeState = getAccountFreezeState(subscription);
|
|
88
|
+
// "Detalhes" abre a MESMA modal do bloqueio, com a lista do que o congelamento tira: no
|
|
89
|
+
// aviso o usuário precisa ver o que vai perder antes de perder. O `freezeDate` no data é
|
|
90
|
+
// o que faz a modal renderizar a variante de véspera.
|
|
91
|
+
//
|
|
92
|
+
// IGNORA o `onDetails` do host de propósito: nos apps ele abre os detalhes da COBRANÇA,
|
|
93
|
+
// que responde outra pergunta. Aqui "Detalhes" significa "o que eu perco".
|
|
86
94
|
if (freezeState === "frozen") {
|
|
87
|
-
return
|
|
95
|
+
return (
|
|
96
|
+
<FrozenAccountBanner onDetails={() => openModal("accountFrozenModal")} />
|
|
97
|
+
);
|
|
88
98
|
}
|
|
89
99
|
if (freezeState === "warning") {
|
|
100
|
+
const freezeDate = getAccountFreezeDate(subscription);
|
|
90
101
|
return (
|
|
91
102
|
<FreezeWarningBanner
|
|
92
|
-
freezeDate={
|
|
93
|
-
onDetails={
|
|
103
|
+
freezeDate={freezeDate}
|
|
104
|
+
onDetails={() => openModal("accountFrozenModal", { freezeDate })}
|
|
94
105
|
/>
|
|
95
106
|
);
|
|
96
107
|
}
|
|
@@ -435,17 +435,31 @@ const messages = {
|
|
|
435
435
|
subscription: {
|
|
436
436
|
frozen: {
|
|
437
437
|
banner: {
|
|
438
|
-
message: 'Your account
|
|
439
|
-
regularize: '
|
|
438
|
+
message: 'Your account resources are blocked due to missing payment.',
|
|
439
|
+
regularize: 'Update subscription',
|
|
440
440
|
},
|
|
441
441
|
warningBanner: {
|
|
442
|
-
message: 'Payment overdue: your account will be blocked on {freezeDate}.
|
|
442
|
+
message: 'Payment overdue: your account resources will be blocked on {freezeDate}. Pay now to keep your access.',
|
|
443
443
|
details: 'Details',
|
|
444
444
|
},
|
|
445
445
|
modal: {
|
|
446
|
-
title: '
|
|
447
|
-
description: '
|
|
448
|
-
|
|
446
|
+
title: 'Your account resources are blocked',
|
|
447
|
+
description: 'We could not identify your payment, so these resources are blocked:',
|
|
448
|
+
warningTitle: 'Your resources will be blocked on {freezeDate}',
|
|
449
|
+
warningDescription: 'Your payment is overdue. If we do not identify it by then, these resources will be blocked:',
|
|
450
|
+
keepsWorking: 'Your published pages stay online and your leads keep coming in. Everything is restored automatically once the payment goes through.',
|
|
451
|
+
resources: {
|
|
452
|
+
pages: 'Publishing, creating and editing pages',
|
|
453
|
+
projects: 'Creating and editing projects',
|
|
454
|
+
leadsExport: 'Exporting leads',
|
|
455
|
+
pageSettings: 'Page settings, including lead notifications',
|
|
456
|
+
domains: 'Connecting new domains',
|
|
457
|
+
users: 'Inviting users and changing team permissions',
|
|
458
|
+
abTests: 'Creating and editing A/B tests',
|
|
459
|
+
uploads: 'Uploading images, PDFs and other files',
|
|
460
|
+
integrations: 'Managing integrations',
|
|
461
|
+
},
|
|
462
|
+
cta: 'Update subscription',
|
|
449
463
|
},
|
|
450
464
|
},
|
|
451
465
|
},
|
|
@@ -436,16 +436,30 @@ const messages = {
|
|
|
436
436
|
subscription: {
|
|
437
437
|
frozen: {
|
|
438
438
|
banner: {
|
|
439
|
-
message: '
|
|
439
|
+
message: 'Los recursos de tu cuenta están bloqueados por falta de pago.',
|
|
440
440
|
regularize: 'Regularizar suscripción',
|
|
441
441
|
},
|
|
442
442
|
warningBanner: {
|
|
443
|
-
message: 'Pago atrasado: tu cuenta
|
|
443
|
+
message: 'Pago atrasado: los recursos de tu cuenta se bloquearán el {freezeDate}. Regulariza para no perder el acceso.',
|
|
444
444
|
details: 'Detalles',
|
|
445
445
|
},
|
|
446
446
|
modal: {
|
|
447
|
-
title: '
|
|
448
|
-
description: '
|
|
447
|
+
title: 'Los recursos de tu cuenta están bloqueados',
|
|
448
|
+
description: 'No identificamos el pago, así que estos recursos están bloqueados:',
|
|
449
|
+
warningTitle: 'Tus recursos se bloquearán el {freezeDate}',
|
|
450
|
+
warningDescription: 'El pago está atrasado. Si no lo identificamos hasta entonces, estos recursos se bloquearán:',
|
|
451
|
+
keepsWorking: 'Tus páginas publicadas siguen en línea y tus leads se siguen capturando. Todo vuelve automáticamente en cuanto se identifique el pago.',
|
|
452
|
+
resources: {
|
|
453
|
+
pages: 'Publicar, crear y editar páginas',
|
|
454
|
+
projects: 'Crear y editar proyectos',
|
|
455
|
+
leadsExport: 'Exportar leads',
|
|
456
|
+
pageSettings: 'Configuración de la página, incluidas las notificaciones de leads',
|
|
457
|
+
domains: 'Conectar nuevos dominios',
|
|
458
|
+
users: 'Invitar usuarios y cambiar permisos del equipo',
|
|
459
|
+
abTests: 'Crear y editar pruebas A/B',
|
|
460
|
+
uploads: 'Subir imágenes, PDF y otros archivos',
|
|
461
|
+
integrations: 'Gestionar integraciones',
|
|
462
|
+
},
|
|
449
463
|
cta: 'Regularizar suscripción',
|
|
450
464
|
},
|
|
451
465
|
},
|
|
@@ -453,16 +453,30 @@ const messages = {
|
|
|
453
453
|
subscription: {
|
|
454
454
|
frozen: {
|
|
455
455
|
banner: {
|
|
456
|
-
message: '
|
|
456
|
+
message: 'Os recursos da sua conta estão bloqueados por falta de pagamento.',
|
|
457
457
|
regularize: 'Regularizar assinatura',
|
|
458
458
|
},
|
|
459
459
|
warningBanner: {
|
|
460
|
-
message: 'Pagamento em atraso: sua conta
|
|
460
|
+
message: 'Pagamento em atraso: os recursos da sua conta serão bloqueados em {freezeDate}. Regularize para não perder o acesso.',
|
|
461
461
|
details: 'Detalhes',
|
|
462
462
|
},
|
|
463
463
|
modal: {
|
|
464
|
-
title: '
|
|
465
|
-
description: '
|
|
464
|
+
title: 'Recursos da sua conta bloqueados',
|
|
465
|
+
description: 'O pagamento não foi identificado, então estes recursos estão bloqueados:',
|
|
466
|
+
warningTitle: 'Seus recursos serão bloqueados em {freezeDate}',
|
|
467
|
+
warningDescription: 'O pagamento está em atraso. Se não for identificado até lá, estes recursos serão bloqueados:',
|
|
468
|
+
keepsWorking: 'Suas páginas publicadas continuam no ar e seus leads seguem sendo capturados. Assim que o pagamento for identificado, tudo volta automaticamente.',
|
|
469
|
+
resources: {
|
|
470
|
+
pages: 'Publicar, criar e editar páginas',
|
|
471
|
+
projects: 'Criar e editar projetos',
|
|
472
|
+
leadsExport: 'Exportar leads',
|
|
473
|
+
pageSettings: 'Configurações da página, incluindo notificações de leads',
|
|
474
|
+
domains: 'Conectar novos domínios',
|
|
475
|
+
users: 'Convidar usuários e alterar permissões da equipe',
|
|
476
|
+
abTests: 'Criar e editar testes A/B',
|
|
477
|
+
uploads: 'Enviar imagens, PDFs e outros arquivos',
|
|
478
|
+
integrations: 'Gerenciar integrações',
|
|
479
|
+
},
|
|
466
480
|
cta: 'Regularizar assinatura',
|
|
467
481
|
},
|
|
468
482
|
},
|