Hermes 284313f908
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
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

576 lines
22 KiB
JSON

{
"common": {
"actions": {
"save": "Save Settings",
"saving": "Saving...",
"reset": "Reset",
"refresh": "Refresh",
"close": "Close",
"edit": "Edit",
"delete": "Delete",
"deleting": "Deleting…",
"verify": "Verify"
},
"states": {
"active": "Active",
"inactive": "Inactive",
"loading": "Loading..."
}
},
"telemetry": {
"loading": {
"title": "Organization Telemetry Settings",
"description": "Loading..."
},
"empty": {
"title": "Organization Telemetry Settings",
"description": "Error loading settings",
"body": "Failed to load telemetry settings"
},
"page": {
"title": "Organization Telemetry & Analytics",
"description": "Configure telemetry settings for your entire organization. Telemetry is enabled by default to improve the platform, but users can opt-out individually unless you disable this option."
},
"toggles": {
"enableTelemetry": {
"title": "Enable Telemetry",
"description": "Allow collection of anonymous usage data to improve the platform (enabled by default)"
},
"allowUserOptOut": {
"title": "Allow User Opt-Out",
"description": "Allow individual users to opt-out of telemetry collection"
}
},
"alerts": {
"enabled": "✓ Telemetry enabled. All categories are enabled by default for new users, but they can opt-out individually if desired.",
"centralizedControl": "Centralized control: Users cannot opt-out individually. Ensure compliance with local privacy regulations."
},
"anonymization": {
"title": "Data Anonymization Level",
"description": "Choose how much data to anonymize before collection",
"options": {
"none": {
"title": "No Anonymization",
"description": "Collect data as-is (not recommended)"
},
"partial": {
"title": "Partial Anonymization",
"description": "Remove PII, keep correlation IDs"
},
"full": {
"title": "Full Anonymization",
"description": "Maximum privacy, minimal correlation"
}
}
},
"compliance": {
"title": "Compliance Notes"
},
"privacy": {
"collectTitle": "What We Collect",
"collectItems": {
"errors": "• Error information (no sensitive data)",
"performance": "• Performance metrics (page load times, API response times)",
"usage": "• Feature usage patterns (which features are used)",
"system": "• System metrics (for infrastructure optimization)"
},
"excludeTitle": "What We DON'T Collect",
"excludeItems": {
"personalInfo": "• Personal information (names, emails, addresses)",
"clientData": "• Client data or business information",
"passwords": "• Passwords or authentication tokens",
"files": "• File contents or documents"
}
},
"footer": {
"lastUpdated": "Last updated: {{value}}",
"updatedBy": " by {{user}}"
},
"errors": {
"loadTenantTelemetrySettings": "Failed to load tenant telemetry settings",
"loadSettings": "Failed to load settings",
"saveTelemetrySettings": "Failed to save telemetry settings",
"saveSettings": "Failed to save settings"
}
},
"email": {
"loading": "Loading email settings...",
"error": "Error: {{error}}",
"tabs": {
"inbound": "Inbound Email",
"outbound": "Outbound Email"
},
"descriptions": {
"outbound": "Configure SMTP or API settings for sending emails from your application",
"inbound": "Configure email providers to receive and process emails as tickets"
},
"providerConfig": {
"title": "Email Provider Configuration",
"providerLabel": "Email Provider",
"options": {
"smtp": "SMTP (Traditional Email Server)",
"resend": "Resend (Modern API Service)"
},
"placeholder": "Select email provider",
"descriptions": {
"smtp": "Configure traditional SMTP email server settings",
"resend": "Configure Resend API for modern email delivery"
},
"status": {
"provider": "{{provider}} Provider"
}
},
"smtp": {
"host": {
"label": "SMTP Host",
"placeholder": "smtp.example.com"
},
"port": {
"label": "Port",
"placeholder": "587"
},
"username": {
"label": "Username",
"placeholder": "your-email@example.com"
},
"password": {
"label": "Password",
"placeholder": "Enter password"
},
"fromAddress": {
"label": "From Address",
"placeholder": "noreply@example.com"
}
},
"resend": {
"apiKey": {
"label": "Resend API Key",
"placeholder": "re_xxxxxxxxxxxxxxxxxx",
"helpPrefix": "Get your API key from"
},
"fromAddress": {
"label": "From Address",
"placeholder": "noreply@yourdomain.com",
"help": "Must be from a verified domain. Use the Domains tab to add custom domains."
}
},
"domains": {
"verified": "Verified",
"failed": "Failed",
"pending": "Pending",
"requiredDnsRecords": "Required DNS Records:"
},
"general": {
"title": "General Settings",
"trackingEnabled": "Enable Email Tracking",
"dailyLimit": "Daily Email Limit"
},
"errors": {
"loadEmailSettings": "Failed to load email settings",
"saveSettings": "Failed to save settings",
"addDomain": "Failed to add domain",
"verifyDomain": "Failed to verify domain"
}
},
"microsoft365": {
"title": {
"microsoft": "Microsoft 365 Diagnostics",
"default": "Diagnostics"
},
"description": "Runs a live Graph check (including create+delete subscription) to diagnose mailbox, folder, and permission issues.",
"note": {
"label": "Note:",
"body": "Diagnostics will create a temporary Microsoft Graph subscription and then delete it. If deletion fails, you may need to manually remove the subscription in Microsoft 365."
},
"labels": {
"provider": "Provider:",
"mailbox": "Mailbox:",
"overall": "Overall:",
"resource": "Resource: {{resource}}",
"recommendations": "Recommendations",
"error": "Error"
},
"actions": {
"copySupportBundle": "Copy Support Bundle",
"copied": "Copied"
},
"states": {
"running": "Running diagnostics...",
"diagnosticsFailed": "Diagnostics failed"
},
"statuses": {
"pass": "Pass",
"warn": "Warn",
"fail": "Fail",
"skip": "Skip"
}
},
"inboundDefaults": {
"loading": "Loading ticket defaults...",
"header": {
"title": "Inbound Ticket Defaults",
"description": "Configure default values for tickets created from email processing"
},
"actions": {
"addDefaults": "Add Defaults"
},
"form": {
"editTitle": "Edit Ticket Defaults",
"createTitle": "Create Ticket Defaults",
"description": "Configure the default values that will be applied to tickets created from email processing"
},
"empty": {
"title": "No ticket defaults configured",
"description": "Create your first configuration to define default values for email-generated tickets"
},
"badges": {
"active": "Active",
"inactive": "Inactive"
},
"fields": {
"board": "Board:",
"status": "Status:",
"priority": "Priority:",
"enteredBy": "Entered By:"
},
"fallbacks": {
"notSet": "Not set",
"system": "System"
},
"menu": {
"edit": "Edit",
"delete": "Delete",
"deleting": "Deleting…"
},
"help": {
"title": "How It Works",
"items": {
"providerReference": "• Each email provider can reference one ticket defaults configuration",
"requiredValues": "• When an email creates a ticket, these defaults provide required field values",
"systemCreator": "• System-generated tickets will show \"System\" as the creator when entered_by is null",
"scenarios": "• You can create different defaults for different email scenarios (support, billing, etc.)"
}
},
"errors": {
"load": "Failed to load ticket defaults",
"delete": "Failed to delete ticket defaults"
}
},
"policyManagement": {
"resourceSections": {
"tickets": "Tickets",
"documents": "Documentos",
"time": "Tempo",
"projects": "Projetos",
"assets": "Ativos",
"billing": "Faturamento"
},
"targetTypes": {
"role": "Função",
"team": "Equipe",
"user": "Usuário",
"apiKey": "Chave de API"
},
"templateSummaries": {
"own": "registros de propriedade do principal",
"assigned": "registros atribuídos ao principal",
"managed": "registros de propriedade de usuários gerenciados",
"ownOrAssigned": "registros de propriedade ou atribuídos ao principal",
"ownOrManaged": "registros de propriedade do principal ou de usuários gerenciados",
"sameClient": "registros no mesmo escopo de cliente",
"clientPortfolio": "registros do portfólio de clientes do principal",
"selectedClients": "registros em escopos de clientes selecionados",
"sameTeam": "registros de propriedade da mesma equipe",
"selectedBoards": "registros nos boards selecionados"
},
"constraintSummaries": {
"notSelfApprover": "bloqueia autoaprovação",
"clientVisibleOnly": "requer registros visíveis ao cliente",
"hideSensitiveFields": "oculta campos sensíveis"
},
"dates": {
"unknown": "Desconhecido"
},
"ruleSummary": {
"base": "Restringir {{action}} de {{resourceType}} a {{scope}}.",
"withConstraint": "Restringir {{action}} de {{resourceType}} a {{scope}}; {{constraint}}."
},
"upsell": {
"title": "Pacotes de autorização",
"description": "O gerenciamento avançado de pacotes de autorização está disponível no nível Premium. Faça upgrade para gerenciar pacotes de restrição reutilizáveis."
},
"hero": {
"badge": "Espaço de trabalho Premium",
"title": "Pacotes de autorização",
"subtitle": "Gerencie restrições de acesso Premium com revisões de rascunho, atribuições com escopo e simulação segura a partir de um único centro de controle.",
"newBundle": "Novo pacote",
"addStarters": "Adicionar pacotes iniciais",
"addingStarters": "Adicionando pacotes iniciais..."
},
"metrics": {
"activeBundles": {
"title": "Pacotes ativos",
"subtitle": "Pacotes de restrição reutilizáveis atualmente disponíveis para atribuição"
},
"activeAssignments": {
"title": "Atribuições ativas",
"subtitle": "Implantações ao vivo de função, equipe, usuário e chave de API"
},
"starterBundles": {
"title": "Pacotes iniciais",
"subtitle": "Predefinições prontas baseadas em relacionamento para adaptar"
},
"archivedBundles": {
"title": "Pacotes arquivados",
"subtitle": "Pacotes aposentados preservados para auditoria e reutilização"
}
},
"library": {
"eyebrow": "Biblioteca",
"title": "Biblioteca de pacotes de autorização",
"description": "Navegue pelo status dos pacotes, gerencie alterações de ciclo de vida e abra um espaço de trabalho focado em um pacote por vez.",
"searchPlaceholder": "Pesquisar pacotes por nome ou descrição",
"showArchived": "Mostrar arquivados",
"columns": {
"bundle": "Pacote",
"status": "Status",
"type": "Tipo",
"assignments": "Atribuições",
"updated": "Atualizado",
"actions": "Ações"
},
"statusLabels": {
"active": "ativo",
"archived": "arquivado"
},
"typeLabels": {
"system": "Sistema",
"custom": "Personalizado"
},
"badges": {
"starter": "Inicial"
},
"descriptions": {
"systemStarter": "Pacote inicial do sistema.",
"customBundle": "Pacote de restrição personalizado para atribuições de função, equipe, usuário ou chave de API."
},
"effectiveSummary": "Resumo efetivo: pacote {{status}} com {{count}} atribuição(ões) ativa(s).",
"empty": "Nenhum pacote de autorização encontrado.",
"loading": "Carregando pacotes de autorização...",
"actions": {
"openEditor": "Abrir editor",
"assignments": "Atribuições",
"simulator": "Simulador",
"clone": "Clonar",
"archive": "Arquivar",
"openMenu": "Abrir menu"
}
},
"workspace": {
"backToLibrary": "Voltar à biblioteca",
"updatedWithAssignments": "Atualizado em {{date}} · {{count}} atribuição(ões) ativa(s)",
"eyebrow": "Espaço de trabalho do pacote",
"fallbackBundleName": "Pacote selecionado",
"fallbackDescription": "Use o editor de rascunho, o gerenciador de atribuições e o simulador para aplicar alterações de restrição com segurança.",
"tabs": {
"editor": "Editor de rascunho",
"assignments": "Atribuições",
"simulator": "Simulador"
}
},
"editor": {
"header": "Editor de pacote",
"editingDraftPrefix": "Editando revisão de rascunho para ",
"editingDraftSuffix": ". As alterações permanecem em rascunho até serem publicadas.",
"viewingPublishedPrefix": "Visualizando a revisão publicada para ",
"viewingPublishedSuffix": ". Nenhuma revisão de rascunho ativa existe no momento.",
"publishDraft": "Publicar rascunho",
"publishing": "Publicando...",
"publishedBadge": "Publicado",
"loading": "Carregando editor de rascunho...",
"revisionSummary": "Resumo da revisão: {{summary}}",
"ruleCount": "{{count}} regra(s) {{revisionType}}",
"revisionType": {
"draft": "rascunho",
"published": "publicada"
},
"emptyRules": "Ainda não há regras {{revisionType}} para {{resource}}.",
"ruleForm": {
"addDraftTitle": "Adicionar regra de rascunho",
"editDraftTitle": "Editar regra de rascunho",
"createDraftTitle": "Criar regra de rascunho",
"editPublishedTitle": "Editar regra publicada como rascunho",
"helperEditPublished": "Salvar criará uma nova revisão de rascunho com suas alterações a esta regra publicada.",
"helperCreateDraft": "Salvar criará uma nova revisão de rascunho para este pacote.",
"reset": "Redefinir",
"action": "Ação",
"template": "Modelo",
"constraint": "Restrição (opcional)",
"constraintNone": "nenhuma",
"saveDraftRule": "Salvar regra de rascunho",
"addDraftRule": "Adicionar regra de rascunho",
"saveAsDraftChange": "Salvar como alteração de rascunho",
"createDraftRule": "Criar regra de rascunho"
},
"rule": {
"edit": "Editar",
"remove": "Remover",
"removeAsDraft": "Remover como alteração de rascunho",
"removeDraftTooltip": "Remover esta regra de rascunho.",
"removePublishedTooltip": "Criar uma nova revisão de rascunho que remove esta regra publicada.",
"selectedClientScopes": "Escopos de cliente selecionados",
"selectedBoardScopes": "Escopos de board selecionados",
"redactedFields": "Campos ocultados"
},
"scopes": {
"clientTitle": "Escopos de cliente selecionados",
"boardTitle": "Escopos de board selecionados",
"selectClient": "Selecionar cliente",
"selectBoard": "Selecionar board",
"addClientScope": "Adicionar escopo de cliente",
"addBoardScope": "Adicionar escopo de board",
"noClientScopes": "Nenhum escopo de cliente adicionado ainda.",
"noBoardScopes": "Nenhum escopo de board adicionado ainda.",
"remove": "Remover"
},
"redaction": {
"label": "Campos ocultados",
"placeholder": "internal_cost, margin",
"helper": "Nomes de campos separados por vírgulas a serem ocultados quando esta regra permitir acesso."
}
},
"assignments": {
"header": "Gerenciador de atribuições",
"description": "Visualize e gerencie alvos de função, equipe, usuário e chave de API atualmente afetados por este pacote.",
"loading": "Carregando atribuições...",
"addAssignment": "Adicionar atribuição",
"selectTargetPlaceholder": "Selecionar {{target}}",
"addButton": "Adicionar atribuição",
"adding": "Adicionando...",
"empty": "Ainda não há atribuições para este pacote.",
"groupEmpty": "Nenhuma atribuição de {{target}}.",
"statusActions": {
"disable": "Desabilitar",
"enable": "Habilitar",
"saving": "Salvando..."
},
"statusLabels": {
"active": "ativo",
"disabled": "desabilitado"
}
},
"simulator": {
"header": "Simulador de acesso",
"description": "Simule o comportamento do pacote em rascunho vs publicado contra um principal real e registro existente.",
"inputTitle": "Entrada da simulação",
"resource": "Recurso",
"action": "Ação",
"principal": "Usuário",
"record": "Registro",
"useSynthetic": "Usar cenário de registro sintético",
"syntheticOwnerPlaceholder": "ID do usuário proprietário (opcional)",
"syntheticClientPlaceholder": "ID do cliente (opcional)",
"syntheticBoardPlaceholder": "ID do board (opcional)",
"clientVisible": "Visível ao cliente",
"run": "Executar simulação",
"running": "Executando simulação...",
"resultTitle": "Resultado da simulação",
"draftRevision": "Revisão de rascunho",
"publishedRevision": "Revisão publicada",
"allowed": "Permitido",
"denied": "Negado",
"empty": "Execute uma simulação para comparar o comportamento do rascunho e da revisão publicada."
},
"createDialog": {
"title": "Criar pacote de autorização",
"cancel": "Cancelar",
"create": "Criar pacote",
"creating": "Criando...",
"nameLabel": "Nome",
"namePlaceholder": "Revisor Financeiro Oeste",
"descriptionLabel": "Descrição",
"descriptionPlaceholder": "Pacote de restrição reutilizável para uma equipe específica, grupo de clientes ou fluxo de trabalho."
},
"clone": {
"copySuffix": "{{name}} Cópia"
},
"errors": {
"loadBundles": "Falha ao carregar pacotes.",
"loadEditor": "Falha ao carregar o editor de pacote.",
"loadAssignments": "Falha ao carregar as atribuições do pacote.",
"cloneBundle": "Falha ao clonar o pacote.",
"archiveBundle": "Falha ao arquivar o pacote.",
"seedStarters": "Falha ao semear pacotes iniciais.",
"bundleNameRequired": "O nome do pacote é obrigatório.",
"createBundle": "Falha ao criar o pacote.",
"publishDraft": "Falha ao publicar o rascunho do pacote.",
"selectTemplate": "Selecione um modelo antes de salvar uma regra.",
"selectClientRequired": "Adicione pelo menos um cliente selecionado antes de salvar esta regra.",
"selectBoardRequired": "Adicione pelo menos um board selecionado antes de salvar esta regra.",
"redactedFieldRequired": "Insira pelo menos um campo oculto antes de salvar esta regra.",
"saveRule": "Falha ao salvar a regra de rascunho.",
"removeRule": "Falha ao remover a regra.",
"selectTarget": "Selecione um alvo antes de adicionar uma atribuição.",
"addAssignment": "Falha ao adicionar a atribuição.",
"updateAssignmentStatus": "Falha ao atualizar o status da atribuição.",
"selectPrincipal": "Selecione um principal antes de executar a simulação.",
"selectRecord": "Selecione um registro antes de executar a simulação.",
"runSimulation": "Falha ao executar a simulação.",
"simulator": {
"unsupportedAction": "Atualmente, o simulador oferece suporte apenas a verificações de Leitura e Aprovação. Escolha uma dessas ações e tente novamente.",
"unsupportedResource": "Esse tipo de registro ainda não está disponível no simulador. Escolha um tipo de registro compatível e tente novamente.",
"clientTicketNotSupported": "As verificações de chamados para usuários cliente ainda não estão disponíveis no simulador porque a visibilidade do quadro de chamados não está incluída. Tente com um usuário interno ou verifique o acesso de chamados do cliente no aplicativo."
}
}
},
"emailLogs": {
"page": {
"title": "Registos de Email",
"description": "Reveja a atividade de envio de emails e resolva problemas de entrega de notificações."
},
"metrics": {
"totalSent": "Total enviado",
"failedRate": "Taxa de falhas",
"today": "Hoje"
},
"filters": {
"startDate": "Data de início",
"endDate": "Data de fim",
"status": "Estado",
"recipient": "Destinatário",
"recipientPlaceholder": "Pesquisar email…",
"ticket": "Ticket",
"ticketPlaceholder": "Ticket #…",
"statusOptions": {
"all": "Todos",
"sent": "Enviado",
"failed": "Falhou"
}
},
"table": {
"time": "Hora",
"ticket": "Ticket",
"recipient": "Destinatário",
"subject": "Assunto",
"status": "Estado"
},
"loading": "A carregar…",
"results_one": "{{count}} resultado",
"results_other": "{{count}} resultados",
"refresh": "Atualizar",
"close": "Fechar",
"detail": {
"title": "Detalhes do Registo de Email",
"noSubject": "Sem assunto",
"sentAt": "Enviado em",
"status": "Estado",
"provider": "Fornecedor",
"messageId": "ID da Mensagem",
"to": "Para",
"from": "De",
"error": "Erro",
"metadata": "Metadados"
}
}
}