Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
2329 lines
120 KiB
JSON
2329 lines
120 KiB
JSON
{
|
||
"integrations": {
|
||
"accounting": {
|
||
"dialog": {
|
||
"cancel": "Cancelar",
|
||
"enterPlaceholder": "Inserir {{field}}...",
|
||
"errors": {
|
||
"enterExternal": "Insira {{field}}.",
|
||
"invalidJson": "Formato JSON inválido para os metadados.",
|
||
"saveFailed": "Falha ao salvar o mapeamento.",
|
||
"selectAlga": "Selecione {{field}}.",
|
||
"selectExternal": "Selecione {{field}}."
|
||
},
|
||
"manualEntryHelp": "Insira o identificador exatamente como aparece em seu sistema contábil.",
|
||
"metadataLabel": "Metadados (JSON)",
|
||
"metadataPlaceholder": "Metadados opcionais em formato JSON",
|
||
"realmIdLabel": "ID do Realm",
|
||
"saveMapping": "Salvar mapeamento",
|
||
"saving": "Salvando…",
|
||
"selectPlaceholder": "Selecionar {{field}}..."
|
||
},
|
||
"manager": {
|
||
"noModules": "Nenhum módulo de mapeamento configurado."
|
||
},
|
||
"moduleView": {
|
||
"actionsColumn": "Ações",
|
||
"delete": "Excluir",
|
||
"edit": "Editar",
|
||
"errors": {
|
||
"deleteFailed": "Falha ao excluir o mapeamento.",
|
||
"loadFailed": "Falha ao carregar os mapeamentos."
|
||
},
|
||
"loading": "Carregando mapeamentos…",
|
||
"noMappings": "Nenhum mapeamento encontrado.",
|
||
"notAvailable": "N/D",
|
||
"openMenu": "Abrir menu"
|
||
},
|
||
"setup": {
|
||
"activeConfiguration": "Configuração ativa",
|
||
"badges": {
|
||
"enterprise": "Enterprise"
|
||
},
|
||
"comingSoon": "Em breve",
|
||
"configure": "Configurar integração",
|
||
"highlightValues": {
|
||
"csv": "CSV",
|
||
"instant": "Instantâneo",
|
||
"live": "Ao vivo",
|
||
"manual": "Manual",
|
||
"twoWay": "Bidirecional"
|
||
},
|
||
"highlights": {
|
||
"delivery": "Entrega",
|
||
"export": "Exportação",
|
||
"format": "Formato",
|
||
"sync": "Sincronização"
|
||
},
|
||
"options": {
|
||
"qbo": {
|
||
"description": "Conecte seu realm para sincronizar faturas e gerenciar mapeamentos."
|
||
},
|
||
"qboCsv": {
|
||
"description": "Exporte faturas para CSV para importação manual no QuickBooks e importe dados fiscais a partir dos relatórios."
|
||
},
|
||
"xero": {
|
||
"description": "Conecte sua organização com credenciais OAuth de propriedade do tenant para exportações contábeis ao vivo e mapeamentos."
|
||
},
|
||
"xeroCsv": {
|
||
"description": "Exporte faturas para CSV para importação manual no Xero e importe dados fiscais a partir dos relatórios do Xero."
|
||
}
|
||
},
|
||
"selected": "{{title}} selecionado",
|
||
"unavailable": {
|
||
"description": "Esta integração ainda não está disponível. Selecione QuickBooks CSV ou Xero CSV para configurar exportações manuais.",
|
||
"title": "Configuração indisponível"
|
||
}
|
||
},
|
||
"modules": {
|
||
"tabs": {
|
||
"clients": "Clientes",
|
||
"itemsServices": "Itens / Serviços",
|
||
"taxCodes": "Códigos fiscais",
|
||
"paymentTerms": "Condições de pagamento"
|
||
}
|
||
}
|
||
},
|
||
"calendar": {
|
||
"enterprise": {
|
||
"loading": "Carregando as configurações do calendário..."
|
||
}
|
||
},
|
||
"csv": {
|
||
"export": {
|
||
"actions": {
|
||
"exportCsv": "Exportar CSV",
|
||
"generating": "Gerando..."
|
||
},
|
||
"description": "Exporte faturas como arquivo CSV para importação manual no QuickBooks.",
|
||
"errors": {
|
||
"configureMissingMappings": "Configure os mapeamentos ausentes acima e tente exportar novamente.",
|
||
"failed": "Falha na exportação",
|
||
"missingItemMapping": "Mapeamento de item ausente",
|
||
"missingItemMappingId": "Mapeamento de item ausente ({{serviceId}})",
|
||
"missingItemMappingNamed": "Mapeamento de item ausente: {{serviceName}}"
|
||
},
|
||
"fields": {
|
||
"dateRange": "Intervalo de datas (opcional)",
|
||
"invoiceStatuses": "Status de fatura"
|
||
},
|
||
"lockReset": {
|
||
"actions": {
|
||
"reset": "Redefinir bloqueio de exportação"
|
||
},
|
||
"description": "Limpar bloqueios de exportação para permitir reexportar faturas via CSV.",
|
||
"dialog": {
|
||
"cancel": "Cancelar",
|
||
"confirm": "Redefinir bloqueio",
|
||
"confirmBatch": "Isto permitirá que o Alga PSA exporte novamente as faturas do lote {{batchId}}. Se alguma dessas faturas ainda existir no QuickBooks, importar o CSV pode criar duplicatas.",
|
||
"confirmInvoice": "Isto permitirá que o Alga PSA exporte novamente a fatura {{invoiceNumber}}. Se esta fatura ainda existir no QuickBooks, importar o CSV pode criar duplicatas.",
|
||
"resetting": "Redefinindo…",
|
||
"title": "Redefinir bloqueio de exportação?",
|
||
"warning": "Prossiga apenas se tiver certeza de que a fatura não foi importada ou se você a excluiu/cancelou no QuickBooks."
|
||
},
|
||
"errors": {
|
||
"unable": "Não foi possível redefinir o bloqueio de exportação"
|
||
},
|
||
"fields": {
|
||
"batchId": "ID do lote de exportação",
|
||
"batchIdPlaceholder": "ex. e793a514-34bd-4d7b-b266-9bb15f7087c4",
|
||
"invoiceNumber": "Número da fatura",
|
||
"invoiceNumberPlaceholder": "ex. INV-1001"
|
||
},
|
||
"modes": {
|
||
"ariaLabel": "Modo de redefinição de bloqueio de exportação",
|
||
"batch": "Lote",
|
||
"invoice": "Fatura"
|
||
},
|
||
"success": {
|
||
"batchCleared": "Bloqueios de exportação limpos para este lote. Você pode exportar novamente essas faturas.",
|
||
"invoiceCleared": "Bloqueio de exportação limpo. Você pode exportar novamente esta fatura.",
|
||
"noBatchLocks": "Nenhum bloqueio de exportação foi encontrado para esse lote.",
|
||
"noInvoiceLock": "Nenhum bloqueio de exportação encontrado para essa fatura."
|
||
},
|
||
"title": "Reexportar uma fatura",
|
||
"warnings": {
|
||
"duplicates": "Isso pode causar duplicatas no QuickBooks se a fatura ainda existir lá."
|
||
}
|
||
},
|
||
"success": {
|
||
"one": "{{count}} fatura exportada para {{filename}}",
|
||
"other": "{{count}} faturas exportadas para {{filename}}"
|
||
},
|
||
"title": "Exportação CSV para QuickBooks"
|
||
},
|
||
"preview": {
|
||
"duplicates": {
|
||
"description": "As faturas a seguir aparecem várias vezes. Seus valores fiscais serão somados:",
|
||
"title": "Faturas duplicadas ({{count}})"
|
||
},
|
||
"errors": {
|
||
"more": "... e mais {{count}} erros",
|
||
"title": "Erros ({{count}})"
|
||
},
|
||
"importResults": "Resultados da importação",
|
||
"importSummary": {
|
||
"difference": "Diferença:",
|
||
"failedUpdates": "Atualizações com falha:",
|
||
"importedTax": "Imposto importado:",
|
||
"originalTax": "Imposto original:",
|
||
"successfulUpdates": "Atualizações bem-sucedidas:",
|
||
"title": "Resumo da importação"
|
||
},
|
||
"rowLabel": "Linha {{row}}:",
|
||
"stats": {
|
||
"matchedInvoices": "Faturas correspondidas",
|
||
"totalRows": "Total de linhas",
|
||
"uniqueInvoices": "Faturas únicas",
|
||
"validRows": "Linhas válidas"
|
||
},
|
||
"status": {
|
||
"databaseMatch": "Correspondência no banco",
|
||
"rowData": "Dados da linha",
|
||
"structure": "Estrutura"
|
||
},
|
||
"validationPassed": {
|
||
"one": "Validação aprovada. Pronto para importar dados fiscais para {{count}} fatura.",
|
||
"other": "Validação aprovada. Pronto para importar dados fiscais para {{count}} faturas."
|
||
},
|
||
"validationResults": "Resultados da validação",
|
||
"warnings": {
|
||
"more": "... e mais {{count}} avisos",
|
||
"title": "Avisos ({{count}})"
|
||
}
|
||
},
|
||
"settings": {
|
||
"exports": {
|
||
"description": "Crie lotes de exportação, baixe arquivos CSV, importe relatórios fiscais e revise o histórico de exportação.",
|
||
"managedTitle": "Gerenciado pelo Faturamento",
|
||
"openButton": "Abrir exportações contábeis",
|
||
"path": "Faturamento → Exportações contábeis",
|
||
"title": "Exportações contábeis"
|
||
},
|
||
"qbo": {
|
||
"bullets": {
|
||
"exportLabel": "Exportação",
|
||
"exportText": "Gere arquivos CSV compatíveis com o recurso de importação de faturas do QuickBooks",
|
||
"taxImportLabel": "Importação de impostos",
|
||
"taxImportText": "Ao usar cálculo fiscal externo, importe valores fiscais dos relatórios fiscais do QuickBooks"
|
||
},
|
||
"description": "Exporte faturas para CSV para importação manual no QuickBooks e importe dados fiscais dos relatórios do QuickBooks.",
|
||
"exports": {
|
||
"managedPrefix": "Acesse",
|
||
"managedSuffix": "para selecionar faturas, gerar exportações CSV do QuickBooks, importar relatórios fiscais e gerenciar lotes."
|
||
},
|
||
"intro": "Esta integração fornece uma alternativa à conectividade com o QuickBooks baseada em OAuth:",
|
||
"mappings": {
|
||
"description": "Mapeie clientes, serviços, códigos fiscais e condições de pagamento do Alga para os identificadores usados em sua empresa QuickBooks. Estes valores são usados ao gerar a exportação CSV.",
|
||
"title": "Mapeamentos CSV do QuickBooks"
|
||
},
|
||
"note": "Nota: Configure os mapeamentos abaixo antes de exportar. As exportações CSV e as importações de impostos são gerenciadas em Faturamento → Exportações contábeis.",
|
||
"title": "Integração CSV do QuickBooks"
|
||
}
|
||
},
|
||
"taxImport": {
|
||
"actions": {
|
||
"importTaxData": "Importar dados fiscais",
|
||
"importing": "Importando...",
|
||
"validate": "Validar",
|
||
"validating": "Validando..."
|
||
},
|
||
"errors": {
|
||
"importFailed": "Falha na importação",
|
||
"readFile": "Falha ao ler o arquivo",
|
||
"selectFile": "Selecione um arquivo CSV",
|
||
"selectFileAndRange": "Selecione um arquivo e um intervalo de datas",
|
||
"templateDownloadFailed": "Falha ao baixar o modelo",
|
||
"validationFailed": "Falha na validação"
|
||
},
|
||
"fields": {
|
||
"csvFile": "Arquivo CSV",
|
||
"dateRangeHelp": "Apenas faturas dentro deste intervalo de datas serão processadas.",
|
||
"dateRangeRequired": "Intervalo de datas (obrigatório)",
|
||
"dropZone": "Arraste e solte um arquivo CSV aqui, ou clique para navegar",
|
||
"fileSize": "({{size}} KB)"
|
||
},
|
||
"preview": {
|
||
"alreadyImported": "{{count}} fatura(s) já possuem impostos importados.",
|
||
"alreadyImportedSkip": "{{count}} fatura(s) já possuem impostos importados e serão ignoradas.",
|
||
"badges": {
|
||
"databaseMatch": "Correspondência no banco",
|
||
"rowData": "Dados da linha",
|
||
"structure": "Estrutura"
|
||
},
|
||
"columns": {
|
||
"algaInvoice": "Fatura Alga",
|
||
"contact": "Contato",
|
||
"status": "Status",
|
||
"taxAmount": "Valor fiscal",
|
||
"xeroInvoice": "Fatura Xero"
|
||
},
|
||
"errorsTitle": "Erros ({{count}})",
|
||
"matched": "Correspondida",
|
||
"matchedInvoices": "Faturas correspondidas",
|
||
"notPendingDescription": "Estas faturas foram criadas com cálculo fiscal interno. Para importar impostos do Xero, as faturas devem ser configuradas com a origem fiscal \"Pending External\" ao exportar.",
|
||
"notPendingSkip": "{{count}} fatura(s) não têm imposto externo pendente e serão ignoradas.",
|
||
"notPendingTitle": "{{count}} fatura(s) não usam cálculo fiscal externo.",
|
||
"showingFirst20": "Mostrando as primeiras 20 de {{count}} linhas",
|
||
"taxToImport": "Imposto a importar",
|
||
"title": "Resultados da validação",
|
||
"totalRows": "Total de linhas",
|
||
"uniqueInvoices": "Faturas únicas",
|
||
"unmatched": "Não correspondida",
|
||
"validRows": "Linhas válidas",
|
||
"warningsTitle": "Avisos ({{count}})"
|
||
},
|
||
"qbo": {
|
||
"description": "Importe valores fiscais de um arquivo CSV de relatório fiscal do QuickBooks.",
|
||
"help": {
|
||
"csvRequirement": "O CSV deve incluir as colunas Número da fatura, Data da fatura e Valor fiscal.",
|
||
"downloadTemplate": "Baixar modelo CSV",
|
||
"steps": {
|
||
"s1": "No QuickBooks, acesse Reports > All Reports",
|
||
"s2": "Selecione Sales Tax Liability ou Transaction Detail by Account",
|
||
"s3": "Defina o intervalo de datas para corresponder às suas faturas exportadas",
|
||
"s4": "Clique em Export e escolha Export to Excel ou Export to CSV",
|
||
"s5": "Salve o arquivo e faça upload aqui"
|
||
},
|
||
"title": "Como exportar dados fiscais do QuickBooks"
|
||
},
|
||
"success": {
|
||
"one": "Imposto importado com sucesso para {{count}} fatura. Imposto total importado: ${{amount}}",
|
||
"other": "Imposto importado com sucesso para {{count}} faturas. Imposto total importado: ${{amount}}"
|
||
},
|
||
"title": "Importar impostos do CSV do QuickBooks"
|
||
},
|
||
"result": {
|
||
"failed": "{{count}} com falha.",
|
||
"one": "Imposto importado para {{count}} fatura. Imposto total importado: {{amount}}.",
|
||
"other": "Imposto importado para {{count}} faturas. Imposto total importado: {{amount}}.",
|
||
"skipped": "{{count}} ignoradas."
|
||
},
|
||
"unified": {
|
||
"description": "Importe valores fiscais da exportação CSV do seu sistema contábil.",
|
||
"qbResult": {
|
||
"one": "Imposto importado com sucesso para {{count}} fatura. Imposto total importado: {{amount}}",
|
||
"other": "Imposto importado com sucesso para {{count}} faturas. Imposto total importado: {{amount}}"
|
||
},
|
||
"source": {
|
||
"ariaLabel": "Origem da importação CSV",
|
||
"quickbooks": "QuickBooks",
|
||
"xero": "Xero"
|
||
},
|
||
"title": "Importar impostos de CSV",
|
||
"xeroCsvDescription": "O CSV exportado inclui Número da fatura, Nome do contato, Valor da linha, Valor fiscal e categorias de rastreamento.",
|
||
"xeroHelp": {
|
||
"note": "Nota: Apenas faturas originalmente exportadas do Alga PSA (com o rastreamento Source System = AlgaPSA) serão correspondidas.",
|
||
"s1": "No Xero, acesse Sales > Invoices",
|
||
"s2": "Selecione a aba de fatura da qual deseja exportar (ex. Paid, Awaiting Payment)",
|
||
"s3": "(Opcional) Clique em Search para filtrar por data de início, data de fim ou tipo de data",
|
||
"s4": "Clique em Export",
|
||
"s5": "O Xero baixa um arquivo CSV para seu computador",
|
||
"s6": "Faça upload desse arquivo CSV aqui"
|
||
},
|
||
"xeroResult": {
|
||
"one": "Imposto importado para {{count}} fatura. Total: {{amount}}.",
|
||
"other": "Imposto importado para {{count}} faturas. Total: {{amount}}."
|
||
}
|
||
},
|
||
"xero": {
|
||
"description": "Importe valores fiscais de um arquivo CSV de Xero Invoice Details Report.",
|
||
"dropZone": "Arraste e solte um CSV de Xero Invoice Details Report aqui, ou clique para navegar",
|
||
"help": {
|
||
"csvRequirement": "O relatório deve incluir colunas para Número da fatura, Nome do contato, Valor da linha e Valor fiscal. As faturas são correspondidas usando o campo Reference ou as categorias de rastreamento definidas durante a exportação.",
|
||
"steps": {
|
||
"s1": "No Xero, acesse Reports > All Reports",
|
||
"s2": "Selecione Sales (Invoices and Revenue)",
|
||
"s3": "Execute o relatório Invoice Details",
|
||
"s4": "Defina o intervalo de datas para corresponder às suas faturas exportadas",
|
||
"s5": "Clique em Export e escolha CSV",
|
||
"s6": "Faça upload do arquivo exportado aqui"
|
||
},
|
||
"title": "Como exportar dados fiscais do Xero"
|
||
},
|
||
"title": "Importar impostos do CSV do Xero"
|
||
}
|
||
}
|
||
},
|
||
"entra": {
|
||
"settings": {
|
||
"actions": {
|
||
"disconnect": "Desconectar",
|
||
"reconnect": "Reconectar",
|
||
"reconnecting": "Reconectando…",
|
||
"refresh": "Atualizar",
|
||
"resetFieldSync": "Redefinir",
|
||
"reviewMappings": "Revisar mapeamentos",
|
||
"reviewRemap": "Revisar / remapear",
|
||
"hideReviewRemap": "Ocultar Revisar / remapear",
|
||
"runDiscovery": "Executar descoberta",
|
||
"runDiscoveryAgain": "Executar descoberta novamente",
|
||
"runDiscoveryRunning": "Executando descoberta…",
|
||
"runInitialSync": "Executar sincronização inicial",
|
||
"runInitialSyncRunning": "Iniciando sincronização inicial…",
|
||
"saveFieldSync": "Salvar controles de sincronização de campo",
|
||
"savingFieldSync": "Salvando…",
|
||
"syncAll": "Sincronizar todos os tenants agora",
|
||
"syncAllStarting": "Iniciando…"
|
||
},
|
||
"badges": {
|
||
"enterprise": "Enterprise",
|
||
"reviewBeforeInitialSync": "Revisar antes da sincronização inicial"
|
||
},
|
||
"connection": {
|
||
"connectingSuffix": " (Conectando...)",
|
||
"details": "Detalhes da conexão",
|
||
"directCredentialSourceLabel": "Origem das credenciais:",
|
||
"directTenantDefault": "common (multi-tenant)",
|
||
"directTenantLabel": "Tenant Microsoft:",
|
||
"cippServerLabel": "Servidor CIPP:",
|
||
"notAvailable": "Indisponível",
|
||
"notConfigured": "Não configurado",
|
||
"notConnectedStatus": "not_connected",
|
||
"optionsTitle": "Opções de conexão",
|
||
"promptDetails": "Conecte o Entra para preencher os detalhes do provedor."
|
||
},
|
||
"currentStep": {
|
||
"connect": {
|
||
"guidance": "Selecione uma opção de conexão para continuar a integração.",
|
||
"title": "Passo 1: Conectar"
|
||
},
|
||
"connectionsBelow": "As opções de conexão aparecem abaixo.",
|
||
"discover": {
|
||
"guidance": "Execute a descoberta para carregar tenants Entra gerenciados antes do mapeamento.",
|
||
"title": "Passo 2: Descobrir"
|
||
},
|
||
"label": "Passo atual",
|
||
"map": {
|
||
"guidance": "Confirme ou ajuste os mapeamentos de tenant para desbloquear a sincronização inicial.",
|
||
"title": "Passo 3: Mapear"
|
||
},
|
||
"sync": {
|
||
"guidance": "Inicie a primeira execução de sincronização para os mapeamentos confirmados.",
|
||
"title": "Passo 4: Sincronização inicial"
|
||
}
|
||
},
|
||
"description": "Configure o acesso Entra em nível de parceiro, descubra tenants gerenciados, mapeie-os para clientes e execute fluxos de sincronização.",
|
||
"disabled": {
|
||
"description": "A interface de integração Entra está atualmente desabilitada para este tenant.",
|
||
"title": "Integração Microsoft Entra"
|
||
},
|
||
"discovery": {
|
||
"completed": "Descoberta concluída. {{count}} tenants descobertos.",
|
||
"completedOne": "Descoberta concluída. {{count}} tenant descoberto.",
|
||
"failed": "Falha ao executar a descoberta de tenants."
|
||
},
|
||
"errors": {
|
||
"loadStatus": "Falha ao carregar o status de conexão do Entra.",
|
||
"unknown": "Erro desconhecido"
|
||
},
|
||
"fieldSync": {
|
||
"description": "Escolha quais campos de perfil do Entra podem sobrescrever os campos de contato local durante a sincronização.",
|
||
"feedback": {
|
||
"saveFailed": "Falha ao salvar os controles de sincronização de campo.",
|
||
"saved": "Controles de sincronização de campo salvos."
|
||
},
|
||
"options": {
|
||
"displayName": {
|
||
"description": "Permitir que o nome de exibição do Entra sobrescreva o nome completo do contato nos contatos vinculados.",
|
||
"label": "Nome de exibição"
|
||
},
|
||
"email": {
|
||
"description": "Permitir que o e-mail/UPN do Entra sobrescreva o e-mail do contato nos contatos vinculados.",
|
||
"label": "E-mail"
|
||
},
|
||
"phone": {
|
||
"description": "Permitir que os valores de telefone do Entra sobrescrevam o número de telefone do contato nos contatos vinculados.",
|
||
"label": "Telefone"
|
||
},
|
||
"role": {
|
||
"description": "Permitir que o cargo do Entra sobrescreva a função do contato nos contatos vinculados.",
|
||
"label": "Função"
|
||
},
|
||
"upn": {
|
||
"description": "Permitir que o UPN do Entra sobrescreva o nome principal Entra armazenado nos contatos vinculados.",
|
||
"label": "UPN"
|
||
}
|
||
},
|
||
"title": "Controles de sincronização de campo"
|
||
},
|
||
"guidedStep": {
|
||
"current": "atual",
|
||
"complete": "concluído",
|
||
"locked": "bloqueado",
|
||
"stepLabel": "Passo {{number}}",
|
||
"thisIsCurrent": "Este é seu passo atual de integração."
|
||
},
|
||
"initialSync": {
|
||
"failed": "Falha ao iniciar a sincronização inicial do Entra.",
|
||
"started": "Sincronização inicial iniciada. ID da execução: {{runId}}",
|
||
"startedNoId": "Solicitação de início da sincronização inicial aceita."
|
||
},
|
||
"maintenance": {
|
||
"description": "A configuração inicial está concluída. Foque aqui em operações de sincronização, verificações de integridade e revisões de manutenção.",
|
||
"healthDescription": "Revise a integridade da conexão, execute operações de manutenção e monitore a atividade de sincronização.",
|
||
"healthTitle": "Resumo de integridade",
|
||
"title": "Modo de operações contínuas"
|
||
},
|
||
"mapping": {
|
||
"description": "Revise sugestões de correspondência, escolha o cliente correto para cada tenant e confirme os mapeamentos antes da sincronização inicial.",
|
||
"needsReviewLabel": "Requer revisão:",
|
||
"savedLabel": "Salvos:",
|
||
"selectedLabel": "Selecionados:",
|
||
"skippedLabel": "Ignorados:",
|
||
"stepLabel": "Passo 3",
|
||
"title": "Mapear tenants para clientes"
|
||
},
|
||
"onboarding": {
|
||
"description": "Conclua cada passo da integração em ordem: conectar, descobrir, mapear e, em seguida, executar sua primeira sincronização.",
|
||
"title": "Modo de configuração"
|
||
},
|
||
"ongoing": {
|
||
"description": "Use estes controles para operações de sincronização manuais após a conclusão dos passos de integração.",
|
||
"title": "Operações contínuas"
|
||
},
|
||
"overview": {
|
||
"connectionLabel": "Conexão:",
|
||
"connectionTypeLabel": "Tipo de conexão:",
|
||
"label": "Visão geral",
|
||
"mappedTenantsLabel": "Tenants mapeados:",
|
||
"nextSyncIntervalEvery": "A cada {{minutes}} minutos",
|
||
"nextSyncIntervalLabel": "Próximo intervalo de sincronização:"
|
||
},
|
||
"skipped": {
|
||
"empty": "Nenhum tenant está atualmente marcado como ignorado.",
|
||
"noPrimaryDomain": "Sem domínio primário",
|
||
"remap": "Remapear",
|
||
"title": "Tenants ignorados"
|
||
},
|
||
"status": {
|
||
"connectionHealth": "Integridade da conexão",
|
||
"label": "Status"
|
||
},
|
||
"syncAll": {
|
||
"failed": "Falha ao iniciar a sincronização completa do Entra.",
|
||
"started": "Sincronização iniciada. ID da execução: {{runId}}",
|
||
"startedNoId": "Solicitação de início da sincronização aceita."
|
||
},
|
||
"title": "Integração Microsoft Entra",
|
||
"validation": {
|
||
"label": "Validação e descoberta",
|
||
"lastDiscoveryLabel": "Última descoberta:",
|
||
"lastValidatedLabel": "Última validação:",
|
||
"neverFormatted": "Nunca",
|
||
"noneValidationError": "Nenhum",
|
||
"validationErrorLabel": "Erro de validação:"
|
||
},
|
||
"wizard": {
|
||
"connect": {
|
||
"description": "Autorize a autenticação direta de parceiro Microsoft para vincular este tenant Entra.",
|
||
"title": "Conectar"
|
||
},
|
||
"discover": {
|
||
"description": "Carregue e persista tenants Entra gerenciados para este tenant MSP.",
|
||
"title": "Descobrir tenants"
|
||
},
|
||
"map": {
|
||
"description": "Revise as sugestões de correspondência automática e confirme os mapeamentos.",
|
||
"title": "Mapear tenants para clientes"
|
||
},
|
||
"sync": {
|
||
"description": "Inicie a primeira execução de sincronização para os mapeamentos confirmados.",
|
||
"title": "Sincronização inicial"
|
||
}
|
||
}
|
||
},
|
||
"tenantMapping": {
|
||
"actions": {
|
||
"confirmSelected": "Confirmar mapeamentos selecionados",
|
||
"confirming": "Confirmando…",
|
||
"import": "Importar como novo cliente",
|
||
"importing": "Importando…",
|
||
"preselectExact": "Pré-selecionar correspondências exatas",
|
||
"refresh": "Atualizar prévia",
|
||
"skip": "Ignorar",
|
||
"skipped": "Ignorado"
|
||
},
|
||
"columns": {
|
||
"actions": "Ações",
|
||
"confidence": "Confiança",
|
||
"entraTenant": "Tenant Entra",
|
||
"primaryDomain": "Domínio primário",
|
||
"selectClient": "Selecionar cliente",
|
||
"status": "Status",
|
||
"suggestedClient": "Cliente sugerido"
|
||
},
|
||
"empty": "Nenhum tenant descoberto disponível para a prévia de mapeamento.",
|
||
"errors": {
|
||
"confirmFailed": "Falha ao confirmar os mapeamentos selecionados.",
|
||
"importFailed": "Falha ao importar o tenant como cliente.",
|
||
"loadFailed": "Falha ao carregar a prévia de mapeamento de tenant.",
|
||
"selectAtLeastOne": "Selecione pelo menos um cliente para confirmar um mapeamento.",
|
||
"skipFailed": "Falha ao ignorar este mapeamento de tenant."
|
||
},
|
||
"feedback": {
|
||
"confirmed": "{{count}} mapeamentos confirmados.",
|
||
"confirmedOne": "{{count}} mapeamento confirmado."
|
||
},
|
||
"noSuggestion": "Sem sugestão",
|
||
"picker": {
|
||
"placeholder": "Selecionar cliente...",
|
||
"unknownClient": "Cliente desconhecido"
|
||
},
|
||
"reasons": {
|
||
"exactDomain": "Domínio exato",
|
||
"fuzzyName": "Nome aproximado",
|
||
"secondaryDomain": "Domínio secundário"
|
||
},
|
||
"states": {
|
||
"autoMatched": "Correspondido automaticamente",
|
||
"imported": "Importado",
|
||
"needsReview": "Requer revisão",
|
||
"skipped": "Ignorado",
|
||
"unmatched": "Sem correspondência"
|
||
},
|
||
"title": "Prévia de mapeamento de tenant"
|
||
},
|
||
"cippDialog": {
|
||
"actions": {
|
||
"cancel": "Cancelar",
|
||
"connect": "Conectar",
|
||
"connecting": "Conectando..."
|
||
},
|
||
"description": "Insira o URL da sua instância CIPP e um token de API para permitir que o Alga descubra e sincronize dados do Entra.",
|
||
"errors": {
|
||
"missingFields": "URL base e token de API são obrigatórios.",
|
||
"unknown": "Ocorreu um erro desconhecido."
|
||
},
|
||
"fields": {
|
||
"apiToken": "Token de API",
|
||
"apiTokenPlaceholder": "Inserir token...",
|
||
"baseUrl": "URL base do CIPP",
|
||
"baseUrlPlaceholder": "https://cipp.seudominio.com"
|
||
},
|
||
"title": "Conectar CIPP"
|
||
},
|
||
"reconciliation": {
|
||
"actions": {
|
||
"refresh": "Atualizar",
|
||
"resolveExisting": "Resolver para existente",
|
||
"resolveNew": "Resolver para novo"
|
||
},
|
||
"candidate": {
|
||
"fallback": "candidato",
|
||
"label": "Contatos candidatos: {{count}}"
|
||
},
|
||
"contactPicker": {
|
||
"label": "Contato existente",
|
||
"placeholder": "Selecionar contato existente..."
|
||
},
|
||
"errors": {
|
||
"enterContactId": "Insira um ID de contato para resolver para um contato existente.",
|
||
"loadQueue": "Falha ao carregar a fila de reconciliação.",
|
||
"resolveFailed": "Falha ao resolver o item da fila."
|
||
},
|
||
"empty": "Nenhuma correspondência ambígua aguardando revisão.",
|
||
"loading": "Carregando fila…",
|
||
"noEmailIdentity": "Sem identidade de e-mail",
|
||
"queuedAt": "{{identity}} · enfileirado {{time}}",
|
||
"scopedToMappedClient": "As opções de contato existente estão limitadas a este cliente mapeado.",
|
||
"success": {
|
||
"resolvedExisting": "Item da fila {{queueItemId}} resolvido para o contato existente {{contactNameId}}.",
|
||
"resolvedNew": "Item da fila {{queueItemId}} resolvido criando o contato {{contactNameId}}."
|
||
},
|
||
"title": "Fila de correspondências ambíguas"
|
||
},
|
||
"syncHistory": {
|
||
"actions": {
|
||
"hideDetails": "Ocultar detalhes",
|
||
"refresh": "Atualizar",
|
||
"viewDetails": "Ver detalhes"
|
||
},
|
||
"details": {
|
||
"noResults": "Nenhum resultado de tenant registrado.",
|
||
"stats": "criados {{created}}, vinculados {{linked}}, atualizados {{updated}}, ambíguos {{ambiguous}}, inativados {{inactivated}}",
|
||
"tenantHeader": "Tenant {{tenant}} · {{status}}",
|
||
"unknownTenant": "desconhecido"
|
||
},
|
||
"empty": "Nenhuma execução de sincronização encontrada ainda.",
|
||
"errors": {
|
||
"loadDetailFailed": "Falha ao carregar o detalhe da execução.",
|
||
"loadFailed": "Falha ao carregar o histórico de sincronização.",
|
||
"loadRunFailed": "Falha ao carregar a execução {{runId}}."
|
||
},
|
||
"loading": "Carregando histórico de sincronização…",
|
||
"run": {
|
||
"header": "{{runType}} · {{status}}",
|
||
"inProgress": "Em andamento",
|
||
"tenants": "Tenants: {{processed}}/{{total}} · Sucesso: {{success}} · Falharam: {{failed}}",
|
||
"timing": "Iniciado {{started}} · Concluído {{completed}}"
|
||
},
|
||
"title": "Execuções recentes de sincronização"
|
||
}
|
||
},
|
||
"google": {
|
||
"settings": {
|
||
"actions": {
|
||
"refresh": "Atualizar",
|
||
"resetProviders": "Redefinir provedores do Google",
|
||
"resetting": "Redefinindo…",
|
||
"save": "Salvar",
|
||
"saving": "Salvando…"
|
||
},
|
||
"afterSaveNotice": "Após salvar, vá até as integrações de E-mail recebido e Calendário e reautorize os provedores. Provedores Google existentes não são migrados.",
|
||
"consoleLink": "Google Cloud Console",
|
||
"description": "Configure credenciais do Google Cloud de propriedade do tenant para Gmail (entrada) e Google Calendar.",
|
||
"errors": {
|
||
"loadFailed": "Falha ao carregar as configurações do Google",
|
||
"resetFailed": "Falha ao redefinir os provedores do Google",
|
||
"saveFailed": "Falha ao salvar as configurações do Google"
|
||
},
|
||
"fields": {
|
||
"projectIdHelp": "Usado para provisionamento do Pub/Sub do Gmail (conta de serviço de propriedade do tenant).",
|
||
"projectIdLabel": "ID do projeto Google Cloud",
|
||
"projectIdPlaceholder": "my-project-id"
|
||
},
|
||
"loading": "Carregando…",
|
||
"oauth": {
|
||
"calendarClientId": "Calendar OAuth Client ID",
|
||
"calendarClientSecret": "Calendar OAuth Client Secret",
|
||
"enterSecret": "Inserir client secret",
|
||
"gmailClientId": "Gmail OAuth Client ID",
|
||
"gmailClientSecret": "Gmail OAuth Client Secret",
|
||
"sectionTitle": "Aplicativo OAuth",
|
||
"shareApp": "Usar o mesmo aplicativo OAuth para Gmail e Calendar",
|
||
"shareAppHelp": "Recomendado. Você ainda pode autorizar contas Google separadas por integração.",
|
||
"storedSecret": "Secret armazenado: {{secret}}"
|
||
},
|
||
"redirectUrisLabel": "Redirect URIs (copiar para o client OAuth do Google)",
|
||
"scopes": "Escopos",
|
||
"scopesCalendar": "Calendar: {{scopes}}",
|
||
"scopesGmail": "Gmail: {{scopes}}",
|
||
"serviceAccount": {
|
||
"alreadyStored": "Uma chave de conta de serviço já está armazenada (não exibida).",
|
||
"description": "Cole o JSON da chave da conta de serviço de propriedade do tenant usada para provisionar o Pub/Sub.",
|
||
"title": "Conta de serviço do Pub/Sub (obrigatória para o Gmail)"
|
||
},
|
||
"setupGuide": "Guia de configuração",
|
||
"title": "Google",
|
||
"toasts": {
|
||
"resetDescription": "Todos os provedores do Google estão agora desconectados e requerem nova autorização.",
|
||
"resetFailedTitle": "Falha ao redefinir",
|
||
"resetTitle": "Provedores do Google redefinidos",
|
||
"saveFailedTitle": "Não foi possível salvar as configurações do Google",
|
||
"savedDescription": "A configuração do Google do tenant foi atualizada com sucesso.",
|
||
"savedTitle": "Configurações do Google salvas",
|
||
"unknownError": "Erro desconhecido"
|
||
}
|
||
}
|
||
},
|
||
"hudu": {
|
||
"clientTab": {
|
||
"source": "Origem: Hudu",
|
||
"openInHudu": "Abrir no Hudu",
|
||
"refresh": "Atualizar",
|
||
"loading": "Carregando dados do Hudu...",
|
||
"notConnected": "O Hudu não está conectado. Um administrador pode conectá-lo em Configurações → Integrações.",
|
||
"unmapped": "Este cliente ainda não está mapeado para uma empresa do Hudu. Mapeie-o em Configurações → Integrações → Hudu.",
|
||
"unreachable": "Não foi possível acessar o Hudu. Tente novamente mais tarde.",
|
||
"assetsTitle": "Ativos",
|
||
"assetsEmpty": "Nenhum ativo do Hudu para esta empresa.",
|
||
"articlesTitle": "Artigos",
|
||
"articlesEmpty": "Nenhum artigo do Hudu para esta empresa.",
|
||
"serial": "Número de série",
|
||
"folder": "Pasta"
|
||
},
|
||
"passwordsTab": {
|
||
"source": "Origem: Hudu",
|
||
"openInHudu": "Abrir no Hudu",
|
||
"refresh": "Atualizar",
|
||
"loading": "Carregando senhas do Hudu...",
|
||
"notConnected": "O Hudu não está conectado. Um administrador pode conectá-lo em Configurações → Integrações.",
|
||
"unmapped": "Este cliente ainda não está mapeado para uma empresa do Hudu. Mapeie-o em Configurações → Integrações → Hudu.",
|
||
"unreachable": "Não foi possível acessar o Hudu. Tente novamente mais tarde.",
|
||
"noPasswordAccess": "A chave de API do Hudu não tem acesso a senhas habilitado, portanto as senhas não podem ser listadas. Gere uma chave com acesso a senhas na administração do Hudu.",
|
||
"title": "Senhas",
|
||
"empty": "Nenhuma senha do Hudu para esta empresa.",
|
||
"reveal": "Revelar",
|
||
"hide": "Ocultar",
|
||
"copy": "Copiar",
|
||
"revealNoAccess": "A chave de API do Hudu não tem acesso a senhas habilitado.",
|
||
"revealNotFound": "Esta senha não foi encontrada no Hudu.",
|
||
"revealFailed": "Não foi possível revelar a senha. Tente novamente mais tarde."
|
||
},
|
||
"assets": {
|
||
"title": "Ativos",
|
||
"description": "Mapeie ativos do Hudu para ativos do AlgaPSA, importe os sem correspondência e obtenha atualizações do Hudu.",
|
||
"loading": "Carregando mapeamentos de ativos...",
|
||
"empty": "Nenhum ativo do Hudu para esta empresa.",
|
||
"selectAsset": "Selecionar ativo",
|
||
"serial": "Número de série",
|
||
"archivedLabel": "Arquivado",
|
||
"excludedHint": "Não importado (layout excluído)",
|
||
"buttons": {
|
||
"importAll": "Importar todos sem correspondência",
|
||
"importingAll": "Importando...",
|
||
"sync": "Sincronizar do Hudu",
|
||
"syncing": "Sincronizando...",
|
||
"import": "Importar",
|
||
"importing": "Importando...",
|
||
"save": "Salvar mapeamentos",
|
||
"saving": "Salvando...",
|
||
"discard": "Descartar"
|
||
},
|
||
"counters": {
|
||
"mapped": "mapeados",
|
||
"suggested": "sugeridos",
|
||
"unmapped": "não mapeados",
|
||
"total": "total"
|
||
},
|
||
"table": {
|
||
"huduAsset": "Ativo Hudu",
|
||
"algaAsset": "Ativo AlgaPSA",
|
||
"status": "Status",
|
||
"actions": "Ações"
|
||
},
|
||
"status": {
|
||
"mapped": "Mapeado",
|
||
"suggested": "Sugerido",
|
||
"unmapped": "Não mapeado",
|
||
"pending": "Pendente",
|
||
"stale": "Desatualizado"
|
||
},
|
||
"suggestion": {
|
||
"label": "Sugerido",
|
||
"source": {
|
||
"serial": "Correspondência de número de série",
|
||
"exactName": "Nome exato",
|
||
"fuzzyName": "Nome aproximado"
|
||
}
|
||
},
|
||
"rowActions": {
|
||
"unmap": "Remover mapeamento",
|
||
"revert": "Reverter alteração",
|
||
"dismiss": "Descartar sugestão"
|
||
},
|
||
"pendingSummary": "Alterações não salvas: {{total}}",
|
||
"sync": {
|
||
"summary": "Sincronização concluída: {{updated}} atualizados · {{unchanged}} inalterados · {{stale}} desatualizados.",
|
||
"rmmSkipped": "{{rmmSkipped}} geridos por RMM ignorados.",
|
||
"lastSynced": "Última sincronização: {{timestamp}}"
|
||
},
|
||
"import": {
|
||
"summary": "Importação concluída: {{created}} criados · {{skipped}} ignorados · {{failed}} com falha."
|
||
},
|
||
"success": {
|
||
"saved": "Mapeamentos de ativos salvos: {{total}}",
|
||
"imported": "\"{{name}}\" importado do Hudu."
|
||
},
|
||
"errors": {
|
||
"load": "Falha ao carregar os mapeamentos de ativos do Hudu.",
|
||
"save": "Falha ao atualizar o mapeamento do ativo.",
|
||
"import": "Falha ao importar o ativo do Hudu.",
|
||
"importAll": "Falha na importação em massa.",
|
||
"serialConflict": "O número de série já está em uso por \"{{name}}\".",
|
||
"sync": "Falha ao sincronizar do Hudu.",
|
||
"rateLimited": "Limite de requisições do Hudu atingido. Tente novamente mais tarde.",
|
||
"unmapped": "Este cliente não está mapeado para uma empresa do Hudu.",
|
||
"assetAlreadyMapped": "Esse ativo já está mapeado para outro ativo do Hudu. Limpe o mapeamento existente primeiro.",
|
||
"huduAssetAlreadyMapped": "Este ativo do Hudu já está mapeado para um ativo. Limpe o mapeamento existente primeiro.",
|
||
"mappingConflict": "Este mapeamento conflita com um mapeamento existente. Atualize e tente novamente.",
|
||
"notFound": "Mapeamento não encontrado. Atualize e tente novamente."
|
||
},
|
||
"toasts": {
|
||
"errorTitle": "Erro de mapeamento de ativos do Hudu"
|
||
}
|
||
},
|
||
"documents": {
|
||
"sectionTitle": "Documentação do Hudu",
|
||
"loading": "Carregando artigos do Hudu...",
|
||
"empty": "Nenhum artigo do Hudu",
|
||
"unreachable": "Não foi possível acessar o Hudu. Tente novamente mais tarde."
|
||
},
|
||
"documentsTab": {
|
||
"title": "Artigos do Hudu",
|
||
"source": "Origem: Hudu",
|
||
"searchPlaceholder": "Pesquisar artigos do Hudu...",
|
||
"loading": "Carregando artigos do Hudu...",
|
||
"empty": "Nenhum artigo do Hudu encontrado.",
|
||
"notConnected": "O Hudu não está conectado. Um administrador pode conectá-lo em Configurações → Integrações.",
|
||
"unreachable": "Não foi possível acessar o Hudu. Tente novamente mais tarde.",
|
||
"articleColumn": "Artigo",
|
||
"clientColumn": "Cliente",
|
||
"companyColumn": "Empresa Hudu",
|
||
"updatedColumn": "Atualizado",
|
||
"unmapped": "Não mapeado",
|
||
"previous": "Anterior",
|
||
"next": "Próxima",
|
||
"pageLabel": "Página"
|
||
},
|
||
"mapping": {
|
||
"title": "Mapeamentos de empresas",
|
||
"description": "Mapeie empresas do Hudu para clientes do AlgaPSA para exibir sua documentação.",
|
||
"loading": "Carregando mapeamentos de empresas...",
|
||
"companyId": "ID",
|
||
"idInIntegration": "ID do PSA",
|
||
"selectClient": "Selecionar cliente",
|
||
"buttons": {
|
||
"refresh": "Atualizar empresas",
|
||
"refreshing": "Atualizando...",
|
||
"save": "Salvar mapeamentos",
|
||
"saving": "Salvando...",
|
||
"discard": "Descartar"
|
||
},
|
||
"counters": {
|
||
"mapped": "mapeadas",
|
||
"suggested": "sugeridas",
|
||
"unmapped": "não mapeadas",
|
||
"total": "total"
|
||
},
|
||
"table": {
|
||
"huduCompany": "Empresa Hudu",
|
||
"algaClient": "Cliente AlgaPSA",
|
||
"status": "Status"
|
||
},
|
||
"status": {
|
||
"mapped": "Mapeada",
|
||
"suggested": "Sugerida",
|
||
"unmapped": "Não mapeada",
|
||
"pending": "Pendente"
|
||
},
|
||
"suggestion": {
|
||
"label": "Sugerida",
|
||
"source": {
|
||
"integrationId": "ID de integração PSA",
|
||
"exactName": "Nome exato",
|
||
"fuzzyName": "Nome aproximado"
|
||
}
|
||
},
|
||
"empty": {
|
||
"title": "Nenhuma empresa do Hudu carregada ainda.",
|
||
"hint": "Clique em \"Atualizar empresas\" para buscar as empresas do Hudu."
|
||
},
|
||
"unmappedHint": "A documentação só é exibida para clientes mapeados. Mapeie cada empresa do Hudu para um cliente do AlgaPSA para habilitá-la.",
|
||
"success": {
|
||
"refreshed": "Empresas do Hudu atualizadas.",
|
||
"saved": "Mapeamentos salvos: {{total}}"
|
||
},
|
||
"errors": {
|
||
"load": "Falha ao carregar os mapeamentos de empresas do Hudu.",
|
||
"refresh": "Falha ao atualizar as empresas do Hudu.",
|
||
"save": "Falha ao atualizar o mapeamento.",
|
||
"clientAlreadyMapped": "Esse cliente já está mapeado para outra empresa do Hudu. Limpe o mapeamento existente primeiro.",
|
||
"companyAlreadyMapped": "Esta empresa do Hudu já está mapeada para outro cliente. Limpe o mapeamento existente primeiro.",
|
||
"mappingConflict": "Este mapeamento conflita com um mapeamento existente. Atualize e tente novamente.",
|
||
"notFound": "Mapeamento não encontrado. Atualize e tente novamente."
|
||
},
|
||
"toasts": {
|
||
"errorTitle": "Erro de mapeamento do Hudu"
|
||
},
|
||
"pendingSummary": "Alterações não salvas: {{total}}",
|
||
"rowActions": {
|
||
"unmap": "Remover mapeamento",
|
||
"revert": "Reverter alteração",
|
||
"dismiss": "Descartar sugestão"
|
||
}
|
||
},
|
||
"layoutMap": {
|
||
"title": "Layouts de ativos",
|
||
"description": "Escolha como qual tipo de ativo do AlgaPSA cada layout de ativo do Hudu é importado. Layouts não configurados são importados como Desconhecido.",
|
||
"loading": "Carregando layouts de ativos...",
|
||
"empty": "Nenhum layout de ativo encontrado no Hudu.",
|
||
"suggested": "Sugerido",
|
||
"table": {
|
||
"huduLayout": "Layout Hudu",
|
||
"algaAssetType": "Tipo de ativo do AlgaPSA"
|
||
},
|
||
"types": {
|
||
"workstation": "Estação de trabalho",
|
||
"networkDevice": "Dispositivo de rede",
|
||
"server": "Servidor",
|
||
"mobileDevice": "Dispositivo móvel",
|
||
"printer": "Impressora",
|
||
"unknown": "Desconhecido"
|
||
},
|
||
"excludeOption": "Não importar",
|
||
"buttons": {
|
||
"save": "Salvar mapeamento de layouts",
|
||
"saving": "Salvando..."
|
||
},
|
||
"success": {
|
||
"saved": "Mapeamento de layouts de ativos salvo."
|
||
},
|
||
"errors": {
|
||
"load": "Falha ao carregar os layouts de ativos do Hudu.",
|
||
"save": "Falha ao salvar o mapeamento de layouts de ativos."
|
||
},
|
||
"createType": {
|
||
"button": "Criar tipo a partir do layout",
|
||
"creating": "Criando...",
|
||
"success": "Tipo de ativo criado e atribuído a este layout.",
|
||
"errors": {
|
||
"create": "Falha ao criar um tipo de ativo a partir deste layout.",
|
||
"slugConflict": "Já existe um tipo de ativo com este nome. Selecione-o na lista."
|
||
}
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Hudu",
|
||
"description": "Conecte sua instância Hudu para exibir a documentação e as credenciais dos clientes no AlgaPSA.",
|
||
"loading": "Carregando o status de conexão do Hudu...",
|
||
"detectedInstance": "Instância Hudu",
|
||
"status": {
|
||
"connected": "Conectado",
|
||
"notConnected": "Não conectado",
|
||
"error": "Erro"
|
||
},
|
||
"passwordAccess": {
|
||
"enabled": "Acesso a senhas habilitado",
|
||
"disabled": "Acesso a senhas não habilitado para esta chave"
|
||
},
|
||
"fields": {
|
||
"baseUrl": {
|
||
"label": "URL base",
|
||
"placeholder": "https://sua-instancia.huducloud.com"
|
||
},
|
||
"apiKey": {
|
||
"label": "Chave de API",
|
||
"placeholder": "Insira sua chave de API do Hudu",
|
||
"keepExisting": "Deixe em branco para manter a chave de API atual",
|
||
"writeOnlyHint": "A chave de API armazenada nunca é exibida. Deixe em branco para continuar a usá-la."
|
||
}
|
||
},
|
||
"buttons": {
|
||
"test": "Testar conexão",
|
||
"testing": "Testando...",
|
||
"connect": "Conectar",
|
||
"connecting": "Conectando...",
|
||
"disconnect": "Desconectar",
|
||
"disconnecting": "Desconectando..."
|
||
},
|
||
"success": {
|
||
"connected": "Conectado ao Hudu.",
|
||
"testPassedWithPasswords": "Teste de conexão com o Hudu bem-sucedido. O acesso a senhas está habilitado para esta chave.",
|
||
"testPassedNoPasswords": "Teste de conexão com o Hudu bem-sucedido. O acesso a senhas não está habilitado para esta chave.",
|
||
"disconnected": "Conexão Hudu desconectada."
|
||
},
|
||
"errors": {
|
||
"loadStatus": "Falha ao carregar o status de conexão do Hudu.",
|
||
"baseUrlRequired": "A URL base é obrigatória.",
|
||
"baseUrlFormat": "Insira uma URL válida, ex. https://sua-instancia.huducloud.com",
|
||
"invalidBaseUrl": "Nenhuma API do Hudu foi encontrada nesta URL base (404). Verifique a URL base.",
|
||
"unreachable": "Não foi possível acessar o Hudu nesta URL base. Verifique a URL e sua rede.",
|
||
"invalidKey": "O Hudu rejeitou a chave de API (401). Insira uma chave de API válida.",
|
||
"testFailed": "Falha no teste de conexão com o Hudu.",
|
||
"connectFailed": "Falha ao conectar ao Hudu.",
|
||
"disconnectFailed": "Falha ao desconectar o Hudu."
|
||
},
|
||
"toasts": {
|
||
"errorTitle": "Erro de conexão do Hudu"
|
||
}
|
||
}
|
||
},
|
||
"microsoft": {
|
||
"settings": {
|
||
"actions": {
|
||
"entraLink": "Microsoft Entra",
|
||
"newProfile": "Novo perfil",
|
||
"openTeamsSetup": "Abrir configuração do Teams",
|
||
"refresh": "Atualizar",
|
||
"resetProviders": "Redefinir provedores Microsoft",
|
||
"resetting": "Redefinindo…"
|
||
},
|
||
"archiveDialog": {
|
||
"archiving": "Arquivando…",
|
||
"cancel": "Manter perfil",
|
||
"confirm": "Arquivar perfil",
|
||
"message": "Arquivar {{name}}? Referências históricas existentes permanecem intactas, mas o perfil não estará mais disponível para novas vinculações.",
|
||
"title": "Arquivar perfil Microsoft?"
|
||
},
|
||
"binding": {
|
||
"bound": "Vinculado",
|
||
"boundProfileLabel": "Perfil vinculado",
|
||
"createFirst": "Crie primeiro um perfil",
|
||
"needsAttention": "Requer atenção",
|
||
"saving": "Salvando…",
|
||
"selectProfile": "Selecionar um perfil",
|
||
"unbound": "Não vinculado"
|
||
},
|
||
"bindings": {
|
||
"summaryBound": "{{consumer}} está vinculado a {{profile}}.",
|
||
"summaryNone": "Nenhum perfil Microsoft está atualmente vinculado a {{consumer}}.",
|
||
"summaryUnavailable": "{{consumer}} está vinculado a um perfil indisponível.",
|
||
"warningArchived": "{{consumer}} ainda está vinculado a um perfil arquivado. Revincule-o a um perfil ativo.",
|
||
"warningNoBinding": "Nenhuma vinculação de {{consumer}} está configurada ainda.",
|
||
"warningNotReady": "{{consumer}} está vinculado a {{profile}}, mas esse perfil ainda precisa de configuração.",
|
||
"warningProfileMissing": "{{consumer}} está vinculado a um perfil que não está mais disponível. Revincule-o a um perfil ativo."
|
||
},
|
||
"bindingsAlertCe": "Vinculações explícitas são a fonte da verdade para a seleção de perfil MSP SSO. Configure os domínios de login separadamente após escolher o perfil vinculado.",
|
||
"bindingsAlertEe": "Vinculações explícitas são a fonte da verdade para a seleção de perfis MSP SSO, e-mail, calendário e Teams.",
|
||
"consumerBindings": {
|
||
"descriptionCe": "Vincule um perfil Microsoft ao MSP SSO para login e uso de domínio de login.",
|
||
"descriptionEe": "Vincule um perfil Microsoft por consumidor compatível. Reatribuir um consumidor não altera os demais.",
|
||
"title": "Vinculações explícitas de consumidor"
|
||
},
|
||
"consumers": {
|
||
"calendar": {
|
||
"description": "Escolha qual perfil Microsoft a sincronização do calendário do Outlook deve usar.",
|
||
"label": "Calendário",
|
||
"reconnect": "Conexões existentes do calendário Microsoft podem precisar de nova autorização após a alteração do perfil vinculado."
|
||
},
|
||
"email": {
|
||
"description": "Escolha qual perfil Microsoft o e-mail recebido do Outlook deve usar.",
|
||
"label": "E-mail",
|
||
"reconnect": "Conexões existentes de e-mail do Outlook podem precisar de nova autorização após a alteração do perfil vinculado."
|
||
},
|
||
"mspSso": {
|
||
"description": "Escolha qual perfil Microsoft sustenta os domínios de login MSP SSO, o login da Microsoft e a descoberta de tenant.",
|
||
"label": "MSP SSO"
|
||
},
|
||
"teams": {
|
||
"description": "Escolha qual perfil Microsoft a instalação do Microsoft Teams e os fluxos de autenticação devem usar.",
|
||
"label": "Teams"
|
||
}
|
||
},
|
||
"descriptionCe": "Gerencie perfis Microsoft de propriedade do tenant para MSP SSO, login da Microsoft e descoberta de domínios de login.",
|
||
"descriptionEe": "Gerencie perfis Microsoft de propriedade do tenant para MSP SSO, e-mail do Outlook, sincronização de calendário e Microsoft Teams.",
|
||
"dialog": {
|
||
"cancel": "Cancelar",
|
||
"clientId": "Client ID",
|
||
"clientSecret": "Client secret",
|
||
"clientSecretPlaceholder": "Inserir client secret",
|
||
"clientSecretPlaceholderEdit": "Deixe em branco para manter o secret atual",
|
||
"createProfile": "Criar perfil",
|
||
"createTitle": "Criar perfil Microsoft",
|
||
"descriptionCreate": "Crie um perfil Microsoft de propriedade do tenant e, em seguida, vincule-o explicitamente aos consumidores Microsoft que você deseja usar.",
|
||
"descriptionEdit": "Atualize o perfil Microsoft selecionado. Deixe o secret em branco para manter o valor existente.",
|
||
"displayName": "Nome de exibição",
|
||
"displayNamePlaceholder": "Tenant de produção da Acme",
|
||
"editTitle": "Editar perfil Microsoft",
|
||
"saveChanges": "Salvar alterações",
|
||
"saving": "Salvando…",
|
||
"setDefault": "Definir este perfil como perfil Microsoft padrão",
|
||
"setDefaultHelp": "Perfis padrão permanecem disponíveis para fluxos de gerenciamento de perfil e metadados seguros para migração, não para roteamento de consumidores.",
|
||
"storedSecretHint": "Secret armazenado: {{secret}}. Deixe este campo vazio para mantê-lo inalterado.",
|
||
"tenantId": "Tenant ID"
|
||
},
|
||
"empty": {
|
||
"createButton": "Criar perfil Microsoft",
|
||
"descriptionCe": "Crie primeiro um perfil nomeado e, em seguida, vincule-o explicitamente aos fluxos de MSP SSO e login por domínio.",
|
||
"descriptionEe": "Crie primeiro um perfil nomeado e, em seguida, vincule-o explicitamente a MSP SSO, e-mail do Outlook, sincronização de calendário e Teams.",
|
||
"title": "Ainda não há perfis Microsoft"
|
||
},
|
||
"errors": {
|
||
"archive": "Falha ao arquivar o perfil Microsoft",
|
||
"loadBindings": "Falha ao carregar as vinculações Microsoft",
|
||
"loadStatus": "Falha ao carregar as configurações Microsoft",
|
||
"resetProviders": "Falha ao redefinir os provedores Microsoft",
|
||
"saveProfile": "Falha ao salvar o perfil Microsoft",
|
||
"setDefault": "Falha ao definir o perfil Microsoft padrão",
|
||
"updateBinding": "Falha ao atualizar a vinculação Microsoft"
|
||
},
|
||
"guidance": {
|
||
"applicationIdUri": "Application ID URI",
|
||
"calendarRedirect": "Redirect URI de sincronização do calendário",
|
||
"calendarTitle": "Guia do calendário",
|
||
"clientId": "Client ID",
|
||
"currentProfileTitle": "Valores do perfil atual",
|
||
"emailRedirect": "Redirect URI de e-mail recebido",
|
||
"emailTitle": "Guia de e-mail",
|
||
"mspSsoTitle": "Guia do MSP SSO",
|
||
"notConfigured": "Não configurado",
|
||
"redirectUri": "Redirect URI",
|
||
"requiresBaseUrl": "Requer URL base e Client ID",
|
||
"scopes": "Escopos",
|
||
"teamsBotRedirect": "Redirect URI de bot pessoal",
|
||
"teamsMessageRedirect": "Redirect URI de message extension",
|
||
"teamsScopes": "Escopos do Teams",
|
||
"teamsTabRedirect": "Redirect URI de aba pessoal",
|
||
"teamsTitle": "Guia do Teams",
|
||
"tenantId": "Tenant ID",
|
||
"unavailable": "Indisponível"
|
||
},
|
||
"profileCard": {
|
||
"activeBindings": "Vinculações ativas",
|
||
"archive": "Arquivar",
|
||
"clientId": "Client ID",
|
||
"defaultBadge": "Padrão",
|
||
"edit": "Editar",
|
||
"guidanceSummary": "Guia de registro de aplicativo Microsoft",
|
||
"noVisibleBindings": "Nenhuma vinculação de consumidor visível",
|
||
"readinessTitle": "Prontidão do perfil",
|
||
"readyCe": "Este perfil está pronto para a vinculação MSP SSO e os fluxos de login por domínio.",
|
||
"readyEe": "Este perfil está pronto para as vinculações MSP SSO, e-mail do Outlook e calendário.",
|
||
"readyEeTeams": "Este perfil está pronto para as vinculações MSP SSO, e-mail do Outlook, sincronização de calendário e Teams.",
|
||
"setDefault": "Definir como padrão",
|
||
"storedSecret": "Secret armazenado",
|
||
"teamsAppIdUri": "Application ID URI do Teams",
|
||
"tenantIdLabel": "Tenant ID:",
|
||
"updating": "Atualizando…"
|
||
},
|
||
"providerReconnect": {
|
||
"description": "Use isto se você rotacionar credenciais ou intencionalmente revincular o e-mail do Outlook ou o calendário a um perfil Microsoft diferente.",
|
||
"title": "Reconexão do provedor"
|
||
},
|
||
"readiness": {
|
||
"archived": "Perfis arquivados não podem ser usados para novas vinculações Microsoft.",
|
||
"clientIdMissing": "Client ID ausente.",
|
||
"clientSecretMissing": "O client secret não foi configurado.",
|
||
"tenantIdMissing": "Tenant ID ausente."
|
||
},
|
||
"statusBadges": {
|
||
"archived": "Arquivado",
|
||
"needsAttention": "Requer atenção",
|
||
"ready": "Pronto"
|
||
},
|
||
"title": "Microsoft",
|
||
"toasts": {
|
||
"archiveFailedTitle": "Não foi possível arquivar o perfil Microsoft",
|
||
"archivedDescription": "{{name}} foi arquivado com sucesso.",
|
||
"archivedTitle": "Perfil Microsoft arquivado",
|
||
"bindingFailedTitle": "Não foi possível atualizar a vinculação de {{consumer}}",
|
||
"bindingUpdatedDescription": "{{consumer}} agora usa {{profile}}.",
|
||
"bindingUpdatedTitle": "Vinculação de {{consumer}} atualizada",
|
||
"defaultUpdatedDescription": "{{name}} agora é o registro padrão do perfil Microsoft.",
|
||
"defaultUpdatedTitle": "Perfil Microsoft padrão atualizado",
|
||
"profileCreated": "Perfil Microsoft criado",
|
||
"profileCreatedDescription": "O perfil Microsoft está pronto para ser vinculado a consumidores Microsoft visíveis.",
|
||
"profileUpdated": "Perfil Microsoft atualizado",
|
||
"profileUpdatedDescription": "As alterações do perfil Microsoft foram salvas com sucesso.",
|
||
"resetDescription": "As conexões existentes de e-mail do Outlook e calendário agora requerem nova autorização.",
|
||
"resetFailedTitle": "Falha ao redefinir",
|
||
"resetTitle": "Provedores Microsoft redefinidos",
|
||
"saveFailedTitle": "Não foi possível salvar o perfil Microsoft",
|
||
"selectedProfile": "o perfil selecionado",
|
||
"setDefaultFailedTitle": "Não foi possível definir o perfil padrão"
|
||
},
|
||
"validation": {
|
||
"clientIdRequired": "O Microsoft OAuth Client ID é obrigatório",
|
||
"clientSecretRequired": "O Microsoft OAuth Client Secret é obrigatório",
|
||
"displayNameRequired": "O nome de exibição do perfil Microsoft é obrigatório",
|
||
"tenantIdRequired": "O Microsoft Tenant ID é obrigatório"
|
||
}
|
||
}
|
||
},
|
||
"qbo": {
|
||
"live": {
|
||
"defaultCompany": "Empresa QuickBooks conectada"
|
||
},
|
||
"settings": {
|
||
"actions": {
|
||
"connect": "Conectar QuickBooks",
|
||
"disconnect": "Desconectar QuickBooks",
|
||
"disconnecting": "Desconectando…",
|
||
"reconnect": "Reconectar QuickBooks",
|
||
"refresh": "Atualizar",
|
||
"saveCredentials": "Salvar credenciais QuickBooks",
|
||
"saving": "Salvando…"
|
||
},
|
||
"badges": {
|
||
"connectionExpired": "Conexão requer atenção",
|
||
"credentialsReady": "Credenciais prontas",
|
||
"credentialsRequired": "Credenciais obrigatórias",
|
||
"defaultConnected": "Empresa conectada",
|
||
"noCompany": "Nenhuma empresa conectada"
|
||
},
|
||
"callback": {
|
||
"accessDenied": "O acesso ao QuickBooks foi negado antes da conclusão da conexão.",
|
||
"configMissing": "Não foi possível iniciar o QuickBooks OAuth porque o client ID e o client secret não estavam totalmente configurados.",
|
||
"generic": "O QuickBooks retornou um erro OAuth: {{code}}",
|
||
"invalidState": "O estado OAuth do QuickBooks era inválido ou expirou. Inicie o fluxo de conexão novamente.",
|
||
"missingParams": "Parâmetros obrigatórios estavam ausentes no callback do QuickBooks. Inicie o fluxo de conexão novamente.",
|
||
"oauthFailed": "O callback OAuth do QuickBooks falhou. Tente se conectar novamente. Se o problema persistir, revise seu redirect URI e escopos.",
|
||
"tokenExchangeFailed": "O Intuit não retornou os tokens esperados. Tente se conectar novamente."
|
||
},
|
||
"clientIdLabel": "QuickBooks Client ID",
|
||
"clientIdPlaceholder": "Cole o client ID do seu aplicativo Intuit",
|
||
"clientSecretLabel": "QuickBooks Client Secret",
|
||
"clientSecretPlaceholder": "Cole o client secret do seu aplicativo Intuit",
|
||
"connectSuccess": "QuickBooks conectado com sucesso. A empresa conectada agora é o contexto padrão do QuickBooks ao vivo.",
|
||
"connection": {
|
||
"defaultCompany": "Empresa conectada",
|
||
"description": "Inicie o OAuth somente após configurar as credenciais do aplicativo QuickBooks. Desconectar remove os tokens de acesso QuickBooks armazenados, mas mantém as credenciais do aplicativo de propriedade do tenant.",
|
||
"notConnected": "Nenhuma empresa QuickBooks está conectada ainda. Salve as credenciais e clique em Conectar QuickBooks.",
|
||
"realmId": "Realm ID: {{id}}",
|
||
"title": "Conexão QuickBooks ao vivo",
|
||
"unknown": "desconhecido"
|
||
},
|
||
"credentialsSaved": "Credenciais QuickBooks salvas. Agora você pode iniciar o fluxo OAuth do QuickBooks.",
|
||
"csvAvailableMiddle": "nesta mesma seção Contabilidade e gerencie exportações em",
|
||
"csvAvailablePrefix": "Se você prefere um fluxo manual, continue usando",
|
||
"csvAvailableTitle": "QuickBooks CSV permanece disponível",
|
||
"description": "Configure credenciais OAuth QuickBooks, conecte sua empresa QuickBooks e mantenha o QuickBooks ao vivo ao lado do fluxo manual QuickBooks CSV.",
|
||
"disconnectSuccess": "A conexão QuickBooks armazenada foi removida. As credenciais do aplicativo QuickBooks de propriedade do tenant foram preservadas.",
|
||
"environment": "Ambiente Intuit",
|
||
"environmentProduction": "Produção",
|
||
"environmentSandbox": "Sandbox",
|
||
"errors": {
|
||
"disconnect": "Falha ao desconectar o QuickBooks.",
|
||
"load": "Falha ao carregar as configurações do QuickBooks.",
|
||
"saveCredentials": "Falha ao salvar as credenciais do QuickBooks."
|
||
},
|
||
"howItWorksDescription": "Salve aqui as credenciais do aplicativo QuickBooks, conclua o fluxo OAuth do Intuit, e o Alga PSA usará a empresa QuickBooks conectada como contexto padrão ao vivo para exportações e mapeamentos.",
|
||
"howItWorksTitle": "Como o QuickBooks ao vivo funciona nesta versão",
|
||
"loading": "Carregando configurações do QuickBooks…",
|
||
"mapping": {
|
||
"alert": "Itens, códigos fiscais e condições do QuickBooks são carregados da empresa conectada para que exportações ao vivo possam continuar usando a primeira conexão QuickBooks armazenada na v1.",
|
||
"descriptionPrefix": "Configure os mapeamentos QuickBooks ao vivo para a empresa conectada. Estes mapeamentos estão limitados a",
|
||
"placeholderAlert": "O gerenciador de mapeamentos fica disponível após a primeira empresa QuickBooks ser conectada e definida como contexto padrão do QuickBooks ao vivo.",
|
||
"placeholderDescription": "Conecte uma empresa QuickBooks antes de configurar os mapeamentos de itens e impostos do QuickBooks ao vivo.",
|
||
"title": "Mapeamento e configuração do QuickBooks ao vivo"
|
||
},
|
||
"noClientId": "Nenhum client ID está armazenado para este tenant ainda.",
|
||
"noClientSecret": "Nenhum client secret está armazenado para este tenant ainda.",
|
||
"quickbooksCsv": "QuickBooks CSV",
|
||
"redirectUri": "Redirect URI",
|
||
"requiredScopes": "Escopos obrigatórios",
|
||
"storedClientId": "Client ID armazenado: {{value}}",
|
||
"storedClientSecret": "Client secret armazenado: {{value}}",
|
||
"tenantOauthDescription": "Cole as credenciais do aplicativo Intuit registradas para este tenant ou deixe em branco para usar o aplicativo QuickBooks no nível do aplicativo, se configurado. Valores de secret nunca são retornados ao navegador após serem salvos.",
|
||
"tenantOauthTitle": "Aplicativo OAuth de propriedade do tenant",
|
||
"title": "QuickBooks Online"
|
||
},
|
||
"sync": {
|
||
"healthCardTitle": "Estado da sincronização",
|
||
"healthCardDescription": "Estado e controlos da sincronização contabilística do QuickBooks. Executada a cada 15 minutos.",
|
||
"lastCycleTitle": "Último ciclo de sincronização",
|
||
"lastCycleStatus": "Estado",
|
||
"lastCycleFinishedAt": "Concluído",
|
||
"lastCycleStats": "Resultados",
|
||
"statOpsProcessed": "{{count}} operações processadas",
|
||
"statDriftFound": "{{count}} divergências",
|
||
"statPaymentsApplied": "{{count}} pagamentos aplicados",
|
||
"noLastCycle": "Ainda não foi executado nenhum ciclo de sincronização.",
|
||
"nextRunHint": "Executada automaticamente a cada 15 minutos quando a sincronização automática está ativada.",
|
||
"pendingOps": "Operações pendentes",
|
||
"erroredOps": "Operações com erro",
|
||
"driftCount": "Divergências",
|
||
"openExceptions": "Exceções abertas",
|
||
"refreshTokenExpiry": "O token do QuickBooks expira em {{date}}",
|
||
"refreshTokenExpired": "Token do QuickBooks expirado — volte a ligar para retomar a sincronização.",
|
||
"autoSyncLabel": "Sincronização automática ativada",
|
||
"syncNowButton": "Sincronizar agora",
|
||
"syncNowRunning": "A sincronizar…",
|
||
"syncNowSuccess": "Sincronização concluída com êxito.",
|
||
"syncNowSkipped": "Sincronização ignorada: {{reason}}",
|
||
"syncNowError": "Falha na sincronização: {{error}}",
|
||
"viewExceptionsLink": "Ver exceções",
|
||
"autoApplyCreditsWarning": "QuickBooks is set to automatically apply credits, which conflicts with credit applications driven from Alga: QuickBooks may apply exported credit memos to a different invoice before the sync does. In QuickBooks, go to Account and Settings → Advanced → Automation and turn off \"Automatically apply credits\".",
|
||
"configTitle": "Sync Configuration",
|
||
"connectedCompanies": "Connected Companies",
|
||
"defaultClass": "Default Class",
|
||
"defaultDepartment": "Default Department",
|
||
"defaultRealm": "Default",
|
||
"depositAccount": "Deposit Account",
|
||
"makeDefault": "Make default",
|
||
"noDefault": "No default",
|
||
"saving": "Saving…",
|
||
"undepositedFunds": "Undeposited Funds (default)"
|
||
}
|
||
},
|
||
"rmm": {
|
||
"ninjaOne": {
|
||
"loading": "Carregando configurações de integração NinjaOne...",
|
||
"card": {
|
||
"title": "Integração NinjaOne RMM",
|
||
"description": "Conecte sua conta NinjaOne para sincronizar dispositivos, receber alertas e habilitar recursos de acesso remoto.",
|
||
"skeletonDescription": "Carregando integração NinjaOne..."
|
||
},
|
||
"status": {
|
||
"checking": "Verificando conexão NinjaOne...",
|
||
"notConnected": {
|
||
"title": "Não conectado ao NinjaOne",
|
||
"description": "Conecte sua conta NinjaOne para sincronizar dispositivos, receber alertas e habilitar acesso remoto."
|
||
},
|
||
"connected": "Conectado ao NinjaOne",
|
||
"connectedWithErrors": "NinjaOne conectado com erros de sincronização",
|
||
"instanceLabel": "Instância:",
|
||
"organizations": "{{count}} organizações",
|
||
"devices": "{{count}} dispositivos",
|
||
"activeAlerts": "{{count}} alertas ativos",
|
||
"lastSynced": "Última sincronização: {{time}}"
|
||
},
|
||
"setup": {
|
||
"title": "Instruções de configuração",
|
||
"steps": {
|
||
"login": "Faça login no painel do NinjaOne",
|
||
"navigate": "Navegue até Administration → Apps → API",
|
||
"addClient": "Clique em \"+ Add client app\" para criar uma nova aplicação de API",
|
||
"platform": "Defina Application Platform como \"Web (PHP, Java, .Net Core, etc.)\"",
|
||
"name": "Insira um Name (ex. \"Alga PSA\")",
|
||
"redirectUri": "Adicione o redirect URI:",
|
||
"scopes": "Em \"Scopes\", marque \"Monitoring\" e \"Management\"",
|
||
"grantTypes": "Em \"Allowed grant types\", marque \"Authorization code\", \"Client credentials\" e \"Refresh token\"",
|
||
"addAndCopy": "Clique em \"Add\" e copie o Client ID e o Client Secret abaixo"
|
||
},
|
||
"docsPrefix": "Para instruções detalhadas de configuração, consulte",
|
||
"docsSection": "Seção 10.15",
|
||
"docsSuffix": "na documentação.",
|
||
"openApiSettings": "Abrir configurações da API do NinjaOne"
|
||
},
|
||
"credentials": {
|
||
"title": "Credenciais da API",
|
||
"saved": "Credenciais salvas",
|
||
"clientIdLabel": "Client ID",
|
||
"clientIdPlaceholder": "Insira seu Client ID do NinjaOne",
|
||
"clientSecretLabel": "Client Secret",
|
||
"clientSecretPlaceholder": "Insira seu Client Secret do NinjaOne",
|
||
"clientSecretUpdatePlaceholder": "Insira um novo secret para atualizar",
|
||
"secretMaskedLabel": "Secret",
|
||
"saving": "Salvando...",
|
||
"save": "Salvar credenciais"
|
||
},
|
||
"region": {
|
||
"hint": "Selecione sua região NinjaOne e, em seguida, clique em ‘Conectar ao NinjaOne’ para autorizar o acesso.",
|
||
"label": "Região:"
|
||
},
|
||
"actions": {
|
||
"refreshing": "Atualizando...",
|
||
"refreshStatus": "Atualizar status",
|
||
"syncing": "Sincronizando...",
|
||
"syncOrganizations": "Sincronizar organizações",
|
||
"syncingDevices": "Sincronizando dispositivos...",
|
||
"syncDevices": "Sincronizar dispositivos",
|
||
"disconnecting": "Desconectando...",
|
||
"disconnect": "Desconectar",
|
||
"connect": "Conectar ao NinjaOne"
|
||
},
|
||
"disconnectModal": {
|
||
"title": "Desconectar NinjaOne",
|
||
"description": "Tem certeza de que deseja desconectar o NinjaOne? Isso interromperá a sincronização de dispositivos e as notificações de alerta, e removerá suas credenciais de API armazenadas. Os mapeamentos de organização serão preservados.",
|
||
"cancel": "Cancelar",
|
||
"confirm": "Desconectar"
|
||
},
|
||
"toasts": {
|
||
"connectSuccess": "Conectado com sucesso ao NinjaOne.",
|
||
"connectFailed": "Falha na conexão com o NinjaOne.",
|
||
"connectFailedWithDetail": "Falha na conexão com o NinjaOne: {{detail}}",
|
||
"disconnectSuccess": "Conexão NinjaOne desconectada com sucesso.",
|
||
"credentialsSaved": "Credenciais de API do NinjaOne salvas com sucesso.",
|
||
"orgSyncSuccess": "Sincronização de organizações concluída. Processadas: {{processed}}, Criadas: {{created}}, Atualizadas: {{updated}}",
|
||
"deviceSyncSuccess": "Sincronização de dispositivos concluída. Processados: {{processed}}, Criados: {{created}}, Atualizados: {{updated}}"
|
||
},
|
||
"errors": {
|
||
"loadStatus": "Falha ao carregar o status de conexão do NinjaOne.",
|
||
"saveCredentials": "Falha ao salvar as credenciais.",
|
||
"connect": "Falha ao iniciar a conexão com o NinjaOne.",
|
||
"disconnect": "Falha ao desconectar o NinjaOne.",
|
||
"disconnectUnexpected": "Ocorreu um erro inesperado ao desconectar.",
|
||
"orgSyncFailed": "Falha na sincronização de organizações.",
|
||
"deviceSyncFailed": "Falha na sincronização de dispositivos."
|
||
},
|
||
"compliance": {
|
||
"actions": {
|
||
"retry": "Tentar novamente",
|
||
"syncing": "Sincronizando...",
|
||
"syncPatches": "Sincronizar patches",
|
||
"syncSoftware": "Sincronizar software"
|
||
},
|
||
"description": "Visão geral da integridade dos dispositivos gerenciados por RMM",
|
||
"loading": "Carregando dados de conformidade...",
|
||
"metrics": {
|
||
"devicesOffline": "Dispositivos offline",
|
||
"devicesOnline": "Dispositivos online",
|
||
"devicesWithAlerts": "Dispositivos com alertas",
|
||
"patchesFailed": "Patches com falha",
|
||
"patchesPending": "Patches pendentes"
|
||
},
|
||
"noData": "Nenhum dado de conformidade disponível",
|
||
"summaryError": "Falha ao carregar o resumo de conformidade",
|
||
"title": "Conformidade da frota"
|
||
}
|
||
},
|
||
"setup": {
|
||
"activeConfiguration": "Configuração ativa",
|
||
"comingSoon": "Integração RMM em breve",
|
||
"configure": "Configurar integração",
|
||
"selected": "{{title}} selecionado",
|
||
"title": "Integrações RMM",
|
||
"backToList": "Todas as integrações RMM",
|
||
"loadingProvider": "Carregando configurações da integração {{title}}...",
|
||
"status": {
|
||
"connected": "Conectado",
|
||
"connectedOneDevice": "Conectado · 1 dispositivo",
|
||
"connectedWithDevices": "Conectado · {{count}} dispositivos",
|
||
"notConnected": "Não conectado",
|
||
"syncError": "Erro de sincronização"
|
||
}
|
||
},
|
||
"tactical": {
|
||
"actions": {
|
||
"disconnect": "Desconectar",
|
||
"disconnecting": "Desconectando...",
|
||
"ingestSoftware": "Ingerir software",
|
||
"ingesting": "Ingerindo...",
|
||
"refresh": "Atualizar",
|
||
"save": "Salvar",
|
||
"saving": "Salvando...",
|
||
"syncAlerts": "Sincronizar alertas",
|
||
"syncClients": "Sincronizar clientes",
|
||
"syncDevices": "Sincronizar dispositivos",
|
||
"syncing": "Sincronizando...",
|
||
"testConnection": "Testar conexão",
|
||
"testing": "Testando..."
|
||
},
|
||
"auth": {
|
||
"apiKey": "Chave de API",
|
||
"enterApiKey": "Inserir chave de API",
|
||
"enterPassword": "Inserir senha",
|
||
"enterUsername": "Inserir nome de usuário",
|
||
"knox": "Knox",
|
||
"knoxOption": "Nome de usuário/senha (token Knox)",
|
||
"knoxTokenSaved": "Token Knox salvo: {{value}}",
|
||
"mode": "Autenticação",
|
||
"password": "Senha",
|
||
"saved": "Salvo: {{value}}",
|
||
"savedEnterToUpdate": "Salvo (inserir para atualizar)",
|
||
"totp": "Código TOTP",
|
||
"username": "Nome de usuário"
|
||
},
|
||
"autoSync": "Sincronização automática",
|
||
"client": {
|
||
"loading": "Carregando clientes…",
|
||
"select": "Selecionar cliente"
|
||
},
|
||
"counts": {
|
||
"activeAlerts": "Alertas ativos",
|
||
"lastSync": "Última sincronização",
|
||
"mappedOrgs": "Organizações mapeadas",
|
||
"never": "Nunca",
|
||
"syncedDevices": "Dispositivos sincronizados"
|
||
},
|
||
"description": "Conecte o Tactical RMM para sincronizar ativos e ingerir alertas.",
|
||
"errors": {
|
||
"backfillAlerts": "Falha no backfill de alertas",
|
||
"connectionTest": "Falha no teste de conexão",
|
||
"disconnect": "Falha ao desconectar",
|
||
"ingestSoftware": "Falha na ingestão de software",
|
||
"loadOrgMappings": "Falha ao carregar os mapeamentos de organização",
|
||
"loadSettings": "Falha ao carregar as configurações do Tactical RMM",
|
||
"saveConfig": "Falha ao salvar a configuração do Tactical RMM",
|
||
"someAlertsFailed": "Alguns alertas não puderam ser atualizados: {{errors}}",
|
||
"someDevicesFailed": "Alguns dispositivos não puderam ser sincronizados: {{errors}}",
|
||
"someOrgsFailed": "Algumas organizações não puderam ser sincronizadas: {{errors}}",
|
||
"someSoftwareFailed": "Algumas linhas de software não puderam ser ingeridas: {{errors}}",
|
||
"syncDevices": "Falha na sincronização de dispositivos",
|
||
"syncOrgs": "Falha na sincronização de organizações",
|
||
"totpRequired": "TOTP é obrigatório. Insira seu código atual e teste novamente.",
|
||
"updateMapping": "Falha ao atualizar o mapeamento"
|
||
},
|
||
"fields": {
|
||
"instanceUrl": "URL da instância",
|
||
"instanceUrlHelp": "Use o host da API do Tactical — o subdomínio api., por ex. https://api.example.com. Não a URL do painel (rmm.) e sem /api no final.",
|
||
"betaApiNote": "Requer que a API Beta do Tactical esteja ativada no servidor: defina BETA_API_ENABLED = True no Tactical e reinicie-o. Sem a API Beta, o teste de conexão e a sincronização falharão."
|
||
},
|
||
"lastError": "Último erro: {{error}}",
|
||
"loadingSettings": "Carregando configurações do Tactical RMM...",
|
||
"sections": {
|
||
"alerts": "Alertas",
|
||
"alertsDescription": "Opcional: realizar backfill de alertas históricos ou ativos do Tactical para o Alga.",
|
||
"devices": "Dispositivos",
|
||
"devicesDescription": "Sincronize agentes do Tactical como ativos do Alga para organizações mapeadas.",
|
||
"orgMapping": "Mapeamento de organizações",
|
||
"orgMappingDescription": "Atribua cada cliente do Tactical a um cliente do Alga e controle a sincronização automática por organização.",
|
||
"orgMappingEmpty": "Nenhuma organização encontrada. Execute primeiro \"Sincronizar clientes\".",
|
||
"organizations": "Organizações",
|
||
"organizationsDescription": "Sincronize clientes do Tactical para mapeamentos de organização do Alga e, em seguida, atribua-os a clientes do Alga.",
|
||
"softwareInventory": "Inventário de software",
|
||
"softwareInventoryDescription": "Opcional: ingerir inventário de software em cache via Tactical /api/software/ (sem chamadas de atualização por agente).",
|
||
"webhooks": "Webhooks (alertas)",
|
||
"webhooksDescription": "Configure um webhook de ação de alerta do Tactical usando o cabeçalho de secret compartilhado abaixo."
|
||
},
|
||
"status": {
|
||
"authPrefix": "Autenticação:",
|
||
"connected": "Conectado",
|
||
"disconnected": "Desconectado",
|
||
"instanceUrlNotSet": "URL da instância não definida"
|
||
},
|
||
"statusLine": {
|
||
"configured": "Status: Configurado",
|
||
"notConfigured": "Status: Não configurado"
|
||
},
|
||
"success": {
|
||
"alertBackfillCompleted": "Backfill de alertas concluído. Processados: {{processed}}, Criados: {{created}}, Atualizados: {{updated}}, Falharam: {{failed}}",
|
||
"connection": "Conexão bem-sucedida.",
|
||
"deviceSyncCompleted": "Sincronização de dispositivos concluída. Processados: {{processed}}, Criados: {{created}}, Atualizados: {{updated}}, Excluídos: {{deleted}}, Falharam: {{failed}}",
|
||
"disconnected": "Desconectado.",
|
||
"orgSyncCompleted": "Sincronização de organizações concluída. Processadas: {{processed}}, Criadas: {{created}}, Atualizadas: {{updated}}, Falharam: {{failed}}",
|
||
"saved": "Configuração do Tactical RMM salva.",
|
||
"softwareIngestionCompleted": "Ingestão de software concluída. Processadas: {{processed}}, Instaladas/Atualizadas: {{created}}, Ativos atualizados: {{updated}}, Falharam: {{failed}}"
|
||
},
|
||
"tacticalIdLabel": "ID do Tactical: {{id}}",
|
||
"title": "Tactical RMM",
|
||
"toasts": {
|
||
"alertsSyncedDescription": "Os alertas do Tactical foram preenchidos.",
|
||
"alertsSyncedTitle": "Alertas sincronizados",
|
||
"backfillFailedTitle": "Falha no backfill",
|
||
"connectedDescription": "Conexão do Tactical RMM verificada.",
|
||
"connectedTitle": "Conectado",
|
||
"connectionFailedTitle": "Falha na conexão",
|
||
"devicesSyncedDescription": "Os agentes do Tactical foram sincronizados como ativos.",
|
||
"devicesSyncedTitle": "Dispositivos sincronizados",
|
||
"disconnectFailedTitle": "Falha ao desconectar",
|
||
"disconnectedDescription": "Credenciais do Tactical RMM limpas.",
|
||
"disconnectedTitle": "Desconectado",
|
||
"ingestionFailedTitle": "Falha na ingestão",
|
||
"orgsSyncedDescription": "Os clientes do Tactical foram sincronizados em mapeamentos de organização.",
|
||
"orgsSyncedTitle": "Organizações sincronizadas",
|
||
"saveFailedTitle": "Falha ao salvar",
|
||
"savedDescription": "Configuração do Tactical RMM atualizada.",
|
||
"savedTitle": "Salvo",
|
||
"softwareIngestedDescription": "Inventário de software do Tactical em cache foi ingerido.",
|
||
"softwareIngestedTitle": "Software ingerido",
|
||
"syncFailedTitle": "Falha na sincronização",
|
||
"unknownError": "Erro desconhecido",
|
||
"updateFailedTitle": "Falha na atualização"
|
||
},
|
||
"webhook": {
|
||
"copiedTitle": "Copiado",
|
||
"copy": "Copiar",
|
||
"headerName": "Nome do cabeçalho",
|
||
"payloadTemplate": "Modelo de payload",
|
||
"secret": "Secret do cabeçalho",
|
||
"secretCopied": "Secret do webhook copiado para a área de transferência.",
|
||
"unavailable": "Informações do webhook indisponíveis. (Requer permissão de leitura das configurações.)",
|
||
"url": "URL do webhook",
|
||
"urlCopied": "URL do webhook copiada para a área de transferência."
|
||
}
|
||
},
|
||
"tanium": {
|
||
"loading": "Carregando configurações da integração Tanium...",
|
||
"actions": {
|
||
"discoverScopes": "Descobrir escopos",
|
||
"disconnect": "Desconectar",
|
||
"runInventorySync": "Executar sincronização de inventário",
|
||
"saveConfiguration": "Salvar configuração",
|
||
"testConnection": "Testar conexão"
|
||
},
|
||
"connection": {
|
||
"connectedAt": "Conectado em: {{time}}",
|
||
"description": "Configure as credenciais do Tanium Gateway e verifique o acesso com escopo de tenant.",
|
||
"never": "Nunca",
|
||
"syncLabel": "Sincronização: {{status}}",
|
||
"syncLabelWithError": "Sincronização: {{status}} ({{error}})",
|
||
"title": "Conexão Tanium"
|
||
},
|
||
"errors": {
|
||
"loadMappings": "Falha ao carregar os mapeamentos Tanium.",
|
||
"loadSettings": "Falha ao carregar as configurações do Tanium.",
|
||
"loadState": "Falha ao carregar o estado de integração do Tanium.",
|
||
"saveConfiguration": "Falha ao salvar a configuração do Tanium.",
|
||
"testConnectionFailed": "Falha no teste de conexão do Tanium.",
|
||
"disconnectFailed": "Falha ao desconectar a integração Tanium.",
|
||
"scopeDiscoveryFailed": "Falha na descoberta de escopos.",
|
||
"inventorySyncFailed": "Falha na sincronização de inventário.",
|
||
"updateMappingFailed": "Falha ao atualizar o mapeamento."
|
||
},
|
||
"fields": {
|
||
"apiToken": "Token de API {{state}}",
|
||
"apiTokenPlaceholderExisting": "Deixe em branco para manter o token existente",
|
||
"apiTokenPlaceholderNew": "Cole o token de API Tanium",
|
||
"apiTokenStateRequired": "(obrigatório)",
|
||
"apiTokenStateSaved": "(salvo)",
|
||
"assetApiUrl": "URL da Asset API (opcional)",
|
||
"assetApiUrlPlaceholder": "https://example.cloud.tanium.com/plugin/products/asset",
|
||
"assetFallbackLabel": "Habilitar fallback da Asset API para cobertura de endpoints expirados",
|
||
"gatewayUrl": "URL do Gateway",
|
||
"gatewayUrlPlaceholder": "https://example.cloud.tanium.com"
|
||
},
|
||
"mappings": {
|
||
"autoSync": "Sincronização automática",
|
||
"autoSyncDisabled": "Desabilitada",
|
||
"autoSyncEnabled": "Habilitada",
|
||
"externalScope": "Escopo externo",
|
||
"loading": "Carregando mapeamentos...",
|
||
"mappedClient": "Cliente mapeado",
|
||
"noScopes": "Nenhum escopo Tanium descoberto ainda.",
|
||
"scopeIdLabel": "ID: {{id}}",
|
||
"unmapped": "Não mapeado"
|
||
},
|
||
"status": {
|
||
"connected": "Conectado",
|
||
"disconnected": "Desconectado",
|
||
"label": "Status: "
|
||
},
|
||
"success": {
|
||
"configurationSaved": "Configuração do Tanium salva.",
|
||
"connectionTestSucceeded": "Teste de conexão Tanium bem-sucedido.",
|
||
"disconnected": "Integração Tanium desconectada.",
|
||
"inventorySyncCompleted": "Sincronização de inventário concluída. Processados: {{processed}}, Criados: {{created}}, Atualizados: {{updated}}",
|
||
"scopeDiscoveryCompleted": "Descoberta de escopos concluída. Processados: {{processed}}, Criados: {{created}}, Atualizados: {{updated}}"
|
||
},
|
||
"sync": {
|
||
"description": "Descubra escopos a partir de grupos de computadores do Tanium, mapeie-os para clientes e execute a sincronização de inventário.",
|
||
"title": "Sincronização Tanium"
|
||
}
|
||
},
|
||
"levelio": {
|
||
"actions": {
|
||
"backfillAlerts": "Backfill de alertas",
|
||
"disconnect": "Desconectar",
|
||
"discoverGroups": "Descobrir grupos",
|
||
"runDeviceSync": "Executar sincronização de dispositivos",
|
||
"saveConfiguration": "Salvar configuração",
|
||
"testConnection": "Testar conexão"
|
||
},
|
||
"connection": {
|
||
"connectedAt": "Conectado: {{time}}",
|
||
"description": "Conecte-se ao Level (level.io) com uma chave de API. As chaves são criadas no Level em Settings > API.",
|
||
"never": "nunca",
|
||
"syncLabel": "Sincronização: {{status}}",
|
||
"syncLabelWithError": "Sincronização: {{status}} ({{error}})",
|
||
"title": "Conexão Level"
|
||
},
|
||
"errors": {
|
||
"alertBackfillFailed": "Falha no backfill de alertas",
|
||
"deviceSyncFailed": "Falha na sincronização de dispositivos",
|
||
"disconnectFailed": "Falha ao desconectar a integração Level",
|
||
"groupSyncFailed": "Falha na descoberta de grupos",
|
||
"loadMappings": "Falha ao carregar os mapeamentos de grupos do Level",
|
||
"loadSettings": "Falha ao carregar as configurações do Level",
|
||
"loadState": "Falha ao carregar o estado da integração Level",
|
||
"loadSummary": "Falha ao carregar o resumo da conexão Level",
|
||
"loadWebhook": "Falha ao carregar os detalhes do webhook do Level",
|
||
"saveConfiguration": "Falha ao salvar a configuração do Level",
|
||
"testConnectionFailed": "Falha no teste de conexão",
|
||
"updateMappingFailed": "Falha ao atualizar o mapeamento"
|
||
},
|
||
"fields": {
|
||
"apiKey": "Chave de API ({{state}})",
|
||
"apiKeyPlaceholderExisting": "Insira uma nova chave para substituir a salva",
|
||
"apiKeyPlaceholderNew": "Cole sua chave de API do Level",
|
||
"apiKeyStateRequired": "obrigatória",
|
||
"apiKeyStateSaved": "salva"
|
||
},
|
||
"mappings": {
|
||
"autoSync": "Sincronização automática",
|
||
"autoSyncDisabled": "Desativada",
|
||
"autoSyncEnabled": "Ativada",
|
||
"group": "Grupo Level",
|
||
"groupIdLabel": "ID: {{id}}",
|
||
"loading": "Carregando…",
|
||
"mappedClient": "Cliente mapeado",
|
||
"noGroups": "Ainda não há grupos descobertos. Execute Descobrir grupos primeiro.",
|
||
"unmapped": "Não mapeado"
|
||
},
|
||
"status": {
|
||
"connected": "Conectado",
|
||
"disconnected": "Não conectado",
|
||
"label": "Status: "
|
||
},
|
||
"success": {
|
||
"alertBackfillCompleted": "Backfill de alertas concluído: {{processed}} alertas processados",
|
||
"configurationSaved": "Configuração do Level salva",
|
||
"connectionTestSucceeded": "Conexão com o Level bem-sucedida",
|
||
"deviceSyncCompleted": "Sincronização de dispositivos concluída: {{processed}} processados, {{created}} criados, {{updated}} atualizados",
|
||
"disconnected": "Integração Level desconectada",
|
||
"groupSyncCompleted": "Descoberta de grupos concluída: {{processed}} processados, {{created}} criados, {{updated}} atualizados"
|
||
},
|
||
"sync": {
|
||
"description": "Descubra grupos do Level, mapeie-os para clientes e sincronize dispositivos. Dispositivos em grupos não mapeados são ignorados; subgrupos herdam o ancestral mapeado mais próximo.",
|
||
"summary": "{{mappedGroups}} grupos mapeados · {{devices}} dispositivos · {{activeAlerts}} alertas ativos",
|
||
"title": "Sincronização e mapeamentos de grupos"
|
||
},
|
||
"webhook": {
|
||
"copied": "Copiado",
|
||
"copy": "Copiar",
|
||
"description": "O Level não pode registrar webhooks pela API. No Level, crie uma automação com uma ação HTTP POST usando o URL, o cabeçalho e o payload abaixo para enviar alertas ao Alga em tempo real.",
|
||
"header": "Cabeçalho: {{name}}",
|
||
"hideSecret": "Ocultar segredo",
|
||
"loading": "Os detalhes do webhook são carregados depois que a integração for configurada.",
|
||
"payload": "Modelo de payload",
|
||
"showSecret": "Mostrar segredo",
|
||
"title": "Webhook de alertas",
|
||
"url": "URL do webhook"
|
||
}
|
||
}
|
||
},
|
||
"sso": {
|
||
"msp": {
|
||
"actions": {
|
||
"add": "Adicionar",
|
||
"refresh": "Atualizar",
|
||
"request": "Solicitar",
|
||
"resetChallenge": "Redefinir desafio",
|
||
"revoke": "Revogar",
|
||
"saveDomains": "Salvar domínios",
|
||
"saving": "Salvando…",
|
||
"verify": "Verificar"
|
||
},
|
||
"addDomainLabel": "Adicionar domínio de login",
|
||
"advisoryNotice": "Modo consultivo: o registro do domínio ajuda no roteamento da descoberta de MSP SSO, mas não requer verificação de propriedade na Community Edition.",
|
||
"claimStatus": {
|
||
"advisory": "Consultivo",
|
||
"pending": "Pendente",
|
||
"rejected": "Rejeitado",
|
||
"revoked": "Revogado",
|
||
"verified": "Verificado",
|
||
"verifiedLegacy": "Verificado (Legacy)"
|
||
},
|
||
"descriptionCe": "Registre domínios consultivos para a descoberta do SSO de login MSP. A verificação de propriedade não é imposta na Community Edition, e domínios não gerenciados usam como fallback os provedores de nível de aplicativo da Nine Minds.",
|
||
"descriptionEe": "Gerencie o ciclo de vida das reivindicações de domínio para a descoberta de provedores SSO de login MSP. Domínios não reivindicados ou não elegíveis usam como fallback os provedores de nível de aplicativo da Nine Minds.",
|
||
"dnsHost": "Host:",
|
||
"dnsInstructions": "Adicione o registro DNS TXT e, em seguida, clique em Verificar:",
|
||
"dnsValue": "Valor:",
|
||
"emptyClaims": "Nenhuma reivindicação de domínio configurada ainda.",
|
||
"emptyDomains": "Nenhum domínio configurado. Domínios desconhecidos usarão o fallback do provedor de nível de aplicativo.",
|
||
"errors": {
|
||
"conflicts": "Conflitos: {{conflicts}}.",
|
||
"loadClaims": "Não foi possível carregar as reivindicações de domínio MSP SSO.",
|
||
"loadDomains": "Não foi possível carregar os domínios de login MSP SSO.",
|
||
"refreshChallenge": "Não foi possível atualizar o desafio.",
|
||
"requestClaim": "Não foi possível solicitar a reivindicação de domínio.",
|
||
"revokeClaim": "Não foi possível revogar a reivindicação de domínio.",
|
||
"saveDomains": "Não foi possível salvar os domínios de login MSP SSO.",
|
||
"verifyClaim": "Não foi possível verificar a reivindicação de domínio."
|
||
},
|
||
"fallbackInfo": "Domínios sem uma reivindicação de tenant elegível usam a configuração do provedor SSO de nível de aplicativo da Nine Minds.",
|
||
"loading": "Carregando…",
|
||
"removeDomainAria": "Remover domínio {{number}}",
|
||
"requestClaim": "Solicitar reivindicação",
|
||
"requestClaimLabel": "Solicitar reivindicação de domínio",
|
||
"title": "Domínios de login MSP SSO",
|
||
"toasts": {
|
||
"claimRequestedDescription": "Reivindicação de domínio pendente criada e desafio de verificação gerado.",
|
||
"claimRequestedTitle": "Reivindicação de domínio solicitada",
|
||
"claimUnchangedDescription": "A reivindicação pendente e o desafio existentes já estão ativos.",
|
||
"claimUnchangedTitle": "Reivindicação de domínio inalterada",
|
||
"refreshFailedTitle": "Não foi possível atualizar o desafio",
|
||
"refreshedDescription": "Um novo desafio de verificação está ativo para esta reivindicação.",
|
||
"refreshedTitle": "Desafio atualizado",
|
||
"requestClaimFailedTitle": "Não foi possível solicitar a reivindicação de domínio",
|
||
"revokeFailedTitle": "Não foi possível revogar a reivindicação",
|
||
"revokedDescription": "A tomada de posse do tenant para este domínio está desabilitada.",
|
||
"revokedTitle": "Reivindicação de domínio revogada",
|
||
"saveDomainsFailedTitle": "Não foi possível salvar os domínios de login MSP SSO",
|
||
"savedDescription": "As configurações de descoberta SSO baseadas em domínio foram atualizadas.",
|
||
"savedTitle": "Domínios de login MSP SSO salvos",
|
||
"verifiedDescription": "A tomada de posse do domínio agora é elegível para o roteamento de provedor no escopo do tenant.",
|
||
"verifiedTitle": "Reivindicação de domínio verificada",
|
||
"verifyFailedTitle": "Falha na verificação do domínio"
|
||
}
|
||
}
|
||
},
|
||
"teams": {
|
||
"settings": {
|
||
"actions": {
|
||
"activate": "Ativar Teams",
|
||
"addNote": {
|
||
"description": "Permitir ações rápidas de nota interna.",
|
||
"label": "Adicionar nota"
|
||
},
|
||
"approvalResponse": {
|
||
"description": "Permitir ações rápidas de aprovação e rejeição.",
|
||
"label": "Resposta de aprovação"
|
||
},
|
||
"assignTicket": {
|
||
"description": "Permitir ações rápidas de atribuição de ticket.",
|
||
"label": "Atribuir ticket"
|
||
},
|
||
"deactivate": "Desativar",
|
||
"logTime": {
|
||
"description": "Permitir ações rápidas de registro de tempo.",
|
||
"label": "Registrar tempo"
|
||
},
|
||
"reload": "Recarregar",
|
||
"replyToContact": {
|
||
"description": "Permitir ações rápidas de resposta visíveis para o cliente.",
|
||
"label": "Responder ao contato"
|
||
},
|
||
"saveChanges": "Salvar alterações",
|
||
"saveDraft": "Salvar rascunho",
|
||
"saving": "Salvando...",
|
||
"teamsActive": "Teams ativo"
|
||
},
|
||
"capabilities": {
|
||
"activityNotifications": {
|
||
"description": "Entregar notificações pessoais no feed de atividades do Teams.",
|
||
"label": "Notificações de atividade"
|
||
},
|
||
"groupChatBot": {
|
||
"description": "Permitir que o bot responda em chats de grupo do Teams. Respostas do bot (incluindo detalhes de ticket) são visíveis para todos os membros do chat.",
|
||
"label": "Bot em chat de grupo"
|
||
},
|
||
"messageExtension": {
|
||
"description": "Habilitar consultas e ações PSA orientadas por mensagens.",
|
||
"label": "Message extension"
|
||
},
|
||
"personalBot": {
|
||
"description": "Habilitar comandos de bot em escopo pessoal para técnicos.",
|
||
"label": "Bot pessoal"
|
||
},
|
||
"personalTab": {
|
||
"description": "Iniciar o ponto de entrada da aba pessoal PSA.",
|
||
"label": "Aba pessoal"
|
||
}
|
||
},
|
||
"checklist": {
|
||
"installState": {
|
||
"active": "O Teams está ativo para este tenant.",
|
||
"error": "A configuração do Teams tem um erro que precisa ser corrigido.",
|
||
"label": "Estado de instalação do Teams",
|
||
"notConfigured": "Salve um rascunho ou ative o Teams quando a configuração estiver pronta.",
|
||
"pending": "O rascunho da configuração foi salvo e está pronto para instalação ou consentimento."
|
||
},
|
||
"needsAction": "Requer ação",
|
||
"profileReady": {
|
||
"completed": "O perfil selecionado possui Client ID, Tenant ID e material de secret armazenado.",
|
||
"label": "Perfil pronto para instalação do Teams",
|
||
"pending": "Nenhum perfil Teams selecionado está pronto ainda."
|
||
},
|
||
"profileSelected": {
|
||
"completed": "{{name}} está vinculado para o Teams.",
|
||
"label": "Perfil Microsoft selecionado",
|
||
"pending": "Selecione um perfil Microsoft elegível antes de salvar ou ativar o Teams."
|
||
},
|
||
"ready": "Pronto"
|
||
},
|
||
"description": "Vincule o Teams a um perfil Microsoft, habilite capacidades e gere o pacote do tenant.",
|
||
"errors": {
|
||
"downloadPackage": "Falha ao baixar o pacote do aplicativo Teams",
|
||
"generatePackage": "Falha ao gerar o pacote do aplicativo Teams",
|
||
"loadGuidance": "Falha ao carregar o guia de configuração do Teams",
|
||
"saveSettings": "Falha ao salvar as configurações do Teams"
|
||
},
|
||
"guidance": {
|
||
"applicationIdUri": "Application ID URI",
|
||
"messageExtension": "Message extension",
|
||
"personalBot": "Bot pessoal",
|
||
"personalTab": "Aba pessoal",
|
||
"redirectUris": "Redirect URIs",
|
||
"requiredScopes": "Escopos obrigatórios",
|
||
"teamsAppIdUri": "Teams App ID URI",
|
||
"unavailable": "Indisponível"
|
||
},
|
||
"installStatus": {
|
||
"active": "Ativo",
|
||
"error": "Erro",
|
||
"installPending": "Instalação pendente",
|
||
"notConfigured": "Não configurado"
|
||
},
|
||
"noEligibleProfiles": "Nenhum perfil Microsoft está pronto para o Teams. Conclua primeiro a configuração Microsoft.",
|
||
"notifications": {
|
||
"approvalRequest": {
|
||
"description": "Notificar aprovadores sobre decisões pendentes.",
|
||
"label": "Solicitações de aprovação"
|
||
},
|
||
"assignment": {
|
||
"description": "Notificar técnicos quando trabalho for atribuído.",
|
||
"label": "Eventos de atribuição"
|
||
},
|
||
"customerReply": {
|
||
"description": "Notificar técnicos quando os clientes responderem.",
|
||
"label": "Respostas de clientes"
|
||
},
|
||
"escalation": {
|
||
"description": "Notificar responsáveis quando o trabalho for escalonado.",
|
||
"label": "Escalonamentos"
|
||
},
|
||
"slaRisk": {
|
||
"description": "Notificar técnicos quando os limites de risco de SLA forem atingidos.",
|
||
"label": "Risco de SLA"
|
||
}
|
||
},
|
||
"package": {
|
||
"appId": "App ID",
|
||
"appIds": "App IDs",
|
||
"botId": "Bot ID",
|
||
"deepLinks": "Deep links",
|
||
"description": "Gere o manifesto do aplicativo e os links de instalação para o perfil Microsoft selecionado.",
|
||
"downloadManifest": "Baixar manifesto JSON",
|
||
"downloadZip": "Baixar pacote do aplicativo (.zip)",
|
||
"downloading": "Baixando...",
|
||
"fileName": "Nome do arquivo",
|
||
"generate": "Gerar pacote",
|
||
"generating": "Gerando...",
|
||
"manifestVersion": "Versão do manifesto",
|
||
"myWork": "Meu trabalho",
|
||
"openBaseUrl": "Abrir URL base do PSA",
|
||
"openDeeplink": "Abrir deep link do Teams",
|
||
"packageVersion": "Versão do pacote",
|
||
"projectTaskTemplate": "Modelo de tarefa de projeto",
|
||
"section": "Pacote",
|
||
"ticketTemplate": "Modelo de ticket",
|
||
"title": "Pacote Teams",
|
||
"validDomains": "Domínios válidos",
|
||
"webResource": "Recurso de aplicação web"
|
||
},
|
||
"profileLabel": "Perfil Microsoft",
|
||
"profileSummary": {
|
||
"needsRepair": "Perfil selecionado precisa de reparo",
|
||
"none": "Nenhum perfil selecionado"
|
||
},
|
||
"section": {
|
||
"allowedActions": "Ações permitidas",
|
||
"capabilities": "Capacidades",
|
||
"notifications": "Notificações"
|
||
},
|
||
"selectProfile": "Selecionar perfil",
|
||
"statusMessage": {
|
||
"activated": "Configuração do Teams ativada.",
|
||
"deactivated": "Configuração do Teams desativada.",
|
||
"packageDownloaded": "Pacote do aplicativo Teams baixado.",
|
||
"packageGenerated": "Pacote do aplicativo Teams gerado.",
|
||
"saved": "Configuração do Teams salva."
|
||
},
|
||
"title": "Microsoft Teams",
|
||
"diagnostics": {
|
||
"title": "Diagnóstico e mensagem de teste",
|
||
"description": "Verifique a configuração do Teams e envie uma mensagem de teste proativa para a sua conversa de bot do Teams.",
|
||
"run": "Executar diagnóstico",
|
||
"running": "Executando...",
|
||
"sendTest": "Enviar mensagem de teste",
|
||
"sending": "Enviando...",
|
||
"disabled": "O diagnóstico e as mensagens de teste ficam disponíveis após a integração do Teams estar ativa.",
|
||
"completedAt": "Concluído {{time}}",
|
||
"lastSuccess": "Último sucesso",
|
||
"lastFailure": "Última falha",
|
||
"noneRecorded": "Nenhum registrado",
|
||
"recommendations": "Recomendações",
|
||
"status": {
|
||
"pass": "Aprovado",
|
||
"warn": "Aviso",
|
||
"fail": "Falha",
|
||
"skip": "Ignorado"
|
||
},
|
||
"errors": {
|
||
"run": "Falha ao executar o diagnóstico do Teams",
|
||
"testMessage": "Falha ao enviar a mensagem de teste do Teams"
|
||
},
|
||
"test": {
|
||
"sent": "Mensagem de teste do Teams enviada.",
|
||
"failed": "Falha na mensagem de teste do Teams.",
|
||
"addonInactive": "O complemento do Teams não está ativo para este locatário.",
|
||
"integrationInactive": "Ative a integração do Teams antes de enviar uma mensagem de teste.",
|
||
"capabilityDisabled": "Habilite o recurso de bot pessoal antes de enviar uma mensagem de teste.",
|
||
"botNotConfigured": "Configure as credenciais do bot do Teams antes de enviar uma mensagem de teste.",
|
||
"missingUserLinkage": "Vincule sua conta da Microsoft antes de enviar uma mensagem de teste do Teams.",
|
||
"missingConversationReference": "Abra o bot do Alga PSA no Teams e envie qualquer mensagem para ele primeiro e tente novamente.",
|
||
"skipped": "A mensagem de teste do Teams foi ignorada."
|
||
},
|
||
"steps": {
|
||
"addonEntitlement": "Direito ao complemento do Teams",
|
||
"integrationStatus": "Status da integração do Teams",
|
||
"capabilities": "Recursos do Teams",
|
||
"microsoftProfile": "Prontidão do perfil da Microsoft",
|
||
"recordingPermissions": "Permissões de gravação e transcrição do Teams",
|
||
"packageMetadata": "Metadados do pacote do Teams",
|
||
"botConnector": "Credenciais do conector de bot",
|
||
"userLinkage": "Vínculo da conta da Microsoft do administrador",
|
||
"conversationReference": "Referência de conversa do Teams do administrador",
|
||
"recentDeliveryHealth": "Integridade recente da entrega do Teams"
|
||
},
|
||
"recommendation": {
|
||
"addon": "Habilite o complemento do Microsoft Teams para este locatário.",
|
||
"activate": "Ative a integração do Teams nas configurações.",
|
||
"capabilities": "Habilite o bot pessoal e as notificações de atividade para o Teams.",
|
||
"profile": "Selecione um perfil da Microsoft pronto para o Teams.",
|
||
"activeProfile": "Selecione um perfil da Microsoft ativo para o Teams.",
|
||
"profileCredentials": "Conclua as credenciais do perfil da Microsoft antes de ativar o Teams.",
|
||
"meetingOrganizer": "Configure o organizador de reunião padrão do Teams nas configurações do Teams.",
|
||
"meetingOrganizerObjectId": "Salve novamente o organizador de reunião padrão do Teams para que o Alga PSA possa resolver seu ID de objeto do Microsoft Entra.",
|
||
"package": "Gere o pacote do aplicativo do Teams antes de executar a validação de ponta a ponta.",
|
||
"baseUrl": "Gere novamente o pacote do Teams com uma URL base acessível.",
|
||
"botEnv": "Configure TEAMS_BOT_APP_ID, TEAMS_BOT_APP_TENANT_ID e TEAMS_BOT_APP_PASSWORD.",
|
||
"userLinkage": "Vincule sua conta da Microsoft nas configurações do seu perfil.",
|
||
"conversationReference": "Abra o bot do Alga PSA no Teams e envie qualquer mensagem para ele primeiro e tente novamente.",
|
||
"deliveryFailure": "Revise a falha de entrega do Teams mais recente e tente novamente após corrigir a causa."
|
||
}
|
||
},
|
||
"meetings": {
|
||
"title": "Reuniões online e gravações",
|
||
"description": "Use uma única conta de serviço da Microsoft para organizar reuniões do Teams e controlar como as gravações são retidas.",
|
||
"organizer": {
|
||
"label": "UPN do organizador de reunião padrão",
|
||
"placeholder": "scheduler@acme.com",
|
||
"help": "Salvar resolve e armazena o ID de objeto do Microsoft Entra usado nas chamadas de reunião do Graph.",
|
||
"resolved": "ID de objeto resolvido: {{objectId}}"
|
||
},
|
||
"downloadRecordings": {
|
||
"label": "Baixar gravações para o armazenamento interno",
|
||
"description": "Quando ativado, os blobs de gravação são copiados para o armazenamento do locatário, além do proxy autenticado do Graph."
|
||
},
|
||
"exposeRecordingsInPortal": {
|
||
"label": "Mostrar gravações e transcrições no portal do cliente",
|
||
"description": "Desativado por padrão; os usuários de MSP ainda podem ver os artefatos nos detalhes de interação e de compromisso."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"xero": {
|
||
"csv": {
|
||
"clientSync": {
|
||
"cancel": "Cancelar",
|
||
"createNew": "Criar novos clientes",
|
||
"description": "Exporte clientes para CSV Xero Contacts ou importe contatos do Xero.",
|
||
"errorRow": "Linha {{row}}: {{name}} - {{error}}",
|
||
"errors": {
|
||
"export": "Falha ao exportar clientes",
|
||
"import": "Falha ao importar clientes",
|
||
"processCsv": "Falha ao processar o arquivo CSV"
|
||
},
|
||
"errorsTitle": "Erros ({{count}})",
|
||
"exportButton": "Exportar clientes para CSV",
|
||
"exportClients": "Exportar clientes",
|
||
"exportDescription": "Exporte seus clientes Alga para um arquivo CSV que pode ser importado no Xero como Contacts.",
|
||
"exportSuccess": "{{count}} clientes exportados para {{filename}}",
|
||
"importCompleteDescription": "{{count}} contatos processados com sucesso.",
|
||
"importCompleteTitle": "Importação concluída",
|
||
"importContacts": "Importar contatos",
|
||
"importContactsButton": "Importar {{count}} contatos",
|
||
"importDescription": "Importe contatos de uma exportação CSV Xero Contacts. Clientes existentes podem ser correspondidos e atualizados.",
|
||
"importing": "Importando contatos...",
|
||
"matchBy": {
|
||
"algaClientId": "ID do cliente Alga (da categoria de rastreamento)",
|
||
"contactName": "Nome do contato",
|
||
"emailAddress": "Endereço de e-mail"
|
||
},
|
||
"matchByLabel": "Corresponder contatos por:",
|
||
"moreErrors": "...e mais {{count}} erros",
|
||
"preview": {
|
||
"columns": {
|
||
"action": "Ação",
|
||
"contactName": "Nome do contato",
|
||
"email": "E-mail",
|
||
"matchedClient": "Cliente correspondido"
|
||
},
|
||
"moreWarnings": "...e mais {{count}}",
|
||
"showing20of": "Mostrando 20 de {{count}} linhas",
|
||
"toCreate": "Para criar",
|
||
"toSkip": "Para ignorar",
|
||
"toUpdate": "Para atualizar",
|
||
"warnings": "Avisos"
|
||
},
|
||
"processing": "Processando {{filename}}...",
|
||
"result": {
|
||
"created": "Criados",
|
||
"mappings": "Mapeamentos",
|
||
"skipped": "Ignorados",
|
||
"updated": "Atualizados"
|
||
},
|
||
"selectCsvFile": "Selecionar arquivo CSV",
|
||
"startNewImport": "Iniciar nova importação",
|
||
"title": "Sincronização de clientes",
|
||
"updateExisting": "Atualizar clientes existentes",
|
||
"workflow": {
|
||
"s1": "Exportar clientes do Alga para CSV Xero Contacts",
|
||
"s2": "Importar o CSV no Xero (Contacts → Import)",
|
||
"s3": "Após alterações no Xero, exportar contatos do Xero",
|
||
"s4": "Importar o CSV de contatos do Xero de volta para o Alga para sincronizar atualizações"
|
||
},
|
||
"workflowTitle": "Fluxo de sincronização de clientes"
|
||
},
|
||
"settings": {
|
||
"dateFormat": "Formato de data",
|
||
"dateFormatHelp": "Ajuste isto às configurações regionais do seu Xero.",
|
||
"dateFormatOptions": {
|
||
"dmy": "DD/MM/AAAA (Dia/Mês/Ano)",
|
||
"mdy": "MM/DD/AAAA (Mês/Dia/Ano)"
|
||
},
|
||
"defaultCurrency": "Moeda padrão",
|
||
"defaultCurrencyHelp": "Deixe em branco para usar a moeda da fatura.",
|
||
"errors": {
|
||
"load": "Falha ao carregar as configurações",
|
||
"save": "Falha ao salvar as configurações"
|
||
},
|
||
"exportSettings": {
|
||
"description": "Configure como as faturas são exportadas no formato CSV para o Xero.",
|
||
"title": "Configurações de exportação CSV"
|
||
},
|
||
"loading": "Carregando configurações CSV do Xero...",
|
||
"managedPrefix": "Acesse",
|
||
"managedSuffix": "para selecionar faturas, gerar exportações CSV do Xero, importar relatórios fiscais e gerenciar lotes.",
|
||
"mappings": {
|
||
"description": "Mapeie clientes, serviços e códigos fiscais do Alga para os identificadores usados em sua organização Xero. Estes valores são usados ao gerar a exportação CSV.",
|
||
"title": "Mapeamentos CSV do Xero"
|
||
},
|
||
"overview": {
|
||
"description": "Exporte faturas para CSV para importação manual no Xero e importe dados fiscais dos relatórios do Xero.",
|
||
"exportLabel": "Exportação",
|
||
"exportText": "Gere arquivos CSV compatíveis com o recurso de importação de faturas do Xero",
|
||
"intro": "Esta integração fornece uma alternativa à conectividade com o Xero baseada em OAuth:",
|
||
"note": "Nota: Configure os mapeamentos abaixo antes de exportar. As exportações CSV e as importações de impostos são gerenciadas em Faturamento → Exportações contábeis.",
|
||
"taxImportLabel": "Importação de impostos",
|
||
"taxImportText": "Ao usar cálculo fiscal externo, importe valores fiscais do Xero Invoice Details Report",
|
||
"title": "Integração CSV do Xero"
|
||
},
|
||
"savedMessage": "Configurações salvas com sucesso",
|
||
"selectCurrency": "Selecionar moeda",
|
||
"setup": {
|
||
"acknowledge": "Concluí a configuração",
|
||
"description": "Conclua estes passos no Xero antes de usar a importação/exportação CSV.",
|
||
"externalInvoiceId": "ID externo da fatura",
|
||
"externalInvoiceIdHelp": "As opções serão criadas automaticamente ao importar",
|
||
"sourceSystem": "Sistema de origem",
|
||
"sourceSystemHelp": "Adicione uma opção chamada",
|
||
"step1Description": "No Xero, acesse Settings → Tracking Categories e crie estas duas categorias:",
|
||
"step1Title": "Passo 1: Criar categorias de rastreamento",
|
||
"step2Description": "Certifique-se de que sua organização Xero tenha as alíquotas fiscais necessárias configuradas em Settings → Tax Rates.",
|
||
"step2Title": "Passo 2: Configurar alíquotas fiscais",
|
||
"step3Description": "Use a seção de mapeamento abaixo para vincular seus serviços Alga aos códigos de item do Xero e suas regiões fiscais às alíquotas fiscais do Xero.",
|
||
"step3Title": "Passo 3: Mapear serviços e regiões fiscais",
|
||
"title": "Configuração do Xero necessária"
|
||
},
|
||
"useInvoiceCurrency": "Usar moeda da fatura",
|
||
"workflow": {
|
||
"description": "Como exportar faturas e importar cálculos fiscais.",
|
||
"export": {
|
||
"s1": "Acesse Faturamento → Exportações contábeis",
|
||
"s2": "Selecione faturas e escolha \"Xero CSV\" como adaptador",
|
||
"s3": "Baixe o arquivo CSV gerado",
|
||
"s4": "No Xero: Business → Invoices → Import",
|
||
"s5": "Faça upload do CSV e importe como faturas de rascunho",
|
||
"s6": "O Xero calculará o imposto com base nas suas configurações fiscais"
|
||
},
|
||
"exportInvoices": "Exportar faturas",
|
||
"import": {
|
||
"s1": "No Xero: Reports → All Reports → Invoice Details",
|
||
"s2": "Defina o intervalo de datas e exporte como CSV",
|
||
"s3": "No Alga: Faturamento → Exportações contábeis → Importar impostos",
|
||
"s4": "Faça upload do CSV do relatório Xero",
|
||
"s5": "Revise as faturas correspondidas e confirme a importação"
|
||
},
|
||
"importTax": "Importar cálculos fiscais",
|
||
"title": "Fluxo CSV",
|
||
"trackingDescription": "A exportação CSV inclui colunas de categorias de rastreamento que vinculam cada fatura Xero à sua origem Alga. Ao importar impostos do Xero, estas categorias de rastreamento são usadas para corresponder faturas automaticamente — sem reconciliação manual.",
|
||
"trackingTitle": "Categorias de rastreamento para reconciliação"
|
||
}
|
||
}
|
||
},
|
||
"live": {
|
||
"defaultOrganisation": "Organização Xero padrão"
|
||
},
|
||
"settings": {
|
||
"actions": {
|
||
"connect": "Conectar Xero",
|
||
"disconnect": "Desconectar Xero",
|
||
"disconnecting": "Desconectando…",
|
||
"reconnect": "Reconectar Xero",
|
||
"refresh": "Atualizar",
|
||
"saveCredentials": "Salvar credenciais Xero",
|
||
"saving": "Salvando…"
|
||
},
|
||
"badges": {
|
||
"connectionExpired": "Conexão expirada",
|
||
"credentialsReady": "Credenciais prontas",
|
||
"credentialsRequired": "Credenciais obrigatórias",
|
||
"defaultConnected": "Organização padrão conectada",
|
||
"noOrganisation": "Nenhuma organização conectada"
|
||
},
|
||
"callback": {
|
||
"accessDenied": "O acesso ao Xero foi negado antes da conclusão da conexão.",
|
||
"configMissing": "Não foi possível iniciar o Xero OAuth porque o client ID e o client secret do tenant não estavam totalmente configurados.",
|
||
"connectionsUnmapped": "O Xero retornou organizações, mas nenhuma incluiu os identificadores necessários para salvar uma conexão.",
|
||
"generic": "O Xero retornou um erro OAuth: {{code}}",
|
||
"invalidState": "O estado OAuth do Xero era inválido ou expirou. Inicie o fluxo de conexão novamente.",
|
||
"missingParams": "Parâmetros obrigatórios estavam ausentes no callback do Xero. Inicie o fluxo de conexão novamente.",
|
||
"noConnections": "O Xero não retornou nenhuma organização para este login. Verifique seu aplicativo Xero e o acesso à organização e tente novamente.",
|
||
"oauthFailed": "O callback OAuth do Xero falhou. Tente se conectar novamente. Se o problema persistir, revise seu redirect URI e escopos."
|
||
},
|
||
"clientIdLabel": "Xero Client ID",
|
||
"clientIdPlaceholder": "Cole seu Xero Client ID de propriedade do tenant",
|
||
"clientSecretLabel": "Xero Client Secret",
|
||
"clientSecretPlaceholder": "Cole seu Xero Client Secret de propriedade do tenant",
|
||
"connectSuccess": "Xero conectado com sucesso. A primeira organização conectada agora é o contexto padrão do Xero ao vivo.",
|
||
"connection": {
|
||
"connectionId": "ID da conexão: {{id}}",
|
||
"defaultOrganisation": "Organização padrão",
|
||
"description": "Inicie o OAuth somente após configurar o aplicativo Xero de propriedade do tenant. Desconectar remove os tokens de acesso Xero armazenados, mas mantém as credenciais do aplicativo de propriedade do tenant.",
|
||
"notConnected": "Nenhuma organização Xero ao vivo está conectada ainda. Salve as credenciais e clique em Conectar Xero.",
|
||
"title": "Conexão Xero ao vivo",
|
||
"unknown": "desconhecido"
|
||
},
|
||
"credentialsSaved": "Credenciais Xero salvas. Agora você pode iniciar o fluxo OAuth do Xero ao vivo.",
|
||
"csvAvailableMiddle": "nesta mesma seção Contabilidade e gerencie exportações em",
|
||
"csvAvailablePrefix": "Se você prefere um fluxo manual, continue usando",
|
||
"csvAvailableTitle": "Xero CSV permanece disponível",
|
||
"description": "Configure credenciais OAuth Xero de propriedade do tenant, conecte sua organização padrão e mantenha o Xero ao vivo ao lado do fluxo manual Xero CSV.",
|
||
"disconnectSuccess": "A conexão Xero armazenada foi removida. As credenciais do aplicativo Xero de propriedade do tenant foram preservadas.",
|
||
"errors": {
|
||
"disconnect": "Falha ao desconectar o Xero.",
|
||
"load": "Falha ao carregar as configurações do Xero.",
|
||
"saveCredentials": "Falha ao salvar as credenciais do Xero."
|
||
},
|
||
"howItWorksDescription": "Salve aqui um Xero Client ID e Client Secret de propriedade do tenant, conclua o fluxo OAuth do Xero, e o Alga PSA usará a primeira organização Xero conectada como contexto padrão ao vivo.",
|
||
"howItWorksTitle": "Como o Xero ao vivo funciona nesta versão",
|
||
"loading": "Carregando configurações do Xero…",
|
||
"mapping": {
|
||
"alert": "Itens, contas de receita, alíquotas fiscais e categorias de rastreamento do Xero são carregados da organização conectada padrão para que exportações ao vivo possam continuar usando a primeira conexão Xero armazenada na v1.",
|
||
"descriptionPrefix": "Configure os mapeamentos Xero ao vivo para a organização conectada padrão. Estes mapeamentos estão limitados a",
|
||
"placeholderAlert": "O gerenciador de mapeamentos fica disponível após a primeira organização Xero ser conectada e definida como contexto padrão do Xero ao vivo.",
|
||
"placeholderDescription": "Conecte uma organização Xero ao vivo antes de configurar os mapeamentos de itens e impostos Xero ao vivo.",
|
||
"title": "Mapeamento e configuração do Xero ao vivo"
|
||
},
|
||
"noClientId": "Nenhum client ID está armazenado para este tenant ainda.",
|
||
"noClientSecret": "Nenhum client secret está armazenado para este tenant ainda.",
|
||
"redirectUri": "Redirect URI",
|
||
"requiredScopes": "Escopos obrigatórios",
|
||
"storedClientId": "Client ID armazenado: {{value}}",
|
||
"storedClientSecret": "Client secret armazenado: {{value}}",
|
||
"tenantOauthDescription": "Cole as credenciais do aplicativo Xero registradas para este tenant. Valores de secret nunca são retornados ao navegador após serem salvos.",
|
||
"tenantOauthTitle": "Aplicativo OAuth de propriedade do tenant",
|
||
"title": "Xero",
|
||
"xeroCsv": "Xero CSV"
|
||
}
|
||
},
|
||
"stripe": {
|
||
"title": "Pagamentos Stripe",
|
||
"description": "Aceite pagamentos com cartão de crédito para suas faturas",
|
||
"connected": {
|
||
"title": "Stripe conectado",
|
||
"publishableKey": "Publishable key: {{key}}..."
|
||
},
|
||
"empty": {
|
||
"description": "Conecte sua conta Stripe para aceitar pagamentos online de faturas"
|
||
},
|
||
"actions": {
|
||
"testConnection": "Testar conexão",
|
||
"disconnect": "Desconectar",
|
||
"connect": "Conectar Stripe",
|
||
"connecting": "Conectando...",
|
||
"cancel": "Cancelar"
|
||
},
|
||
"form": {
|
||
"secretKeyLabel": "Secret Key",
|
||
"secretKeyPlaceholder": "sk_live_... ou sk_test_...",
|
||
"publishableKeyLabel": "Publishable Key",
|
||
"publishableKeyPlaceholder": "pk_live_... ou pk_test_...",
|
||
"findKeyPrefix": "Encontre isto em seu",
|
||
"dashboardLink": "Stripe Dashboard → API Keys"
|
||
},
|
||
"webhook": {
|
||
"heading": "Configuração de webhook",
|
||
"configuredAutomatically": "Webhooks configurados automaticamente",
|
||
"receiveNotifications": "O Alga PSA receberá notificações de pagamento para:",
|
||
"failedTitle": "Falha na configuração do webhook",
|
||
"failedBody": "A configuração automática do webhook falhou. Clique em tentar novamente para tentar a configuração outra vez.",
|
||
"configuring": "Configurando...",
|
||
"retry": "Tentar configurar novamente"
|
||
},
|
||
"disconnectDialog": {
|
||
"title": "Desconectar Stripe",
|
||
"message": "Tem certeza de que deseja desconectar o Stripe? Os links de pagamento deixarão de funcionar.",
|
||
"confirm": "Desconectar",
|
||
"cancel": "Cancelar"
|
||
},
|
||
"toasts": {
|
||
"connectedWithWebhook": "Stripe conectado e webhooks configurados automaticamente!",
|
||
"connectedWebhookFailed": "Stripe conectado! Observação: a configuração automática do webhook falhou — pode ser necessário configurar webhooks manualmente no Stripe Dashboard.",
|
||
"disconnected": "Stripe desconectado",
|
||
"connectionSuccess": "Conexão bem-sucedida!",
|
||
"webhookConfigured": "Webhook configurado com sucesso!"
|
||
},
|
||
"errors": {
|
||
"loadConfig": "Falha ao carregar a configuração do Stripe",
|
||
"connect": "Falha ao conectar o Stripe",
|
||
"disconnect": "Falha ao desconectar o Stripe",
|
||
"testConnection": "Falha no teste de conexão",
|
||
"configureWebhook": "Falha ao configurar o webhook",
|
||
"bothKeysRequired": "Insira a secret key e a publishable key",
|
||
"secretKeyFormat": "A secret key deve começar com sk_",
|
||
"publishableKeyFormat": "A publishable key deve começar com pk_"
|
||
}
|
||
}
|
||
},
|
||
"ninjaone": {
|
||
"selectCompany": "Selecionar empresa"
|
||
}
|
||
}
|