mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
508 lines
28 KiB
TypeScript
508 lines
28 KiB
TypeScript
import type { TranslationMap } from '../types';
|
||
|
||
// Portuguese (Português) chunk 3/5. Translated from chunks/en-3.ts.
|
||
const pt3: TranslationMap = {
|
||
'insights.other': 'Outros',
|
||
'insights.title': 'Insights',
|
||
'insights.empty': 'Nenhum insight ainda. Os insights são gerados conforme sua memória cresce.',
|
||
'insights.description': 'Baseado em {count} relações no seu grafo de memória.',
|
||
'insights.items': 'itens',
|
||
'insights.more': 'mais',
|
||
'calls.joiningCall': 'Entrando na chamada',
|
||
'calls.meetWindowOpening': 'A janela do Meet está abrindo...',
|
||
'calls.failedToStart': 'Falha ao iniciar chamada no Meet',
|
||
'calls.couldNotStart': 'Não foi possível iniciar a chamada',
|
||
'calls.failedToClose': 'Falha ao encerrar a chamada',
|
||
'calls.couldNotClose': 'Não foi possível encerrar a chamada',
|
||
'calls.joinMeet': 'Entrar em uma chamada do Google Meet',
|
||
'calls.joinMeetDescription': 'Insira um link do Google Meet para entrar.',
|
||
'calls.meetLink': 'Link do Meet',
|
||
'calls.displayName': 'Nome de Exibição',
|
||
'calls.openingMeet': 'Abrindo Meet...',
|
||
'calls.joinCall': 'Entrar na Chamada',
|
||
'calls.activeCalls': 'Chamadas Ativas',
|
||
'calls.leave': 'Sair',
|
||
'workspace.wipeConfirm':
|
||
'Tem certeza de que deseja apagar toda a memória? Isso não pode ser desfeito.',
|
||
'workspace.resetTreeConfirm': 'Tem certeza de que deseja reconstruir a árvore de memória?',
|
||
'workspace.wipeTitle': 'Apagar Memória',
|
||
'workspace.resetting': 'Redefinindo...',
|
||
'workspace.resetMemory': 'Redefinir Memória',
|
||
'workspace.resetTreeTitle': 'Reconstruir Árvore de Memória',
|
||
'workspace.rebuilding': 'Reconstruindo...',
|
||
'workspace.resetMemoryTree': 'Redefinir Árvore de Memória',
|
||
'workspace.building': 'Construindo...',
|
||
'workspace.buildSummaryTrees': 'Construir Árvores de Resumo',
|
||
'workspace.viewVault': 'Ver Cofre',
|
||
'workspace.openingVaultTitle': 'Abrindo o cofre no Obsidian',
|
||
'workspace.openingVaultMessage':
|
||
"If Obsidian doesn't open, install it from obsidian.md or use Reveal Folder. Vault path:",
|
||
'workspace.openVaultFailedTitle': "Couldn't open vault in Obsidian",
|
||
'workspace.openVaultFailedMessage':
|
||
'Use Reveal Folder para abrir o diretório do vault diretamente. Caminho do cofre:',
|
||
'workspace.revealVaultFailed': "Couldn't reveal vault folder",
|
||
'workspace.revealFolder': 'Revelar pasta',
|
||
'workspace.checkingVault': 'Checking…',
|
||
'workspace.vaultNotRegisteredHelp':
|
||
'Obsidian only opens folders you\'ve added as a vault. In Obsidian, choose "Open folder as vault" and pick the folder below — you only need to do this once. Then click View Vault again.',
|
||
'workspace.obsidianNotFoundHelp':
|
||
"We couldn't find Obsidian on this device. Install it, or — if it's installed somewhere non-standard — set its config folder under Advanced.",
|
||
'workspace.openAnyway': 'Open in Obsidian anyway',
|
||
'workspace.installObsidian': 'Install Obsidian',
|
||
'workspace.obsidianAdvanced': 'Obsidian installed elsewhere?',
|
||
'workspace.obsidianConfigDirLabel': 'Obsidian config folder',
|
||
'workspace.obsidianConfigDirHint':
|
||
'Path to the folder containing obsidian.json (e.g. ~/.config/obsidian). Leave blank to auto-detect.',
|
||
'workspace.obsidianConfigDirPlaceholder': '~/.config/obsidian',
|
||
'workspace.graphLoadFailed': 'Falha ao carregar grafo de memória',
|
||
'workspace.loadingGraph': 'Carregando grafo de memória...',
|
||
'workspace.graphViewMode': 'Modo de visualização do grafo de memória',
|
||
'workspace.trees': 'Árvores',
|
||
'workspace.contacts': 'Contatos',
|
||
'graph.noContactMentions': 'Nenhuma menção de contato',
|
||
'graph.noMemory': 'Sem memória',
|
||
'graph.source': 'Fonte',
|
||
'graph.topic': 'Tópico',
|
||
'graph.global': 'Global',
|
||
'graph.document': 'Documento',
|
||
'graph.contact': 'Contato',
|
||
'graph.nodes': 'nós',
|
||
'graph.parentChild': 'pai-filho',
|
||
'graph.documentContact': 'documento-contato',
|
||
'graph.link': 'link',
|
||
'graph.links': 'links',
|
||
'graph.children': 'filhos',
|
||
'graph.clickToOpenObsidian': 'Clique para abrir no Obsidian',
|
||
'graph.person': 'Pessoa',
|
||
'modal.dontShowAgain': 'Não mostrar sugestões semelhantes',
|
||
'reflections.loading': 'Carregando reflexões...',
|
||
'reflections.empty': 'Nenhuma reflexão ainda',
|
||
'reflections.title': 'Reflexões',
|
||
'reflections.proposedAction': 'Ação Proposta',
|
||
'reflections.act': 'Agir',
|
||
'reflections.dismiss': 'Dispensar',
|
||
'whatsapp.chatsSynced': 'chats sincronizados',
|
||
'whatsapp.chatSynced': 'chat sincronizado',
|
||
'sync.active': 'Ativo',
|
||
'sync.recent': 'Recente',
|
||
'sync.idle': 'Inativo',
|
||
'sync.memorySources': 'Fontes de Memória',
|
||
'sync.noConnectedSources': 'Nenhuma fonte conectada',
|
||
'sync.chunks': 'blocos',
|
||
'sync.lastChunk': 'Último bloco:',
|
||
'sync.pending': 'pendente',
|
||
'sync.processed': 'processado',
|
||
'sync.syncing': 'Sincronizando…',
|
||
'sync.sync': 'Sincronizar',
|
||
'sync.failedToLoad': 'Falha ao carregar status de sincronização',
|
||
'sync.noContent':
|
||
'Nenhum conteúdo foi sincronizado na memória ainda. Conecte uma integração para começar.',
|
||
'memorySources.title': 'Memory Sources',
|
||
'memorySources.empty': 'No memory sources yet. Add one to start feeding memory.',
|
||
'memorySources.loadingConnections': 'Loading connections…',
|
||
'memorySources.noConnections':
|
||
'No active Composio connections found. Connect an integration first.',
|
||
'memorySources.pickConnection': 'Pick a connection',
|
||
'memorySources.selectConnection': '— Select a connection —',
|
||
'memorySources.composioListFailed': 'Failed to load Composio connections.',
|
||
'memorySources.browse': 'Browse…',
|
||
'memorySources.folderPathPlaceholder': '/Users/you/notes',
|
||
'memorySources.globPatternPlaceholder': '**/*.md',
|
||
'memorySources.repoUrlPlaceholder': 'https://github.com/org/repo',
|
||
'memorySources.branchPlaceholder': 'main',
|
||
'memorySources.feedUrlPlaceholder': 'https://example.com/feed.xml',
|
||
'memorySources.pageUrlPlaceholder': 'https://example.com/article',
|
||
'memorySources.cssSelectorPlaceholder': 'article',
|
||
'memorySources.searchQueryPlaceholder': 'from:user AI safety',
|
||
'memorySources.kind.composio': 'Integration',
|
||
'memorySources.kind.folder': 'Local Folder',
|
||
'memorySources.kind.github_repo': 'GitHub Repo',
|
||
'memorySources.kind.twitter_query': 'Twitter Search',
|
||
'memorySources.kind.rss_feed': 'RSS Feed',
|
||
'memorySources.kind.web_page': 'Web Page',
|
||
'memorySources.sync.successTitle': 'Syncing',
|
||
'memorySources.sync.successMessage': 'Progress will appear shortly.',
|
||
'memorySources.sync.failedTitle': 'Sync failed:',
|
||
'time.justNow': 'just now',
|
||
'time.secondsAgoSuffix': 's ago',
|
||
'time.minutesAgoSuffix': 'm ago',
|
||
'time.hoursAgoSuffix': 'h ago',
|
||
'time.daysAgoSuffix': 'd ago',
|
||
'memorySources.customSources': 'Custom Sources',
|
||
'memorySources.addSource': 'Add Source',
|
||
'memorySources.noCustomSources':
|
||
'No custom sources yet. Add a folder, GitHub repo, RSS feed, or web page to start.',
|
||
'memorySources.pickKind': 'What kind of source do you want to add?',
|
||
'memorySources.backToKinds': 'Back to source types',
|
||
'memorySources.label': 'Label',
|
||
'memorySources.labelPlaceholder': 'My research notes',
|
||
'memorySources.add': 'Add',
|
||
'memorySources.adding': 'Adding…',
|
||
'memorySources.added': 'Source added',
|
||
'memorySources.removed': 'Source removed',
|
||
'memorySources.remove': 'Remove',
|
||
'memorySources.enable': 'Enable',
|
||
'memorySources.disable': 'Disable',
|
||
'memorySources.toggleFailed': 'Toggle failed',
|
||
'memorySources.removeFailed': 'Remove failed',
|
||
'memorySources.folderPath': 'Folder path',
|
||
'memorySources.globPattern': 'Glob pattern',
|
||
'memorySources.repoUrl': 'Repository URL',
|
||
'memorySources.branch': 'Branch',
|
||
'memorySources.feedUrl': 'Feed URL',
|
||
'memorySources.pageUrl': 'Page URL',
|
||
'memorySources.cssSelector': 'CSS selector (optional)',
|
||
'memorySources.searchQuery': 'Search query',
|
||
'backend.aiBackend': 'Backend de IA',
|
||
'backend.cloud': 'Nuvem',
|
||
'backend.recommended': 'Recomendado',
|
||
'backend.cloudDescription':
|
||
'Modelos rápidos e poderosos hospedados em nossos servidores. Pronto para usar imediatamente.',
|
||
'backend.privacyNote': 'Nenhum dado pessoal, mensagem ou chave é enviado aos nossos servidores.',
|
||
'backend.local': 'Local',
|
||
'backend.advanced': 'Avançado',
|
||
'backend.localDescription':
|
||
'Rode modelos na sua própria máquina usando Ollama. Total privacidade, requer configuração.',
|
||
'backend.ramRecommended': '16GB+ de RAM recomendado',
|
||
'subconscious.tasks': 'tarefas',
|
||
'subconscious.ticks': 'ticks',
|
||
'subconscious.last': 'Último',
|
||
'subconscious.failed': 'falhou',
|
||
'subconscious.tickInterval': 'Intervalo de Tick',
|
||
'subconscious.runNow': 'Executar Agora',
|
||
'subconscious.providerUnavailableTitle': 'Subconsciente pausado',
|
||
'subconscious.providerSettings': 'Configurações de IA',
|
||
'subconscious.approvalNeeded': 'Aprovação Necessária',
|
||
'subconscious.requiresApproval': 'Requer aprovação',
|
||
'subconscious.fixInConnections': 'Corrigir em Conexões',
|
||
'subconscious.goAhead': 'Prosseguir',
|
||
'subconscious.activeTasks': 'Tarefas Ativas',
|
||
'subconscious.noActiveTasks': 'Nenhuma tarefa ativa',
|
||
'subconscious.default': 'Padrão',
|
||
'subconscious.addTaskPlaceholder': 'Adicionar uma nova tarefa...',
|
||
'subconscious.activityLog': 'Registro de Atividades',
|
||
'subconscious.noActivity': 'Nenhuma atividade ainda',
|
||
'subconscious.decision.nothingNew': 'Nada novo',
|
||
'subconscious.decision.completed': 'Concluído',
|
||
'subconscious.decision.evaluating': 'Avaliando',
|
||
'subconscious.decision.waitingApproval': 'Aguardando aprovação',
|
||
'subconscious.decision.failed': 'Falhou',
|
||
'subconscious.decision.cancelled': 'Cancelado',
|
||
'subconscious.decision.skipped': 'Pulado',
|
||
'actionable.complete': 'Concluir',
|
||
'actionable.dismiss': 'Dispensar',
|
||
'actionable.snooze': 'Adiar',
|
||
'actionable.new': 'Novo',
|
||
'stats.storage': 'Armazenamento',
|
||
'stats.files': 'arquivos',
|
||
'stats.documents': 'Documentos',
|
||
'stats.today': 'hoje',
|
||
'stats.namespaces': 'Namespaces',
|
||
'stats.relations': 'Relações',
|
||
'stats.firstMemory': 'Primeira Memória',
|
||
'stats.latest': 'Mais Recente',
|
||
'stats.sessions': 'Sessões',
|
||
'stats.tokens': 'tokens',
|
||
'bootCheck.invalidUrl': 'Por favor, insira uma URL de runtime.',
|
||
'bootCheck.urlMustStartWith': 'A URL precisa começar com http:// ou https://',
|
||
'bootCheck.validUrlRequired':
|
||
'Isso não parece uma URL válida (tente https://core.example.com/rpc)',
|
||
'bootCheck.tokenRequired': 'Vamos precisar de um token de autenticação para conectar.',
|
||
'bootCheck.chooseCoreMode': 'Selecionar um Runtime',
|
||
'bootCheck.connectToCore': 'Conectar ao Seu Runtime',
|
||
'bootCheck.desktopDescription':
|
||
'O OpenHuman precisa de um runtime para pensar. Escolha onde ele deve ficar.',
|
||
'bootCheck.webDescription':
|
||
'Na web, o OpenHuman conecta-se a um runtime que você controla. Insira o URL e o token de autenticação abaixo, ou baixe o app desktop para rodar um na sua máquina.',
|
||
'bootCheck.preferDesktop': 'Prefere manter tudo no seu próprio dispositivo?',
|
||
'bootCheck.downloadDesktop': 'Baixar o App Desktop',
|
||
'bootCheck.localRecommended': 'Rodar Localmente (Recomendado)',
|
||
'bootCheck.localDescription':
|
||
'Roda aqui no seu computador. Mais rápido, totalmente privado, sem nada para configurar.',
|
||
'bootCheck.cloudMode': 'Rodar na Nuvem (Complexo)',
|
||
'bootCheck.cloudDescription':
|
||
'Conecte a um runtime que você hospeda em outro lugar. Fica online 24×7 para que você não precise manter este dispositivo ligado.',
|
||
'bootCheck.coreRpcUrl': 'URL do Runtime',
|
||
'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
|
||
'bootCheck.authToken': 'Token de Autenticação',
|
||
'bootCheck.bearerTokenPlaceholder': 'O token bearer do seu runtime remoto',
|
||
'bootCheck.storedLocally': 'Mantido apenas neste dispositivo. Enviado como ',
|
||
'bootCheck.testing': 'Testando…',
|
||
'bootCheck.testConnection': 'Testar Conexão',
|
||
'bootCheck.connectedOk': 'Conectado. Tudo pronto.',
|
||
'bootCheck.authFailed': 'Esse token não funcionou. Verifique-o e tente novamente.',
|
||
'bootCheck.unreachablePrefix': 'Não foi possível alcançar:',
|
||
'bootCheck.checkingCore': 'Ativando seu runtime…',
|
||
'bootCheck.cannotReach': 'Não Consigo Alcançar o Runtime',
|
||
'bootCheck.cannotReachDesc':
|
||
'Não foi possível conectar ao seu runtime. Deseja tentar um diferente?',
|
||
'bootCheck.switchMode': 'Escolher um Runtime Diferente',
|
||
'bootCheck.quit': 'Sair',
|
||
'bootCheck.legacyDetected': 'Runtime de Segundo Plano Legado Detectado',
|
||
'bootCheck.legacyDescription':
|
||
'Um daemon OpenHuman instalado separadamente já está rodando neste dispositivo. Precisamos removê-lo antes que o runtime integrado possa assumir.',
|
||
'bootCheck.removing': 'Removendo…',
|
||
'bootCheck.removeContinue': 'Remover e Continuar',
|
||
'bootCheck.localNeedsRestart': 'O Runtime Local Precisa de uma Reinicialização',
|
||
'bootCheck.localNeedsRestartDesc':
|
||
'Seu runtime local está em uma versão diferente deste app. Uma reinicialização rápida vai sincronizá-los.',
|
||
'bootCheck.restarting': 'Reiniciando…',
|
||
'bootCheck.restartCore': 'Reiniciar Runtime',
|
||
'bootCheck.cloudNeedsUpdate': 'O Runtime na Nuvem Precisa de uma Atualização',
|
||
'bootCheck.cloudNeedsUpdateDesc':
|
||
'Seu runtime na nuvem está em uma versão diferente deste app. Execute o atualizador para sincronizá-los.',
|
||
'bootCheck.updating': 'Atualizando…',
|
||
'bootCheck.updateCloudCore': 'Atualizar Runtime na Nuvem',
|
||
'bootCheck.versionCheckFailed': 'Verificação de Versão do Runtime Falhou',
|
||
'bootCheck.versionCheckFailedDesc':
|
||
'Seu runtime está ativo, mas não está reportando sua versão. Pode estar desatualizado. Reinicie ou atualize-o para continuar.',
|
||
'bootCheck.working': 'Trabalhando…',
|
||
'bootCheck.restartUpdateCore': 'Reiniciar / Atualizar Runtime',
|
||
'bootCheck.unexpectedError': 'Erro Inesperado na Verificação de Inicialização',
|
||
'bootCheck.actionFailed': 'Algo deu errado. Por favor, tente novamente.',
|
||
'bootCheck.portConflictTitle': 'Não foi possível iniciar o motor do aplicativo',
|
||
'bootCheck.portConflictBody':
|
||
'Outro processo está usando a porta de rede que o OpenHuman precisa. Tentaremos corrigir isso automaticamente.',
|
||
'bootCheck.portConflictFixButton': 'Corrigir automaticamente',
|
||
'bootCheck.portConflictFixing': 'Corrigindo…',
|
||
'bootCheck.portConflictFixFailed':
|
||
'A correção automática não funcionou. Reinicie o computador e tente novamente.',
|
||
'notifications.justNow': 'agora mesmo',
|
||
'notifications.minAgo': '{n}min atrás',
|
||
'notifications.hrAgo': '{n}h atrás',
|
||
'notifications.dayAgo': '{n}d atrás',
|
||
'notifications.category.messages': 'Mensagens',
|
||
'notifications.category.agents': 'Agentes',
|
||
'notifications.category.skills': 'Habilidades',
|
||
'notifications.category.system': 'Sistema',
|
||
'notifications.category.meetings': 'Reuniões',
|
||
'notifications.category.reminders': 'Lembretes',
|
||
'notifications.category.important': 'Importante',
|
||
'about.update.status.checking': 'Verificando...',
|
||
'about.update.status.available': 'v{version} disponível',
|
||
'about.update.status.availableNoVersion': 'Atualização disponível',
|
||
'about.update.status.downloading': 'Baixando...',
|
||
'about.update.status.readyToInstall': 'v{version} pronta para instalar',
|
||
'about.update.status.readyToInstallNoVersion':
|
||
'Uma nova versão foi baixada e está pronta. Reinicie para aplicar.',
|
||
'about.update.status.installing': 'Instalando...',
|
||
'about.update.status.restarting': 'Reiniciando...',
|
||
'about.update.status.upToDate': 'Você está usando a versão mais recente.',
|
||
'about.update.status.error': 'Falha na verificação de atualização',
|
||
'about.update.status.default': 'Verificar atualizações',
|
||
'welcome.connectionFailed': 'Falha na conexão: {status} {statusText}',
|
||
'welcome.connectionFailedMsg': 'Falha na conexão: {message}',
|
||
'welcome.continueLocally': 'Continuar localmente',
|
||
'welcome.localSessionStarting': 'Iniciando sessão local...',
|
||
'welcome.localSessionDesc': 'Usa um perfil local offline e ignora TinyHumans OAuth.',
|
||
'chat.agentChatDesc': 'Abrir uma sessão de chat direto com o agente.',
|
||
'channels.activeRouteValue': '{channel} via {authMode}',
|
||
'privacy.dataKind.messages': 'Mensagens',
|
||
'privacy.dataKind.agents': 'Agentes',
|
||
'privacy.dataKind.skills': 'Habilidades',
|
||
'privacy.dataKind.system': 'Sistema',
|
||
'privacy.dataKind.meetings': 'Reuniões',
|
||
'privacy.dataKind.reminders': 'Lembretes',
|
||
'privacy.dataKind.important': 'Importante',
|
||
'onboarding.enableLocalAI': 'Ativar IA Local',
|
||
'onboarding.skills.status.available': 'Disponível',
|
||
'onboarding.skills.status.connected': 'Conectado',
|
||
'onboarding.skills.status.connecting': 'Conectando',
|
||
'onboarding.skills.status.error': 'Erro',
|
||
'onboarding.skills.status.unavailable': 'Indisponível',
|
||
'composio.statusUnavailable': 'Status indisponível',
|
||
'composio.envVarOverrides': 'está definida, ela substitui esta configuração.',
|
||
'memory.day.sun': 'Dom',
|
||
'memory.day.mon': 'Seg',
|
||
'memory.day.tue': 'Ter',
|
||
'memory.day.wed': 'Qua',
|
||
'memory.day.thu': 'Qui',
|
||
'memory.day.fri': 'Sex',
|
||
'memory.day.sat': 'Sáb',
|
||
'memory.ingesting': 'Ingerindo',
|
||
'memory.ingestionQueued': 'Na fila',
|
||
'memory.ingestingTitle': 'Ingerindo {title}',
|
||
'mic.noAudioCaptured': 'Nenhum áudio capturado',
|
||
'mic.noSpeechDetected': 'Nenhuma fala detectada',
|
||
'mic.lowConfidenceResult': 'Não foi possível entender o áudio com clareza — tente novamente',
|
||
'mic.failedToStopRecording': 'Falha ao parar a gravação: {message}',
|
||
'mic.transcriptionFailed': 'Falha na transcrição: {message}',
|
||
'reflections.kind.retrospective': 'Retrospectiva',
|
||
'reflections.kind.derivedFact': 'Fato Derivado',
|
||
'reflections.kind.moodInsight': 'Insight de Humor',
|
||
'reflections.kind.relationshipInsight': 'Insight de Relacionamento',
|
||
'graph.tooltip.summary': 'Resumo',
|
||
'graph.tooltip.contact': 'Contato',
|
||
'localModel.usage.never': 'Nunca',
|
||
'localModel.usage.mediumLoad': 'Carga média',
|
||
'localModel.usage.lowLoad': 'Carga baixa',
|
||
'localModel.usage.idleMode': 'Modo inativo',
|
||
'localModel.rebootstrapComplete': 'Re-bootstrap do modelo concluído.',
|
||
'localModel.modelsVerified': 'Modelos locais verificados.',
|
||
'accounts.addModal.allConnected': 'Todos conectados',
|
||
'accounts.addModal.title': 'Adicionar conta',
|
||
'accounts.respondQueue.empty': 'Vazio',
|
||
'accounts.respondQueue.hide': 'Ocultar fila de respostas',
|
||
'accounts.respondQueue.loadFailed': 'Falha ao carregar fila de respostas',
|
||
'accounts.respondQueue.loading': 'Carregando fila…',
|
||
'accounts.respondQueue.pending': 'Pendente',
|
||
'accounts.respondQueue.show': 'Mostrar fila de respostas',
|
||
'accounts.respondQueue.title': 'Fila de respostas',
|
||
'accounts.webviewHost.almostReady': 'Quase pronto...',
|
||
'accounts.webviewHost.loadTimeout': 'Tempo limite de carregamento do webview',
|
||
'accounts.webviewHost.loading': 'Carregando {providerName}...',
|
||
'accounts.webviewHost.loadingAccount': 'Carregando conta',
|
||
'accounts.webviewHost.restoringSession': 'Restaurando sessão...',
|
||
'accounts.webviewHost.retryLoading': 'Tentar carregar novamente',
|
||
'accounts.webviewHost.takingLonger': '{providerName} está demorando mais do que o esperado.',
|
||
'accounts.webviewHost.timeoutHint': 'Dica de timeout',
|
||
'app.connectionBadge.composio': 'Composio',
|
||
'app.connectionBadge.messaging': 'Mensagens',
|
||
'app.connectionIndicator.connected': 'Conectado ao OpenHuman AI 🚀',
|
||
'app.connectionIndicator.connecting': 'Conectando',
|
||
'app.connectionIndicator.coreOffline': 'Core offline',
|
||
'app.connectionIndicator.disconnected': 'Desconectado',
|
||
'app.connectionIndicator.offline': 'Offline',
|
||
'app.connectionIndicator.reconnecting': 'Reconectando…',
|
||
'app.errorFallback.componentStack': 'Pilha de componentes',
|
||
'app.errorFallback.downloadLatest': 'Baixar mais recente',
|
||
'app.errorFallback.heading': 'Título',
|
||
'app.errorFallback.hint': 'Dica',
|
||
'app.errorFallback.reloadApp': 'Recarregar app',
|
||
'app.errorFallback.subheading': 'Subtítulo',
|
||
'app.errorFallback.tryRecover': 'Tentar recuperar',
|
||
'app.localAiDownload.installing': 'Instalando...',
|
||
'app.localAiDownload.preparing': 'Preparando...',
|
||
'app.openhumanLink.accounts.continueWith': 'Continuar com login de {label}',
|
||
'app.openhumanLink.accounts.done': 'Concluído',
|
||
'app.openhumanLink.accounts.intro': 'Introdução',
|
||
'app.openhumanLink.accounts.webviewNote': 'Nota do webview',
|
||
'app.openhumanLink.billing.openDashboard': 'Abrir painel',
|
||
'app.openhumanLink.billing.stayOnTrial': 'Ficar no período de teste',
|
||
'app.openhumanLink.billing.trialCredit': 'Crédito de teste',
|
||
'app.openhumanLink.billing.trialDesc': 'Descrição do teste',
|
||
'app.openhumanLink.defaultBody':
|
||
'Ainda não disponível no popup. Abra a página completa de configurações quando precisar.',
|
||
'app.openhumanLink.discord.intro': 'Introdução',
|
||
'app.openhumanLink.discord.openInvite': 'Abrir convite',
|
||
'app.openhumanLink.discord.perk1': 'Benefício 1',
|
||
'app.openhumanLink.discord.perk2': 'Benefício 2',
|
||
'app.openhumanLink.discord.perk3': 'Benefício 3',
|
||
'app.openhumanLink.discord.perk4': 'Benefício 4',
|
||
'app.openhumanLink.done': 'Concluído',
|
||
'app.openhumanLink.loadingChannelSetup': 'Carregando configuração do canal',
|
||
'app.openhumanLink.maybeLater': 'Talvez depois',
|
||
'app.openhumanLink.notifications.asking': 'Solicitando ao SO…',
|
||
'app.openhumanLink.notifications.blocked': 'Bloqueado',
|
||
'app.openhumanLink.notifications.blockedStep1': 'Passo 1 bloqueado',
|
||
'app.openhumanLink.notifications.blockedStep2': 'Passo 2 bloqueado',
|
||
'app.openhumanLink.notifications.blockedStep3': 'Passo 3 bloqueado',
|
||
'app.openhumanLink.notifications.intro': 'Introdução',
|
||
'app.openhumanLink.notifications.promptHint': 'Dica de solicitação',
|
||
'app.openhumanLink.notifications.retry': 'Tentar notificação de teste novamente',
|
||
'app.openhumanLink.notifications.send': 'Enviar notificação de teste',
|
||
'app.openhumanLink.notifications.sendFailed': 'Não foi possível enviar: {error}',
|
||
'app.openhumanLink.notifications.sent':
|
||
'Notificação de teste enviada. Se você não a recebeu, vá em Configurações do Sistema → Notificações → OpenHuman, ative Permitir Notificações e defina o Estilo de Banner como Persistente.',
|
||
'app.openhumanLink.skipForNow': 'Pular por enquanto',
|
||
'app.openhumanLink.telegramUnavailable': 'Telegram indisponível',
|
||
'app.openhumanLink.title.accounts': 'Conecte seus apps',
|
||
'app.openhumanLink.title.billing': 'Cobrança e créditos',
|
||
'app.openhumanLink.title.discord': 'Entrar na comunidade',
|
||
'app.openhumanLink.title.messaging': 'Conectar um canal de chat',
|
||
'app.openhumanLink.title.notifications': 'Permitir notificações',
|
||
'app.persistRehydration.body': 'Corpo',
|
||
'app.persistRehydration.heading': 'Título',
|
||
'app.persistRehydration.resetCta': 'Redefinindo…',
|
||
'app.persistRehydration.resetting': 'Redefinindo…',
|
||
'app.routeLoading.initializing': 'Inicializando OpenHuman...',
|
||
'app.update.currentlyOn': '{version}',
|
||
'app.update.errorFallback': 'Algo deu errado durante a atualização.',
|
||
'app.update.header.default': 'Atualizar',
|
||
'app.update.header.error': 'Falha na atualização',
|
||
'app.update.header.installing': 'Instalando atualização',
|
||
'app.update.header.readyToInstall': 'Atualização pronta para instalar',
|
||
'app.update.header.restarting': 'Reiniciando…',
|
||
'app.update.later': 'Depois',
|
||
'app.update.newVersionReady': 'Uma nova versão está pronta para instalar.',
|
||
'app.update.progress.downloaded': '{amount} baixados',
|
||
'app.update.progress.installing': 'Instalando a nova versão…',
|
||
'app.update.progress.restarting': 'Relançando o app…',
|
||
'app.update.progress.working': '{percent}%',
|
||
'app.update.restartNote': 'Nota de reinicialização',
|
||
'app.update.restartNow': 'Reiniciar agora',
|
||
'app.update.versionReady': 'Versão {newVersion} está pronta para instalar.',
|
||
'channels.discord.accountLinked': 'Conta vinculada',
|
||
'channels.discord.connect': 'Conectar',
|
||
'channels.discord.linkTokenExpired': 'Token de vinculação expirado. Por favor, tente novamente.',
|
||
'channels.discord.linkTokenInstruction': '{token}',
|
||
'channels.discord.linkTokenLabel': 'Rótulo do token de vinculação',
|
||
'channels.discord.linkTokenOnce': 'Token de vinculação único',
|
||
'channels.discord.picker.allPermissionsOk':
|
||
'O bot tem todas as permissões necessárias neste canal.',
|
||
'channels.discord.picker.botNotInServers': 'Bot não está nos servidores',
|
||
'channels.discord.picker.category': 'Categoria',
|
||
'channels.discord.picker.channel': 'Canal',
|
||
'channels.discord.picker.checkingPermissions': 'Verificando permissões',
|
||
'channels.discord.picker.loadingChannels': 'Carregando canais...',
|
||
'channels.discord.picker.loadingServers': 'Carregando servidores...',
|
||
'channels.discord.picker.missingPermissions': 'Permissões faltando',
|
||
'channels.discord.picker.noChannels': 'Nenhum canal de texto encontrado',
|
||
'channels.discord.picker.noServers': 'Nenhum servidor encontrado',
|
||
'channels.discord.picker.selectChannel': 'Selecione um canal',
|
||
'channels.discord.picker.selectServer': 'Selecione um servidor',
|
||
'channels.discord.picker.server': 'Servidor',
|
||
'channels.discord.picker.serverChannelSelection': 'Seleção de Servidor e Canal',
|
||
'channels.discord.savedRestartRequired': 'Canal salvo. Reinicie o app para ativá-lo.',
|
||
'channels.telegram.connect': 'Conectar',
|
||
'channels.telegram.managedDmConnecting': 'DM gerenciado conectando',
|
||
'channels.telegram.managedDmTimeout': 'Timeout de DM gerenciado',
|
||
'channels.telegram.reconnect': 'Reconectar',
|
||
'channels.telegram.savedRestartRequired': 'Canal salvo. Reinicie o app para ativá-lo.',
|
||
'channels.web.alwaysAvailable': 'Sempre disponível',
|
||
'channels.discord.displayName': 'Discord',
|
||
'channels.discord.description': 'Envie e receba mensagens via Discord.',
|
||
'channels.discord.authMode.bot_token.description': 'Forneça seu próprio token de bot Discord.',
|
||
'channels.discord.authMode.oauth.description':
|
||
'Instale o bot OpenHuman em seu servidor Discord via OAuth.',
|
||
'channels.discord.authMode.managed_dm.description':
|
||
'Vincule sua conta pessoal Discord ao bot OpenHuman.',
|
||
'channels.discord.fields.bot_token.label': 'Token de bot',
|
||
'channels.discord.fields.bot_token.placeholder': 'Seu token de bot Discord',
|
||
'channels.discord.fields.guild_id.label': 'ID do servidor (guilda)',
|
||
'channels.discord.fields.guild_id.placeholder': 'Opcional: restringir a um servidor específico',
|
||
'channels.telegram.displayName': 'Telegram',
|
||
'channels.telegram.description': 'Enviar e receber mensagens via Telegram.',
|
||
'channels.telegram.authMode.managed_dm.description':
|
||
'Envie uma mensagem diretamente para o bot OpenHuman Telegram.',
|
||
'channels.telegram.authMode.bot_token.description':
|
||
'Forneça seu próprio token de bot Telegram de @BotFather.',
|
||
'channels.telegram.fields.bot_token.label': 'Token de bot',
|
||
'channels.telegram.fields.bot_token.placeholder': '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11',
|
||
'channels.telegram.fields.allowed_users.label': 'Usuários permitidos',
|
||
'channels.telegram.fields.allowed_users.placeholder':
|
||
'Separados por vírgula Telegram nomes de usuário',
|
||
'channels.web.displayName': 'Web',
|
||
'channels.web.description': 'Bate-papo por meio da interface da web integrada.',
|
||
'channels.web.authMode.managed_dm.description':
|
||
'Use o chat da web incorporado – não é necessária nenhuma configuração.',
|
||
'welcome.continueLocallyExperimental': 'Continuar localmente (experimental)',
|
||
'channels.yuanbao.connect': 'Connect',
|
||
'channels.yuanbao.connecting': 'Connecting…',
|
||
'channels.yuanbao.fieldRequired': '{field} is required',
|
||
'channels.yuanbao.reconnect': 'Reconnect',
|
||
'channels.yuanbao.savedRestartRequired': 'Channel saved. Restart the app to activate it.',
|
||
'channels.yuanbao.unexpectedStatus': 'Unexpected connection status: {status}',
|
||
'chat.approval.approve': 'Approve',
|
||
'chat.approval.alwaysAllow': 'Always allow',
|
||
'chat.approval.alwaysAllowHint': 'Stop asking for this tool — add it to your Always-allow list',
|
||
'chat.approval.deciding': 'Working…',
|
||
'chat.approval.deny': 'Deny',
|
||
'chat.approval.error': 'Could not record your decision — try again.',
|
||
'chat.approval.fallback': 'The agent wants to run an action that needs your approval.',
|
||
'chat.approval.title': 'Approval needed',
|
||
'chat.approval.tool': 'Tool:',
|
||
};
|
||
|
||
export default pt3;
|