fix
This commit is contained in:
@@ -78,7 +78,7 @@ export const pt: MessageDict = {
|
||||
"auth.login.failed": "Falha no inÃÂcio de sessão",
|
||||
"auth.login.passwordNotSet": "Esta conta ainda precisa de uma palavra-passe. Abra o link do convite ou peça a um administrador para emitir um novo.",
|
||||
"auth.login.setPasswordFirstTitle": "Defina primeiro a palavra-passe:",
|
||||
"auth.login.setPasswordFirstBody": "utilize o link do convite do seu e-mail. Se o link foi para um endereço antigo (desvio de e-mail), peça a um administrador da empresa para emitir um novo convite de definição de palavra-passe para {email}.",
|
||||
"auth.login.setPasswordFirstBody": "utilize o link do convite do seu e-mail. Se precisar de um novo link, peça a um administrador da empresa para reemitir um link de definição de palavra-passe para {email}.",
|
||||
"auth.login.yourEmail": "o seu e-mail",
|
||||
"auth.login.platformAdminsReissue": "Os administradores da plataforma podem reemitir a partir de",
|
||||
"auth.login.adminUsersLink": "Admin → Utilizadores",
|
||||
@@ -144,9 +144,9 @@ export const pt: MessageDict = {
|
||||
"auth.invite.acceptFailed": "Não foi possÃÂvel aceitar o convite",
|
||||
"auth.invite.setPasswordFailed": "Não foi possÃÂvel definir a palavra-passe",
|
||||
"auth.invite.expired": "Este convite é inválido ou expirou. Peça ao administrador da empresa para enviar um novo convite e abra o novo link (ou cole o novo token abaixo).",
|
||||
"auth.invite.setPasswordExpired": "Este link de definição de palavra-passe é inválido ou expirou. Peça a um administrador da empresa ou da plataforma para o reemitir e abra o novo link (ou cole o novo token abaixo).",
|
||||
"auth.invite.setPasswordExpired": "Este link de definição de palavra-passe é inválido ou expirou. Peça a um administrador da empresa para reemitir um link de definição de palavra-passe para este e-mail e abra o novo link (ou cole o novo token abaixo).",
|
||||
"auth.invite.emailMismatchDefault": "Tem sessão iniciada com um e-mail diferente deste convite.",
|
||||
"auth.invite.expiredFooter": "Link expirado? Peça a um administrador para o reemitir  não há API de reenvio self-service. Administradores da plataforma:",
|
||||
"auth.invite.expiredFooter": "Link expirado? Peça a um administrador da empresa para o reemitir — não há API de reenvio self-service.",
|
||||
"auth.invite.adminUsersLink": "Admin → Utilizadores",
|
||||
"auth.invite.doneTitle": "Já faz parte da equipa",
|
||||
"auth.invite.doneSetPasswordTitle": "Palavra-passe guardada",
|
||||
@@ -163,7 +163,7 @@ export const pt: MessageDict = {
|
||||
"auth.invite.switchAccountTitle": "Mudar de conta:",
|
||||
"auth.invite.switchAccountBody": "termine a sessão e conclua este formulário com o e-mail convidado{emailSuffix}.",
|
||||
"auth.invite.reissueTitle": "Caminho de reemissão:",
|
||||
"auth.invite.reissueBody": "se o seu e-mail real de inÃÂcio de sessão mudou (desvio de e-mail), peça a um administrador da empresa para revogar este convite e enviar um novo para o e-mail que utiliza para iniciar sessão. Os administradores da plataforma também podem reemitir links de definição de palavra-passe em Admin → Utilizadores.",
|
||||
"auth.invite.reissueBody": "peça a um administrador da empresa para reemitir um link de definição de palavra-passe para este e-mail, ou para revogar este convite e enviar um novo para o e-mail que utiliza para iniciar sessão.",
|
||||
"locale.switcher": "Idioma da interface",
|
||||
"locale.menu": "Escolher idioma da interface",
|
||||
"locale.label": "Idioma do painel",
|
||||
@@ -276,7 +276,7 @@ export const pt: MessageDict = {
|
||||
"settings.table.lastUsed": "Última utilização",
|
||||
"dashboard.demoSandbox": "Sandbox de demonstração",
|
||||
"dashboard.demoEmptyTitle": "A sandbox de demonstração está vazia",
|
||||
"dashboard.demoEmptyHint": "A sandbox de demonstração está vazia  mude para A1 ou ligue um feed para ver estatÃÂsticas reais do catálogo.",
|
||||
"dashboard.demoEmptyHint": "A sandbox de demonstração está vazia — ligue um feed para ver estatísticas reais do catálogo.",
|
||||
"dashboard.overviewTitle": "Visão geral",
|
||||
"dashboard.quickLinks": "Ligações rápidas",
|
||||
"dashboard.whatsNew": "Novidades",
|
||||
@@ -319,7 +319,7 @@ export const pt: MessageDict = {
|
||||
"dashboard.workflow.exportMap": "Mapear e exportar",
|
||||
"dashboard.workflowHint": "Catálogo a entrar → enriquecer / processar → exportar ou enviar para lojas. Salte para o passo seguinte para {name}.",
|
||||
"dashboard.overviewHint": "Totais em direto para {name}",
|
||||
"dashboard.demoEmptyMessage": "Mude para A1 (ou outra empresa com dados) no cabeçalho, ou ligue um feed aqui para preencher esta sandbox.",
|
||||
"dashboard.demoEmptyMessage": "Ligue um feed aqui para preencher esta sandbox, ou mude para outra empresa no cabeçalho.",
|
||||
"dashboard.emptyTitle": "Importe um catálogo",
|
||||
"dashboard.emptyMessage": "Catálogo a entrar → enriquecer / processar → exportar ou enviar para lojas. Comece com Primeiros passos abaixo (ou ligue um feed / carregue um CSV).",
|
||||
"dashboard.connectFeedAnyway": "Ligar feed mesmo assim",
|
||||
@@ -367,29 +367,29 @@ export const pt: MessageDict = {
|
||||
"activation.focus.sync": "Seguinte: sincronize uma amostra depois de guardar o mapeamento. Use Sync num feed mapeado  evite origens sem mapa.",
|
||||
"activation.focus.dismiss": "Fechar dica",
|
||||
"activation.dismiss": "Dispensar lista",
|
||||
"hypercare.report.title": "Hypercare de cutover",
|
||||
"hypercare.report.title": "Precisa de ajuda após a mudança?",
|
||||
"hypercare.report.message": "Dados em falta ou incorretos após a migração? Reporte para podermos corrigir o seu espaço de trabalho.",
|
||||
"hypercare.report.cta": "Reportar dados em falta ou incorretos",
|
||||
"hypercare.report.dismiss": "Dispensar",
|
||||
"hypercare.report.adminTriage": "Abrir fila de hypercare",
|
||||
|
||||
"etl.gaps.title": "What did not migrate",
|
||||
"etl.gaps.message": "These areas were intentionally left empty or partial after the Descrybe platform cutover. Nothing is “broken† recreate or reconnect as needed.",
|
||||
"etl.gaps.title": "What still needs setup",
|
||||
"etl.gaps.message": "Some items weren't copied when we moved your workspace. Nothing is broken — recreate or reconnect as needed.",
|
||||
"etl.gaps.dismiss": "Dismiss",
|
||||
"etl.gaps.apiKeys.title": "API keys",
|
||||
"etl.gaps.apiKeys.body": "Legacy API key secrets were not migrated. Create a new key to restore API access  the secret is shown only once.",
|
||||
"etl.gaps.apiKeys.body": "Previous API keys weren't copied. Create a new key to restore API access — the secret is shown only once.",
|
||||
"etl.gaps.apiKeys.cta": "Open API keys",
|
||||
"etl.gaps.blobs.title": "File contents (blobs)",
|
||||
"etl.gaps.blobs.body": "Upload records may exist as metadata only. File bytes were not copied  re-upload CSVs or resync object storage if you need the originals.",
|
||||
"etl.gaps.blobs.countHint": "{count} file records are metadata-only (bytes were not migrated).",
|
||||
"etl.gaps.blobs.title": "Uploaded files",
|
||||
"etl.gaps.blobs.body": "File names may appear even when the file itself wasn't copied. Re-upload CSVs if you need the originals.",
|
||||
"etl.gaps.blobs.countHint": "{count} files are listed without their contents (they weren't copied).",
|
||||
"etl.gaps.blobs.cta": "Open Files",
|
||||
"etl.gaps.jobs.title": "Processing history",
|
||||
"etl.gaps.jobs.body": "Legacy job and task history was not backfilled for cutover. New jobs you start here will appear normally.",
|
||||
"etl.gaps.jobs.emptyHint": "Optional jobs domain was not run  empty history is expected.",
|
||||
"etl.gaps.jobs.migratedHint": "{count} jobs were tagged migrated from an optional backfill.",
|
||||
"etl.gaps.jobs.body": "Earlier job history wasn't imported. New jobs you start here will appear normally.",
|
||||
"etl.gaps.jobs.emptyHint": "Processing history wasn't imported — an empty list is expected.",
|
||||
"etl.gaps.jobs.migratedHint": "{count} jobs were imported from the previous workspace.",
|
||||
"etl.gaps.jobs.cta": "Open Processing",
|
||||
"etl.gaps.woo.title": "Store credentials",
|
||||
"etl.gaps.woo.body": "WooCommerce and Shopify secrets may need to be re-entered after cutover  that is a reconnect step, not a broken sync.",
|
||||
"etl.gaps.woo.body": "WooCommerce and Shopify passwords may need to be re-entered after the move — reconnect your store; sync is not broken.",
|
||||
"etl.gaps.woo.cta": "Open Stores",
|
||||
"etl.gaps.settings.title": "Company settings",
|
||||
"etl.gaps.settings.body": "Only language and merge-products settings were imported. Re-check other company preferences in Settings.",
|
||||
@@ -3690,6 +3690,7 @@ export const pt: MessageDict = {
|
||||
"processing.receipt.cancelledDesc": "O trabalho recém-iniciado foi cancelado.",
|
||||
"processing.receipt.cancelFailed": "Não foi possÃÂvel cancelar o trabalho de processamento",
|
||||
"unsubscribe.title": "Cancelar subscrição",
|
||||
"unsubscribe.useEmailLink": "Use a ligacao de cancelamento no email que lhe enviamos. Abrir esta pagina sem essa ligacao nao pode alterar as suas preferencias de email.",
|
||||
"unsubscribe.me": "Cancelar a minha subscrição",
|
||||
"unsubscribe.invalidLink": "Ligação inválida",
|
||||
"unsubscribe.failedShort": "Falha ao cancelar a subscrição",
|
||||
@@ -4727,6 +4728,10 @@ export const pt: MessageDict = {
|
||||
"seo.terms.description": "Termos de utilização da Descrybe: importação de feeds, enriquecimento de catálogo, conteúdo assistido por IA, exportações e sincronização com WooCommerce para o seu negócio.",
|
||||
"seo.features.title": "Funcionalidades  Feeds, enriquecimento e exportação | Descrybe",
|
||||
"seo.features.description": "Descubra como a Descrybe importa feeds de fornecedores, mapeia campos para a sua taxonomia, enriquece dados de produto e envia catálogos através de feeds de exportação, WooCommerce ou API.",
|
||||
"seo.contactSales.title": "Contactar vendas | Descrybe",
|
||||
"seo.contactSales.description": "Fale-nos do seu catalogo e necessidades de capacidade: prepararemos um plano personalizado que pode pagar online.",
|
||||
"seo.unsubscribe.title": "Cancelar subscricao | Descrybe",
|
||||
"seo.unsubscribe.description": "Pare os emails de marketing da Descrybe usando a ligacao de cancelamento na mensagem que lhe enviamos.",
|
||||
"pricing.page.eyebrow": "Preços",
|
||||
"pricing.page.title": "Planos simples para catálogos em crescimento",
|
||||
"pricing.page.lead": "Comece grátis com mapeamento de feeds e limpeza básica. Faça upgrade quando precisar de tÃÂtulos e descrições com IA, mais produtos, feeds de exportação ou sync WooCommerce  de Starter a Enterprise.",
|
||||
@@ -4734,6 +4739,8 @@ export const pt: MessageDict = {
|
||||
"pricing.page.subscribedMid": "ou comparar planos em",
|
||||
"pricing.page.plansLink": "Planos",
|
||||
"pricing.page.subscribedAfter": ".",
|
||||
"pricing.page.guestSubscribedBefore": "Ja e subscritor?",
|
||||
"pricing.page.guestSubscribedAfter": "para gerir a faturacao e comparar planos.",
|
||||
"legal.lastUpdated": "Última atualização: {date}",
|
||||
"legal.backHome": "↠Voltar ao inÃÂcio",
|
||||
"legal.emailLabel": "E-mail:",
|
||||
@@ -5065,7 +5072,7 @@ export const pt: MessageDict = {
|
||||
"brand.uploadLogo": "Carregar logótipo",
|
||||
"brand.clear": "Limpar",
|
||||
"brand.field.logoUrl": "URL do logótipo",
|
||||
"brand.placeholder.logoUrl": "https://… ou carregado /api/brand/logo/files/…",
|
||||
"brand.placeholder.logoUrl": "https://…",
|
||||
"brand.logoAlt": "Pré-visualização do logótipo da marca",
|
||||
"brand.tipsTitle": "Dicas de fórmula / pré-visualização",
|
||||
"brand.saving": "A guardar…",
|
||||
@@ -5226,6 +5233,8 @@ export const pt: MessageDict = {
|
||||
"pricing.section.publicBefore": "Planos públicos: Free, Starter, Growth, Business e Enterprise. Crie uma conta Free e depois faça upgrade em",
|
||||
"pricing.section.publicOr": "ou",
|
||||
"pricing.section.publicAfter": "via Stripe Checkout. O Enterprise continua a ser gerido pelas vendas.",
|
||||
"pricing.section.guestPublicBefore": "Planos publicos: Free, Starter, Plus, Growth, Business, Scale e Enterprise. Crie uma conta Free e depois",
|
||||
"pricing.section.guestPublicAfter": "para fazer upgrade via Stripe Checkout. O Enterprise continua a ser gerido pelas vendas.",
|
||||
"pricing.section.plansLink": "Planos",
|
||||
"pricing.section.billingLink": "Faturação",
|
||||
"pricing.section.capabilitiesTitle": "Para que está pensado cada plano",
|
||||
@@ -5291,7 +5300,7 @@ export const pt: MessageDict = {
|
||||
"pricing.calc.enterpriseTitle": "Sounds like Enterprise",
|
||||
"pricing.calc.enterpriseBody": "Your feeds or catalog size exceed self-serve caps. Talk to sales for unlimited capacity and a managed AI grant or BYOK.",
|
||||
"pricing.calc.ctaPlan": "Choose {name}",
|
||||
"pricing.calc.disclaimer": "Estimates use list prices and ~2 credits per AI product enhance. Checkout prices come from Stripe. A1 and other client deals stay admin-only.",
|
||||
"pricing.calc.disclaimer": "Estimates use list prices and ~2 credits per AI product enhance. Checkout prices come from Stripe. Custom client deals stay admin-only.",
|
||||
"pricing.card.mostPopular": "Mais popular",
|
||||
"pricing.card.custom": "Personalizado",
|
||||
"pricing.card.forever": "para sempre",
|
||||
|
||||
Reference in New Issue
Block a user