* Pre-launch app for browser UI test on headless CI runners
XCUIApplication.launch() blocks ~60s then fails on headless WarpBuild
runners because foreground activation requires a GUI login session.
Apply the same pre-launch strategy used for the display resolution test:
- CI shell launches the app with env vars before running xcodebuild
- Test detects pre-launched app via manifest, uses activate() instead of
launch() to avoid killing and relaunching the app
- Falls back to clicking the window for focus via accessibility framework
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Revert "Pre-launch app for browser UI test on headless CI runners"
This reverts commit a540e2fd99aaa1395b91a8d50caa797cdd7551b8.
* feat: cmux.json for custom commands
* tests: add cmux json tests
* fix: pr review feedback: validation, translations, input handling, and palette improvements
- Fix Danish ("Overfladedef inition") and Norwegian ("rotmapp") translation typos
- Add empty-string check for baseCwd fallback in command palette handlers
- Coalesce \r\n into single Return keypress in sendInput
- Redact command text from timeout log to prevent secret leakage
- Add decode-time validation: reject hybrid/empty commands, ambiguous layout
nodes, wrong split children count, and empty pane surfaces
- Namespace custom command IDs with "cmux.config.command." prefix
- Forward command description to palette subtitle when available
- Update tests for new validation rules and ID prefix
* fix: address PR review feedback — per-window config isolation, blank validation, ancestor walk,
palette sanitization
* fix: fallback to current dir cmux.json watching if no any cmux.json found in full acesor walk
* ci: trigger CI for fork PR
* Add directory trust for cmux.json command confirmation
The confirm dialog now shows the actual command text and has an "Always
trust commands from this folder" checkbox. When checked, future confirm
commands from that directory skip the dialog.
Trust is scoped to the git repo root if the cmux.json is inside a repo,
so trusting once covers all subdirectories. Non-git directories are
trusted by exact path. Global config is always trusted.
Trusted directories are persisted in ~/Library/Application Support/cmux/
trusted-directories.json.
* Add trusted directories section to Settings
Shows all trusted directories with per-directory revoke buttons and a
Clear All option. Placed in a "Custom Commands" section between
Automation and Browser in Settings.
* Replace trusted directories list with editable textarea
One path per line, with a Save button that activates on changes.
Users can add, remove, or edit paths directly.
* Auto-save trusted directories on edit, remove Save button
Matches the behavior of other textarea settings (browser host
whitelist, external URL patterns) which auto-save via @AppStorage.
* Sanitize command text in confirm dialog against BiDi attacks
Strip zero-width and BiDi override characters from the command preview
so the dialog shows exactly what will be executed.
---------
Co-authored-by: austinpower1258 <austinwang115@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
662 lines
47 KiB
JSON
662 lines
47 KiB
JSON
{
|
||
"meta": {
|
||
"title": "cmux — O terminal feito para multitarefa",
|
||
"description": "Terminal nativo macOS baseado no Ghostty. Funciona com Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider e qualquer ferramenta CLI. Abas verticais, anéis de notificação, painéis divididos e uma API de socket.",
|
||
"ogDescription": "Terminal nativo macOS para agentes de código IA. Funciona com Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider e qualquer ferramenta CLI."
|
||
},
|
||
"common": {
|
||
"downloadForMac": "Baixar para Mac",
|
||
"viewOnGitHub": "Ver no GitHub",
|
||
"closeMenu": "Fechar menu",
|
||
"openMenu": "Abrir menu",
|
||
"toggleTheme": "Alternar tema",
|
||
"backToBlog": "Voltar ao blog",
|
||
"readTheDocs": "Ler a Documentação",
|
||
"viewChangelog": "Ver Changelog"
|
||
},
|
||
"nav": {
|
||
"docs": "Documentação",
|
||
"blog": "Blog",
|
||
"changelog": "Changelog",
|
||
"community": "Comunidade",
|
||
"github": "GitHub"
|
||
},
|
||
"footer": {
|
||
"product": "Produto",
|
||
"resources": "Recursos",
|
||
"legal": "Jurídico",
|
||
"social": "Social",
|
||
"blog": "Blog",
|
||
"community": "Comunidade",
|
||
"docs": "Documentação",
|
||
"changelog": "Changelog",
|
||
"privacy": "Privacidade",
|
||
"terms": "Termos",
|
||
"eula": "EULA",
|
||
"github": "GitHub",
|
||
"twitter": "X / Twitter",
|
||
"discord": "Discord",
|
||
"contact": "Contato",
|
||
"nightly": "Nightly",
|
||
"copyright": "© {year} Manaflow",
|
||
"language": "Idioma"
|
||
},
|
||
"home": {
|
||
"taglinePrefix": "O terminal feito para ",
|
||
"typingCodingAgents": "agentes de código",
|
||
"typingMultitasking": "multitarefa",
|
||
"subtitle": "App nativo para macOS construído sobre o Ghostty. Abas verticais, anéis de notificação quando agentes precisam de atenção, painéis divididos e uma API de socket para automação.",
|
||
"features": "Recursos",
|
||
"faq": "Perguntas Frequentes",
|
||
"communitySection": "Comunidade",
|
||
"feature": {
|
||
"verticalTabs": "Abas verticais",
|
||
"verticalTabsDesc": ": a barra lateral mostra branch git, diretório de trabalho, portas e texto de notificação",
|
||
"notificationRings": "Anéis de notificação",
|
||
"notificationRingsDesc": ": os painéis acendem quando agentes precisam de atenção",
|
||
"inAppBrowser": "Navegador integrado",
|
||
"inAppBrowserDesc": ": divida um navegador ao lado do seu terminal com uma API programável",
|
||
"splitPanes": "Painéis divididos",
|
||
"splitPanesDesc": ": divisões horizontais e verticais dentro de cada aba",
|
||
"scriptable": "Programável",
|
||
"scriptableDesc": ": CLI e API de socket para automação e scripts",
|
||
"gpuAccelerated": "Acelerado por GPU",
|
||
"gpuAcceleratedDesc": ": alimentado pelo libghostty para renderização suave",
|
||
"lightweight": "Leve",
|
||
"lightweightDesc": ": Swift + AppKit nativo, sem Electron",
|
||
"keyboardShortcuts": "Atalhos de teclado",
|
||
"keyboardShortcutsDesc": ": <link>atalhos abrangentes</link> para workspaces, divisões, navegador e mais"
|
||
},
|
||
"faqGhosttyQ": "Qual a relação do cmux com o Ghostty?",
|
||
"faqGhosttyA": "O cmux não é um fork do Ghostty. Ele usa o <link>libghostty</link> como biblioteca para renderização de terminal, da mesma forma que apps usam o WebKit para visualizações web. O Ghostty é um terminal independente; o cmux é um app diferente construído sobre seu motor de renderização.",
|
||
"faqPlatformQ": "Quais plataformas são suportadas?",
|
||
"faqPlatformA": "Apenas macOS, por enquanto. O cmux é um app nativo em Swift + AppKit.",
|
||
"faqAgentsQ": "Com quais agentes de código o cmux funciona?",
|
||
"faqAgentsA": "Todos eles. O cmux é um terminal, então qualquer agente que roda em um terminal funciona diretamente: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent e qualquer outro que você possa executar pela linha de comando.",
|
||
"faqNotificationsQ": "Como funcionam as notificações?",
|
||
"faqNotificationsA": "Quando um processo precisa de atenção, o cmux mostra anéis de notificação ao redor dos painéis, badges de não lido na barra lateral, um popover de notificações e uma notificação no desktop do macOS. Elas disparam automaticamente via sequências de terminal padrão (OSC 9/99/777), ou você pode acioná-las com o <cliLink>CLI do cmux</cliLink> e os <hooksLink>hooks do Claude Code</hooksLink>.",
|
||
"faqShortcutsQ": "Posso personalizar os atalhos de teclado?",
|
||
"faqShortcutsA": "Os atalhos do terminal são lidos do seu arquivo de configuração do Ghostty (<configPath>~/.config/ghostty/config</configPath>). Atalhos específicos do cmux (workspaces, divisões, navegador, notificações) podem ser personalizados nas Configurações. Veja os <link>atalhos padrão</link> para a lista completa.",
|
||
"faqTmuxQ": "Como ele se compara ao tmux?",
|
||
"faqTmuxA": "O tmux é um multiplexador de terminal que roda dentro de qualquer terminal. O cmux é um app macOS nativo com interface gráfica: abas verticais, painéis divididos, navegador integrado e uma API de socket são todos embutidos. Sem arquivos de configuração ou teclas de prefixo necessários.",
|
||
"faqFreeQ": "O cmux é gratuito?",
|
||
"faqFreeA": "Sim, o cmux é gratuito. O código-fonte está disponível no <link>GitHub</link>."
|
||
},
|
||
"community": {
|
||
"title": "Comunidade",
|
||
"description": "Conecte-se com outros usuários do cmux e a equipe por trás dele.",
|
||
"discord": "Discord",
|
||
"discordAction": "Entre no nosso Discord",
|
||
"discordDesc": "Converse com a comunidade, obtenha ajuda e compartilhe feedback",
|
||
"githubAction": "Ver no GitHub",
|
||
"githubDesc": "Dê uma estrela no repo, reporte problemas e contribua",
|
||
"twitter": "Twitter",
|
||
"twitterAction": "Siga no X",
|
||
"twitterDesc": "Atualizações, anúncios e dicas",
|
||
"youtube": "YouTube",
|
||
"youtubeAction": "Inscreva-se",
|
||
"youtubeDesc": "Demos, tutoriais e walkthroughs",
|
||
"linkedin": "LinkedIn",
|
||
"linkedinAction": "Siga-nos",
|
||
"linkedinDesc": "Notícias da empresa e atualizações de engenharia",
|
||
"metaTitle": "Comunidade — cmux",
|
||
"metaDescription": "Junte-se à comunidade cmux no Discord, Twitter, GitHub e mais"
|
||
},
|
||
"blog": {
|
||
"title": "Blog",
|
||
"layoutTitle": "cmux blog",
|
||
"metaTitle": "Blog",
|
||
"metaDescription": "Notícias e atualizações da equipe cmux",
|
||
"description": "Novidades e atualizações da equipe do cmux",
|
||
"posts": {
|
||
"cmdShiftU": {
|
||
"title": "Cmd+Shift+U",
|
||
"summary": "Como o Cmd+Shift+U navega entre agentes finalizados nos workspaces do cmux.",
|
||
"date": "4 de março de 2026",
|
||
"p1": "Meu recurso favorito do cmux é o Cmd+Shift+U. Tenho 17 workspaces abertos agora, cada um rodando um agente. Eu costumava clicar entre abas e o painel de notificações para descobrir o que havia terminado. Digitar é mais rápido.",
|
||
"p2": "Cmd+Shift+U pula para a <link>notificação</link> não lida mais recente. Na prática, isso significa o último agente que terminou. Ele muda para o workspace correto, foca no painel exato, pisca para você ver onde olhar e marca como lido. Se a notificação veio de outra janela, essa janela vem para frente."
|
||
},
|
||
"zenOfCmux": {
|
||
"title": "O Zen do cmux",
|
||
"summary": "O cmux é uma primitiva, não uma solução. Ele te dá peças combináveis e seu fluxo de trabalho é por sua conta.",
|
||
"date": "27 de fevereiro de 2026",
|
||
"p1": "O cmux não é prescritivo sobre como desenvolvedores usam suas ferramentas. É um terminal e navegador com uma CLI, e o resto é com você.",
|
||
"p2": "O cmux é uma primitiva, não uma solução. Ele te dá um terminal, um navegador, notificações, workspaces, divisões, abas e uma CLI para controlar tudo isso. O cmux não te força a uma forma opinativa de usar agentes de código. O que você constrói com as primitivas é seu.",
|
||
"p3": "Os melhores desenvolvedores sempre construíram suas próprias ferramentas. Ninguém descobriu a melhor forma de trabalhar com agentes ainda, e as equipes construindo produtos fechados definitivamente também não. Os desenvolvedores mais próximos de seus próprios codebases vão descobrir primeiro.",
|
||
"p4": "Dê a um milhão de desenvolvedores primitivas combináveis e eles coletivamente encontrarão os fluxos de trabalho mais eficientes mais rápido do que qualquer equipe de produto poderia projetar de cima para baixo."
|
||
},
|
||
"showHnLaunch": {
|
||
"title": "Lançando o cmux no Show HN",
|
||
"summary": "O cmux chegou ao #2 no Hacker News, foi compartilhado por Mitchell Hashimoto e viralizou no Japão.",
|
||
"date": "21 de fevereiro de 2026",
|
||
"intro": "Postamos o cmux no <link>Show HN</link> em 19 de fevereiro:",
|
||
"blockquote1": "Eu rodo muitas sessões de Claude Code e Codex em paralelo. Estava usando o Ghostty com vários painéis divididos, e dependendo das notificações nativas do macOS para saber quando um agente precisava de mim. Mas o corpo da notificação do Claude Code é sempre apenas \"Claude is waiting for your input\" sem contexto, e com abas suficientes abertas, eu não conseguia nem ler os títulos.",
|
||
"blockquote2": "Tentei alguns orquestradores de código, mas a maioria era apps Electron/Tauri e a performance me incomodava. Também prefiro o terminal, já que orquestradores com GUI te prendem ao fluxo de trabalho deles. Então construí o cmux como um app macOS nativo em Swift/AppKit. Ele usa o libghostty para renderização de terminal e lê sua configuração existente do Ghostty para temas, fontes, cores e mais.",
|
||
"blockquote3": "As principais adições são a barra lateral e o sistema de notificações. A barra lateral tem abas verticais que mostram branch git, diretório de trabalho, portas em escuta e o texto da última notificação de cada workspace. O sistema de notificações captura sequências de terminal (OSC 9/99/777) e tem uma CLI (cmux notify) que você pode conectar aos hooks de agentes para Claude Code, OpenCode, etc. Quando um agente está esperando, seu painel recebe um anel azul e a aba acende na barra lateral, para eu saber qual precisa de mim entre divisões e abas. Cmd+Shift+U pula para o não lido mais recente.",
|
||
"blockquote4": "O navegador integrado tem uma API programável. Agentes podem capturar a árvore de acessibilidade, obter referências de elementos, clicar, preencher formulários, avaliar JS e ler logs do console. Você pode dividir um painel de navegador ao lado do seu terminal e ter o Claude Code interagindo com seu servidor de desenvolvimento diretamente.",
|
||
"blockquote5": "Tudo é programável através da CLI e API de socket: criar workspaces/abas, dividir painéis, enviar teclas, abrir URLs no navegador.",
|
||
"hitNumber2": "No pico, chegou ao #2 no Hacker News. Mitchell Hashimoto compartilhou:",
|
||
"favoriteComment": "Meu comentário favorito do <link>thread do HN</link>:",
|
||
"viralJapan": "Surpreendentemente, o cmux viralizou no Japão:",
|
||
"translation": "Tradução: \"Isso parece bom. Um app de terminal baseado no Ghostty projetado para você não se perder ao rodar múltiplas CLIs como Claude Code em paralelo. O painel aguardando entrada recebe uma moldura azul e tem seu próprio sistema de notificações.\"",
|
||
"viralChina": "E semi-viral na China:",
|
||
"extensions": "Outra coisa empolgante foi ver pessoas construindo em cima da CLI do cmux. sasha construiu uma extensão pi-cmux que mostra informações do modelo, uso de tokens e estado do agente na barra lateral:",
|
||
"scriptable": "Tudo no cmux é programável através da CLI: criando workspaces, enviando teclas, controlando o navegador, lendo notificações. Parte da filosofia do cmux é ser programável e combinável, para que as pessoas possam personalizar a forma como trabalham com agentes de código. O estado da arte para agentes de código está mudando rápido, e você não quer ficar preso a um orquestrador GUI inflexível que não consegue acompanhar.",
|
||
"cta": "Se você está rodando múltiplos agentes de código, <link>experimente o cmux</link>."
|
||
},
|
||
"introducingCmux": {
|
||
"title": "Apresentando o cmux",
|
||
"summary": "Um terminal macOS nativo construído sobre o Ghostty, projetado para rodar múltiplos agentes de código com IA lado a lado.",
|
||
"date": "12 de fevereiro de 2026",
|
||
"p1": "O cmux é um aplicativo de terminal macOS nativo construído sobre o Ghostty, projetado desde o início para desenvolvedores que rodam múltiplos agentes de código com IA simultaneamente.",
|
||
"whyTitle": "Por que cmux?",
|
||
"whyP": "Fluxos de trabalho modernos de desenvolvimento frequentemente envolvem rodar vários agentes ao mesmo tempo. Claude Code, Codex e outras ferramentas, cada uma em seu próprio terminal. Acompanhar quais precisam de atenção e alternar entre elas rapidamente é o problema que o cmux resolve.",
|
||
"featuresTitle": "Principais recursos",
|
||
"getStartedTitle": "Comece agora",
|
||
"getStartedP": "Instale o cmux via Homebrew ou baixe o DMG do <link>guia de início</link>.",
|
||
"featureVerticalTabsLabel": "Abas verticais",
|
||
"featureVerticalTabsDesc": "veja todos os seus terminais de relance na barra lateral",
|
||
"featureNotificationsLabel": "Anéis de notificação",
|
||
"featureNotificationsDesc": "abas piscam quando um agente precisa da sua atenção",
|
||
"featureSplitPanesLabel": "Painéis divididos",
|
||
"featureSplitPanesDesc": "divisões horizontais e verticais dentro de cada workspace",
|
||
"featureSocketApiLabel": "API de socket",
|
||
"featureSocketApiDesc": "controle programático para criar abas e enviar entrada",
|
||
"featureGpuLabel": "Acelerado por GPU",
|
||
"featureGpuDesc": "alimentado pelo libghostty para renderização suave"
|
||
}
|
||
},
|
||
"zenOfCmux": {
|
||
"metaTitle": "O Zen do cmux",
|
||
"metaDescription": "cmux é uma primitiva, não uma solução. Oferece peças combináveis e seu fluxo de trabalho é por sua conta."
|
||
},
|
||
"cmdShiftU": {
|
||
"metaTitle": "Cmd+Shift+U",
|
||
"metaDescription": "O novo atalho de teclado que muda como você interage com o cmux."
|
||
},
|
||
"showHnLaunch": {
|
||
"metaTitle": "Lançamento do cmux no Show HN",
|
||
"metaDescription": "A história do lançamento do cmux no Hacker News."
|
||
},
|
||
"introducingCmux": {
|
||
"metaTitle": "Apresentando o cmux",
|
||
"metaDescription": "Por que construímos o cmux, um novo terminal para macOS."
|
||
}
|
||
},
|
||
"docs": {
|
||
"layoutTitle": "cmux docs",
|
||
"gettingStarted": {
|
||
"title": "Primeiros Passos",
|
||
"metaDescription": "Instale o cmux, o terminal macOS nativo para agentes de código com IA. Homebrew, download DMG, configuração da CLI e atualizações automáticas via Sparkle.",
|
||
"intro": "O cmux é um terminal macOS nativo e leve, construído sobre o Ghostty para gerenciar múltiplos agentes de código com IA. Ele possui abas verticais, um painel de notificações e uma API de controle baseada em socket.",
|
||
"install": "Instalação",
|
||
"dmgRecommended": "DMG (recomendado)",
|
||
"dmgDesc": "Abra o .dmg e arraste o cmux para a pasta Aplicativos. O cmux se atualiza automaticamente via Sparkle, então você só precisa baixar uma vez.",
|
||
"homebrew": "Homebrew",
|
||
"updateLater": "Para atualizar depois:",
|
||
"firstLaunchCallout": "Na primeira execução, o macOS pode pedir para confirmar a abertura de um app de um desenvolvedor identificado. Clique em <strong>Abrir</strong> para continuar.",
|
||
"verifyTitle": "Verificar instalação",
|
||
"verifyDesc": "Abra o cmux e você deve ver:",
|
||
"verifyItem1": "Uma janela de terminal com uma barra lateral de abas verticais à esquerda",
|
||
"verifyItem2": "Um workspace inicial já aberto",
|
||
"verifyItem3": "O terminal Ghostty pronto para entrada",
|
||
"cliSetup": "Configuração da CLI",
|
||
"cliDesc": "O cmux inclui uma ferramenta de linha de comando para automação. Dentro dos terminais do cmux, funciona automaticamente. Para usar a CLI de fora do cmux, crie um link simbólico:",
|
||
"cliThen": "Depois você pode executar comandos como:",
|
||
"autoUpdates": "Atualizações automáticas",
|
||
"autoUpdatesDesc": "O cmux verifica atualizações automaticamente via Sparkle. Quando uma atualização estiver disponível, você verá um indicador de atualização na barra de título. Você também pode verificar manualmente via cmux > Verificar Atualizações na barra de menus.",
|
||
"sessionRestore": "Restauração de sessão (comportamento atual)",
|
||
"sessionRestoreDesc": "Após reinício, o cmux restaura apenas layout e metadados:",
|
||
"sessionItem1": "Layout de janelas, workspaces e painéis",
|
||
"sessionItem2": "Diretórios de trabalho",
|
||
"sessionItem3": "Histórico de rolagem do terminal (melhor esforço)",
|
||
"sessionItem4": "URL do navegador e histórico de navegação",
|
||
"sessionCallout": "O cmux ainda não restaura o estado de processos em execução. Sessões ativas de aplicativos de terminal como Claude Code, tmux e vim não são retomadas após reinício do app.",
|
||
"requirements": "Requisitos",
|
||
"reqItem1": "macOS 14.0 ou posterior",
|
||
"reqItem2": "Mac com Apple Silicon ou Intel",
|
||
"metaTitle": "Primeiros passos"
|
||
},
|
||
"concepts": {
|
||
"title": "Conceitos",
|
||
"metaDescription": "Como o cmux organiza terminais: janelas, workspaces, painéis e superfícies. A hierarquia por trás da barra lateral, divisões e API de socket.",
|
||
"intro": "O cmux organiza seus terminais em uma hierarquia de quatro níveis. Entender esses níveis ajuda ao usar a API de socket, CLI e atalhos de teclado.",
|
||
"hierarchy": "Hierarquia",
|
||
"windowTitle": "Janela",
|
||
"windowDesc": "Uma janela do macOS. Abra múltiplas janelas com {shortcut}. Cada janela tem sua própria barra lateral com workspaces independentes.",
|
||
"workspaceTitle": "Workspace",
|
||
"workspaceDesc": "Uma entrada na barra lateral. Cada workspace contém um ou mais painéis divididos. Workspaces são o que você vê listado na barra lateral esquerda.",
|
||
"workspaceNote": "Na interface e nos atalhos de teclado, workspaces são frequentemente chamados de \"abas\" já que se comportam como abas na barra lateral. A API de socket e variáveis de ambiente usam o termo \"workspace\".",
|
||
"contextHeader": "Contexto",
|
||
"termUsedHeader": "Termo usado",
|
||
"sidebarUI": "Interface da barra lateral",
|
||
"tab": "Aba",
|
||
"keyboardShortcuts": "Atalhos de teclado",
|
||
"workspaceOrTab": "Workspace ou aba",
|
||
"socketAPI": "API de socket",
|
||
"environmentVariable": "Variável de ambiente",
|
||
"workspaceShortcuts": "Atalhos: {new} (novo), {jump} (pular), {close} (fechar), {prevNext} (anterior/próximo)",
|
||
"paneTitle": "Painel",
|
||
"paneDesc": "Uma região dividida dentro de um workspace. Criado dividindo com {right} (direita) ou {down} (baixo). Navegue entre painéis com {nav} + teclas de seta.",
|
||
"paneNote": "Cada painel pode conter múltiplas superfícies (abas dentro do painel).",
|
||
"surfaceTitle": "Superfície",
|
||
"surfaceDesc": "Uma aba dentro de um painel. Cada painel tem sua própria barra de abas e pode conter múltiplas superfícies. Criada com {new}, navegada com {prev} / {next} ou {jump}.",
|
||
"surfaceNote": "Superfícies são as sessões individuais de terminal ou navegador com as quais você interage. Cada superfície tem sua própria variável de ambiente CMUX_SURFACE_ID.",
|
||
"panelTitle": "Panel",
|
||
"panelDesc": "O conteúdo dentro de uma superfície. Atualmente dois tipos:",
|
||
"panelTerminal": "Terminal: uma sessão de terminal Ghostty",
|
||
"panelBrowser": "Navegador: uma visualização web integrada",
|
||
"panelNote": "Panel é majoritariamente um conceito interno. Na API de socket e CLI, você interage com superfícies em vez de panels diretamente.",
|
||
"visualExample": "Exemplo visual",
|
||
"visualExampleDesc": "Neste exemplo:",
|
||
"visualItem1": "A janela contém uma barra lateral com três workspaces (dev, server, logs)",
|
||
"visualItem2": "O workspace \"dev\" está selecionado, mostrando dois painéis lado a lado",
|
||
"visualItem3": "O Painel 1 tem duas superfícies ([S1] e [S2] na barra de abas), com S1 ativa",
|
||
"visualItem4": "O Painel 2 tem uma superfície",
|
||
"visualItem5": "Cada superfície contém um panel (um terminal neste caso)",
|
||
"summary": "Resumo",
|
||
"levelHeader": "Nível",
|
||
"whatItIsHeader": "O que é",
|
||
"createdByHeader": "Criado por",
|
||
"identifiedByHeader": "Identificado por",
|
||
"macosWindow": "Janela do macOS",
|
||
"sidebarEntry": "Entrada na barra lateral",
|
||
"splitRegion": "Região dividida",
|
||
"tabWithinPane": "Aba dentro do painel",
|
||
"terminalOrBrowser": "Terminal ou navegador",
|
||
"automatic": "Automático",
|
||
"paneIdSocket": "ID do painel (API de socket)",
|
||
"panelIdInternal": "ID do panel (interno)",
|
||
"metaTitle": "Conceitos"
|
||
},
|
||
"configuration": {
|
||
"title": "Configuração",
|
||
"metaDescription": "Configure o cmux via arquivos de configuração do Ghostty. Fonte, tema, cores, estilo de painéis divididos, histórico de rolagem e configurações do app para modo de automação.",
|
||
"intro": "O cmux lê a configuração dos arquivos de configuração do Ghostty, oferecendo opções familiares se você vem do Ghostty.",
|
||
"configLocations": "Locais do arquivo de configuração",
|
||
"configLocationsDesc": "O cmux procura configuração nestes locais (em ordem):",
|
||
"createConfig": "Crie o arquivo de configuração se ele não existir:",
|
||
"appearance": "Aparência",
|
||
"font": "Fonte",
|
||
"colors": "Cores",
|
||
"splitPanes": "Painéis divididos",
|
||
"behavior": "Comportamento",
|
||
"scrollback": "Histórico de rolagem",
|
||
"workingDirectory": "Diretório de trabalho",
|
||
"appSettings": "Configurações do app",
|
||
"appSettingsDesc": "Configurações do app estão disponíveis via cmux > Configurações ({shortcut}):",
|
||
"themeMode": "Modo de tema",
|
||
"themeSystem": "Sistema: seguir aparência do macOS",
|
||
"themeLight": "Claro: sempre modo claro",
|
||
"themeDark": "Escuro: sempre modo escuro",
|
||
"automationMode": "Modo de automação",
|
||
"automationModeDesc": "Nível de acesso ao socket:",
|
||
"automationOff": "Desligado: sem controle por socket (mais seguro)",
|
||
"automationCmux": "Apenas processos cmux: permitir apenas processos iniciados dentro dos terminais do cmux se conectarem",
|
||
"automationAll": "allowAll: permitir qualquer processo local se conectar (CMUX_SOCKET_MODE=allowAll, apenas por variável de ambiente)",
|
||
"automationCallout": "Em máquinas compartilhadas, considere usar o modo \"Desligado\" ou \"Apenas processos cmux\".",
|
||
"browserLinkBehavior": "Comportamento de links do navegador",
|
||
"browserLinkDesc": "Em Configurações > Navegador, o cmux expõe duas listas de hosts com propósitos diferentes:",
|
||
"browserHostsEmbed": "Hosts para abrir no navegador integrado: aplica-se a links clicados na saída do terminal. Hosts nesta lista abrem no cmux; outros hosts abrem no seu navegador padrão. Suporta um host ou wildcard por linha (por exemplo: example.com, *.internal.example).",
|
||
"browserHostsHttp": "Hosts HTTP permitidos no navegador integrado: aplica-se apenas a URLs HTTP (não HTTPS). Hosts nesta lista podem abrir no cmux sem aviso. Os padrões incluem localhost, 127.0.0.1, ::1, 0.0.0.0 e *.localtest.me.",
|
||
"exampleConfig": "Exemplo de configuração",
|
||
"metaTitle": "Configuração"
|
||
},
|
||
"customCommands": {
|
||
"title": "Comandos personalizados",
|
||
"metaTitle": "Comandos personalizados",
|
||
"metaDescription": "Defina comandos personalizados e layouts de workspace em cmux.json. Configuração por projeto e global com monitoramento em tempo real de arquivos.",
|
||
"intro": "Defina comandos personalizados e layouts de workspace adicionando um arquivo cmux.json à raiz do seu projeto ou ~/.config/cmux/. Os comandos aparecem na paleta de comandos.",
|
||
"fileLocations": "Localizações dos arquivos",
|
||
"fileLocationsDesc": "O cmux procura configuração em dois lugares:",
|
||
"localConfig": "Por projeto:",
|
||
"localConfigDesc": "fica no diretório do seu projeto, tem precedência",
|
||
"globalConfig": "Global:",
|
||
"globalConfigDesc": "aplica-se a todos os projetos, preenche comandos não definidos localmente",
|
||
"precedenceNote": "Comandos locais substituem comandos globais com o mesmo nome.",
|
||
"liveReload": "As alterações são capturadas automaticamente — nenhum reinício necessário.",
|
||
"schema": "Esquema",
|
||
"schemaDesc": "Um arquivo cmux.json contém um array commands. Cada comando é um comando shell simples ou uma definição completa de workspace:",
|
||
"simpleCommands": "Comandos simples",
|
||
"simpleCommandsDesc": "Um comando simples executa um comando shell no terminal atualmente focado:",
|
||
"simpleCommandFields": "Campos",
|
||
"fieldName": "Exibido na paleta de comandos (obrigatório)",
|
||
"fieldDescription": "Descrição opcional",
|
||
"fieldKeywords": "Termos de pesquisa extras para a paleta de comandos",
|
||
"fieldCommand": "Comando shell para executar no terminal focado",
|
||
"fieldConfirm": "Mostrar um diálogo de confirmação antes de executar",
|
||
"simpleCommandCwdNote": "Comandos simples são executados no diretório de trabalho atual do terminal focado. Se seu comando depende de caminhos relativos ao projeto, prefixe com",
|
||
"simpleCommandCwdRepoRoot": "para executar a partir da raiz do repositório, ou",
|
||
"simpleCommandCwdCustomPath": "para qualquer diretório específico.",
|
||
"workspaceCommands": "Comandos de workspace",
|
||
"workspaceCommandsDesc": "Um comando de workspace cria um novo workspace com um layout personalizado de divisões, terminais e painéis do navegador:",
|
||
"workspaceFields": "Campos de workspace",
|
||
"wsFieldName": "Nome da aba do workspace (padrão é o nome do comando)",
|
||
"wsFieldCwd": "Diretório de trabalho do workspace",
|
||
"wsFieldColor": "Cor da aba do workspace",
|
||
"wsFieldLayout": "Árvore de layout definindo divisões e painéis",
|
||
"restartBehavior": "Comportamento de reinício",
|
||
"restartBehaviorDesc": "Controla o que acontece quando um workspace com o mesmo nome já existe:",
|
||
"restartIgnore": "Mudar para o workspace existente (padrão)",
|
||
"restartRecreate": "Fechar e recriar sem perguntar",
|
||
"restartConfirm": "Perguntar ao usuário antes de recriar",
|
||
"layoutTree": "Árvore de layout",
|
||
"layoutTreeDesc": "A árvore de layout define como os painéis são organizados usando nós de divisão recursivos:",
|
||
"splitNode": "Nó de divisão",
|
||
"splitNodeDesc": "Divide o espaço em dois filhos:",
|
||
"or": "ou",
|
||
"splitPosition": "Posição do divisor de 0.1 a 0.9 (padrão 0.5)",
|
||
"splitChildren": "Exatamente dois nós filhos (divisão ou painel)",
|
||
"paneNode": "Nó de painel",
|
||
"paneNodeDesc": "Um nó folha contendo uma ou mais superfícies (abas dentro do painel).",
|
||
"surfaceDefinition": "Definição de superfície",
|
||
"surfaceDefinitionDesc": "Cada superfície em um painel pode ser um terminal ou um navegador:",
|
||
"surfaceName": "Título de aba personalizado",
|
||
"surfaceCommand": "Comando shell para executar automaticamente na criação (apenas terminal)",
|
||
"surfaceCwd": "Diretório de trabalho para esta superfície",
|
||
"surfaceEnv": "Variáveis de ambiente como pares chave-valor",
|
||
"surfaceUrl": "URL para abrir (apenas navegador)",
|
||
"surfaceFocus": "Focar nesta superfície após a criação",
|
||
"cwdResolution": "Resolução do diretório de trabalho",
|
||
"omitted": "omitido",
|
||
"cwdRelative": "diretório de trabalho do workspace",
|
||
"cwdSubdir": "relativo ao diretório de trabalho do workspace",
|
||
"cwdHome": "expandido para o diretório home",
|
||
"absolutePath": "Caminho absoluto",
|
||
"cwdAbsolute": "usado como está",
|
||
"fullExample": "Exemplo completo"
|
||
},
|
||
"keyboardShortcuts": {
|
||
"title": "Atalhos de Teclado",
|
||
"description": "Todos os atalhos de teclado disponíveis no cmux, agrupados por categoria.",
|
||
"metaDescription": "Todos os atalhos de teclado do cmux para workspaces, superfícies, painéis divididos, navegador, notificações, busca e gerenciamento de janelas no macOS.",
|
||
"searchPlaceholder": "Buscar atalhos...",
|
||
"searchLabel": "Buscar atalhos de teclado",
|
||
"noResults": "Nenhum atalho encontrado",
|
||
"noResultsHint": "Tente um termo de busca diferente",
|
||
"cat": {
|
||
"workspaces": "Workspaces",
|
||
"workspacesBlurb": "Workspaces ficam na barra lateral. Cada workspace tem seu próprio conjunto de painéis e superfícies.",
|
||
"surfaces": "Superfícies",
|
||
"surfacesBlurb": "Superfícies são abas dentro de um painel.",
|
||
"splitPanes": "Painéis Divididos",
|
||
"browser": "Navegador",
|
||
"notifications": "Notificações",
|
||
"find": "Buscar",
|
||
"terminal": "Terminal",
|
||
"window": "Janela"
|
||
},
|
||
"sc": {
|
||
"ws-new": "Novo workspace",
|
||
"ws-jump-1-8": "Ir para workspace 1–8",
|
||
"ws-jump-last": "Ir para último workspace",
|
||
"ws-close": "Fechar workspace",
|
||
"ws-rename": "Renomear workspace",
|
||
"sf-new": "Nova superfície",
|
||
"sf-prev-1": "Superfície anterior",
|
||
"sf-prev-2": "Superfície anterior",
|
||
"sf-jump-1-8": "Ir para superfície 1–8",
|
||
"sf-jump-last": "Ir para última superfície",
|
||
"sf-close": "Fechar superfície",
|
||
"sp-right": "Dividir à direita",
|
||
"sp-down": "Dividir abaixo",
|
||
"sp-focus": "Focar painel direcionalmente",
|
||
"sp-browser-right": "Dividir navegador à direita",
|
||
"sp-browser-down": "Dividir navegador abaixo",
|
||
"br-open": "Abrir superfície do navegador",
|
||
"br-addr": "Focar barra de endereço",
|
||
"br-forward": "Avançar",
|
||
"br-reload": "Recarregar página",
|
||
"br-devtools": "Abrir Ferramentas de Desenvolvedor",
|
||
"nt-panel": "Mostrar painel de notificações",
|
||
"nt-latest": "Ir para última não lida",
|
||
"nt-flash": "Disparar flash",
|
||
"fd-find": "Buscar",
|
||
"fd-next-prev": "Buscar próximo / anterior",
|
||
"fd-hide": "Ocultar barra de busca",
|
||
"fd-selection": "Usar seleção para busca",
|
||
"tm-clear": "Limpar histórico de rolagem",
|
||
"tm-copy": "Copiar (com seleção)",
|
||
"tm-paste": "Colar",
|
||
"tm-font": "Aumentar / diminuir tamanho da fonte",
|
||
"tm-reset": "Resetar tamanho da fonte",
|
||
"wn-new": "Nova janela",
|
||
"wn-settings": "Configurações",
|
||
"wn-reload": "Recarregar configuração",
|
||
"wn-quit": "Sair"
|
||
},
|
||
"metaTitle": "Atalhos de teclado"
|
||
},
|
||
"api": {
|
||
"title": "Referência da API",
|
||
"metaDescription": "Referência da CLI e API de socket Unix do cmux. Gerenciamento de workspaces, painéis divididos, controle de entrada, notificações, metadados da barra lateral, variáveis de ambiente e métodos de detecção.",
|
||
"intro": "O cmux oferece uma ferramenta CLI e um socket Unix para controle programático. Cada comando está disponível através de ambas as interfaces.",
|
||
"socket": "Socket",
|
||
"buildHeader": "Build",
|
||
"pathHeader": "Caminho",
|
||
"release": "Release",
|
||
"debug": "Debug",
|
||
"taggedDebug": "Build de debug com tag",
|
||
"socketOverride": "Substitua com a variável de ambiente CMUX_SOCKET_PATH. Envie uma requisição JSON terminada em nova linha por chamada:",
|
||
"socketCallout": "Requisições JSON via socket devem usar method e params. Payloads JSON legados v1 como <legacy>'{'\"command\":\"...\"'}'</legacy> não são suportados.",
|
||
"accessModes": "Modos de acesso",
|
||
"modeHeader": "Modo",
|
||
"descriptionHeader": "Descrição",
|
||
"howToEnableHeader": "Como ativar",
|
||
"offMode": "Socket desativado",
|
||
"offEnable": "Interface de Configurações ou CMUX_SOCKET_MODE=off",
|
||
"cmuxOnlyMode": "Apenas processos iniciados dentro dos terminais do cmux podem se conectar.",
|
||
"cmuxOnlyEnable": "Modo padrão na interface de Configurações",
|
||
"allowAllMode": "Permitir qualquer processo local se conectar (sem verificação de ancestralidade).",
|
||
"allowAllEnable": "Apenas por variável de ambiente: CMUX_SOCKET_MODE=allowAll",
|
||
"accessCallout": "Em máquinas compartilhadas, use Desligado ou apenas processos cmux.",
|
||
"cliOptions": "Opções da CLI",
|
||
"flagHeader": "Flag",
|
||
"customSocketPath": "Caminho de socket personalizado",
|
||
"outputJson": "Saída em formato JSON",
|
||
"targetWindow": "Direcionar uma janela específica",
|
||
"targetWorkspace": "Direcionar um workspace específico",
|
||
"targetSurface": "Direcionar uma superfície específica",
|
||
"idFormat": "Controlar formato de identificador na saída JSON",
|
||
"workspaceCommands": "Comandos de workspace",
|
||
"listWorkspacesDesc": "Listar todos os workspaces abertos.",
|
||
"newWorkspaceDesc": "Criar um novo workspace.",
|
||
"selectWorkspaceDesc": "Alternar para um workspace específico.",
|
||
"currentWorkspaceDesc": "Obter o workspace atualmente ativo.",
|
||
"closeWorkspaceDesc": "Fechar um workspace.",
|
||
"splitCommands": "Comandos de divisão",
|
||
"newSplitDesc": "Criar um novo painel dividido. Direções: left, right, up, down.",
|
||
"listSurfacesDesc": "Listar todas as superfícies no workspace atual.",
|
||
"focusSurfaceDesc": "Focar uma superfície específica.",
|
||
"inputCommands": "Comandos de entrada",
|
||
"sendDesc": "Enviar texto para o terminal focado.",
|
||
"sendKeyDesc": "Enviar uma tecla. Teclas: enter, tab, escape, backspace, delete, up, down, left, right.",
|
||
"sendSurfaceDesc": "Enviar texto para uma superfície específica.",
|
||
"sendKeySurfaceDesc": "Enviar uma tecla para uma superfície específica.",
|
||
"notificationCommands": "Comandos de notificação",
|
||
"notifyDesc": "Enviar uma notificação.",
|
||
"listNotificationsDesc": "Listar todas as notificações.",
|
||
"clearNotificationsDesc": "Limpar todas as notificações.",
|
||
"sidebarMetadata": "Comandos de metadados da barra lateral",
|
||
"sidebarMetadataDesc": "Definir indicadores de status, barras de progresso e entradas de log na barra lateral para qualquer workspace. Útil para scripts de build, integrações de CI e agentes de código com IA que querem exibir estado rapidamente.",
|
||
"setStatusDesc": "Definir um indicador de status na barra lateral. Use uma chave única para que diferentes ferramentas possam gerenciar suas próprias entradas.",
|
||
"clearStatusDesc": "Remover uma entrada de status da barra lateral por chave.",
|
||
"listStatusDesc": "Listar todas as entradas de status da barra lateral para um workspace.",
|
||
"setProgressDesc": "Definir uma barra de progresso na barra lateral (0.0 a 1.0).",
|
||
"clearProgressDesc": "Limpar a barra de progresso da barra lateral.",
|
||
"logDesc": "Adicionar uma entrada de log à barra lateral. Níveis: info, progress, success, warning, error.",
|
||
"clearLogDesc": "Limpar todas as entradas de log da barra lateral.",
|
||
"listLogDesc": "Listar entradas de log da barra lateral.",
|
||
"sidebarStateDesc": "Exportar todos os metadados da barra lateral (cwd, branch git, portas, status, progresso, logs).",
|
||
"utilityCommands": "Comandos utilitários",
|
||
"pingDesc": "Verificar se o cmux está rodando e respondendo.",
|
||
"capabilitiesDesc": "Listar métodos de socket disponíveis e modo de acesso atual.",
|
||
"identifyDesc": "Mostrar contexto da janela/workspace/painel/superfície focados.",
|
||
"envVariables": "Variáveis de ambiente",
|
||
"variableHeader": "Variável",
|
||
"socketPathDesc": "Substituir o caminho do socket usado pela CLI e integrações",
|
||
"socketEnableDesc": "Forçar ativação/desativação do socket (1/0, true/false, on/off)",
|
||
"socketModeDesc": "Substituir modo de acesso (cmuxOnly, allowAll, off). Também aceita cmux-only/cmux_only e allow-all/allow_all",
|
||
"workspaceIdDesc": "Definido automaticamente: ID do workspace atual",
|
||
"surfaceIdDesc": "Definido automaticamente: ID da superfície atual",
|
||
"termProgramDesc": "Definido como ghostty",
|
||
"termDesc": "Definido como xterm-ghostty",
|
||
"envCallout": "Valores legados de CMUX_SOCKET_MODE full e notifications ainda são aceitos para compatibilidade.",
|
||
"detectingCmux": "Detectando o cmux",
|
||
"examples": "Exemplos",
|
||
"pythonClient": "Cliente Python",
|
||
"shellScript": "Script shell",
|
||
"buildScriptNotification": "Script de build com notificação",
|
||
"metaTitle": "Referência da API"
|
||
},
|
||
"notifications": {
|
||
"title": "Notificações",
|
||
"metaDescription": "Envie notificações de desktop de agentes de IA e scripts no cmux. CLI, sequências de escape OSC 99/777 e integração com hooks do Claude Code.",
|
||
"intro": "O cmux suporta notificações de desktop, permitindo que agentes de IA e scripts alertem você quando precisam de atenção.",
|
||
"lifecycle": "Ciclo de vida",
|
||
"received": "Recebida: notificação aparece no painel, alerta de desktop é disparado (se não suprimido)",
|
||
"unread": "Não lida: badge exibido na aba do workspace",
|
||
"read": "Lida: limpa quando você visualiza aquele workspace",
|
||
"cleared": "Limpa: removida do painel",
|
||
"suppression": "Supressão",
|
||
"suppressionDesc": "Alertas de desktop são suprimidos quando:",
|
||
"suppressItem1": "A janela do cmux está focada",
|
||
"suppressItem2": "O workspace específico enviando a notificação está ativo",
|
||
"suppressItem3": "O painel de notificações está aberto",
|
||
"notificationPanel": "Painel de notificações",
|
||
"notificationPanelDesc": "Pressione <openShortcut>⌘⇧I</openShortcut> para abrir o painel de notificações. Clique em uma notificação para ir ao workspace. Pressione <jumpShortcut>⌘⇧U</jumpShortcut> para ir diretamente ao workspace com a notificação não lida mais recente.",
|
||
"customCommand": "Comando personalizado",
|
||
"customCommandDesc": "Execute um comando shell toda vez que uma notificação for agendada. Defina em Configurações > App > Comando de Notificação. O comando é executado via /bin/sh -c com estas variáveis de ambiente:",
|
||
"customCommandNote": "O comando é executado independentemente do seletor de som do sistema. Defina o seletor como \"Nenhum\" para usar apenas o comando personalizado, ou mantenha ambos para um som do sistema mais uma ação personalizada.",
|
||
"sending": "Enviando notificações",
|
||
"cli": "CLI",
|
||
"osc777Title": "OSC 777 (simples)",
|
||
"osc777Desc": "O protocolo RXVT usa um formato fixo com título e corpo:",
|
||
"osc99Title": "OSC 99 (rico)",
|
||
"osc99Desc": "O protocolo Kitty suporta subtítulos e IDs de notificação:",
|
||
"variableHeader": "Variável",
|
||
"descriptionHeader": "Descrição",
|
||
"envTitle": "Título da notificação (nome do workspace ou do app)",
|
||
"envSubtitle": "Subtítulo da notificação",
|
||
"envBody": "Corpo da notificação",
|
||
"cmpTitleBody": "Título + corpo",
|
||
"cmpSubtitle": "Subtítulo",
|
||
"cmpNotificationId": "ID da notificação",
|
||
"cmpComplexity": "Complexidade",
|
||
"cmpYes": "Sim",
|
||
"cmpNo": "Não",
|
||
"cmpHigher": "Maior",
|
||
"cmpLower": "Menor",
|
||
"featureHeader": "Recurso",
|
||
"comparisonCallout": "Use OSC 777 para notificações simples. Use OSC 99 quando precisar de subtítulos ou IDs de notificação. Use a CLI (cmux notify) para a integração mais fácil.",
|
||
"claudeCodeHooks": "Hooks do Claude Code",
|
||
"claudeCodeHooksDesc": "O cmux se integra com o <link>Claude Code</link> via hooks para notificá-lo quando tarefas são concluídas.",
|
||
"createHookScript": "1. Crie o script de hook",
|
||
"configureClaude": "2. Configure o Claude Code",
|
||
"restartNote": "Reinicie o Claude Code para aplicar os hooks.",
|
||
"integrationExamples": "Exemplos de integração",
|
||
"notifyAfterLong": "Notificar após comando longo",
|
||
"python": "Python",
|
||
"nodejs": "Node.js",
|
||
"tmuxPassthrough": "Passthrough do tmux",
|
||
"tmuxDesc": "Se estiver usando tmux dentro do cmux, ative o passthrough:",
|
||
"metaTitle": "Notificações"
|
||
},
|
||
"browserAutomation": {
|
||
"title": "Automação do Navegador",
|
||
"metaDescription": "Referência de comandos do navegador cmux para navegação, interação com DOM, espera, inspeção, avaliação de JavaScript, abas, diálogos, frames, downloads e estado do navegador.",
|
||
"intro": "O grupo de comandos de navegador do cmux oferece automação de navegador contra superfícies de navegador do cmux. Use para navegar, interagir com elementos DOM, inspecionar estado da página, avaliar JavaScript e gerenciar dados de sessão do navegador.",
|
||
"commandIndex": "Índice de Comandos",
|
||
"categoryHeader": "Categoria",
|
||
"subcommandsHeader": "Subcomandos",
|
||
"navAndTargeting": "Navegação e direcionamento",
|
||
"waiting": "Espera",
|
||
"domInteraction": "Interação com DOM",
|
||
"inspection": "Inspeção",
|
||
"jsAndInjection": "JavaScript e injeção",
|
||
"framesDialogsDownloads": "Frames, diálogos, downloads",
|
||
"stateAndSession": "Estado e dados de sessão",
|
||
"tabsAndLogs": "Abas e logs",
|
||
"targetingSurface": "Direcionando uma superfície de navegador",
|
||
"targetingDesc": "A maioria dos subcomandos requer uma superfície alvo. Você pode passá-la posicionalmente ou com --surface.",
|
||
"navigation": "Navegação",
|
||
"waitingSection": "Espera",
|
||
"waitingDesc": "Use wait para bloquear até que seletores, texto, fragmentos de URL, estado de carregamento ou uma condição JavaScript seja satisfeita.",
|
||
"domSection": "Interação com DOM",
|
||
"domDesc": "Ações mutáveis suportam --snapshot-after para verificação rápida em scripts.",
|
||
"inspectionSection": "Inspeção",
|
||
"inspectionDesc": "Use getters estruturados para scripts e snapshots/screenshots para revisão humana.",
|
||
"jsSection": "Avaliação e Injeção de JavaScript",
|
||
"stateSection": "Estado",
|
||
"stateDesc": "Comandos de dados de sessão cobrem cookies, armazenamento local/de sessão e snapshots completos do estado do navegador.",
|
||
"tabsSection": "Abas",
|
||
"tabsDesc": "Operações de abas do navegador mapeiam para superfícies de navegador no grupo de abas ativo.",
|
||
"consoleSection": "Console e Erros",
|
||
"dialogsSection": "Diálogos",
|
||
"framesSection": "Frames",
|
||
"downloadsSection": "Downloads",
|
||
"commonPatterns": "Padrões Comuns",
|
||
"patternNavigate": "Navegar, esperar, inspecionar",
|
||
"patternForm": "Preencher um formulário e verificar texto de sucesso",
|
||
"patternDebug": "Capturar artefatos de debug em falha",
|
||
"patternSession": "Persistir e restaurar sessão do navegador",
|
||
"metaTitle": "Automação do navegador"
|
||
},
|
||
"changelog": {
|
||
"title": "Changelog",
|
||
"metaDescription": "Notas de lançamento e histórico de versões do cmux. Novos recursos, correções de bugs e mudanças para o terminal macOS nativo.",
|
||
"metaTitle": "Registro de alterações"
|
||
},
|
||
"navItems": {
|
||
"gettingStarted": "Primeiros Passos",
|
||
"concepts": "Conceitos",
|
||
"configuration": "Configuração",
|
||
"customCommands": "Comandos personalizados",
|
||
"keyboardShortcuts": "Atalhos de Teclado",
|
||
"apiReference": "Referência da API",
|
||
"browserAutomation": "Automação do Navegador",
|
||
"notifications": "Notificações",
|
||
"changelog": "Changelog"
|
||
}
|
||
},
|
||
"legal": {
|
||
"privacyPolicy": "Política de Privacidade",
|
||
"termsOfService": "Termos de Serviço",
|
||
"eula": "EULA"
|
||
},
|
||
"wallOfLove": {
|
||
"title": "Mural de Amor",
|
||
"description": "O que as pessoas estão dizendo sobre o cmux."
|
||
},
|
||
"testimonials": {
|
||
"mitchellh": "Mais um dia, mais um projeto baseado em libghostty, desta vez um terminal macOS com abas verticais, melhor organização/notificações, navegador integrado/programável voltado especificamente para quem usa muitos workflows de agentes baseados em terminal.",
|
||
"schrockn": "Isso é exatamente o produto que eu estava procurando. Depois de duas horas esta manhã, estou apaixonado.",
|
||
"egrefen": "Estou usando isso o fim de semana inteiro e é incrível.",
|
||
"max4c": "essa tem sido minha ferramenta favorita nas últimas duas semanas",
|
||
"asaza": "cmux parece tão bom que talvez finalmente seja hora de dizer adeus ao VSCode",
|
||
"johnthedebs": "Ei, isso parece seriamente incrível. Amei as ideias aqui, especificamente: a programabilidade, UI em camadas, navegador com API. Ansioso para testar. Também quero dizer que aprecio muito o Mitchell Hashimoto ter criado o libghostty; parece um momento empolgante para ser usuário de terminal.",
|
||
"joeriddles": "Abas verticais no meu terminal! Nunca tinha pensado nisso antes. Eu uso e amo abas verticais no Firefox.",
|
||
"dchu17": "Testei e foi bem intuitivo. Bom trabalho!",
|
||
"afruth": "Gostei, usei no último dia em três projetos paralelos, cada um com vários worktrees. Ter isso junto com lazygit e yazi / nvim me deixou um pouco mais produtivo que o normal sem precisar ficar correndo atrás de várias instâncias de ghostty / iTerm. Também parece mais natural que tmux.",
|
||
"northprint": "Experimentei o cmux porque parecia bom — é bom",
|
||
"indykish": "cmux é bem bom.",
|
||
"kataring": "Migrei para o cmux.dev",
|
||
"scottw": "Essa foi uma descoberta muito útil. Recomendo demais.",
|
||
"johnblythe": "baixei no fim de semana e adorei. estava esperando algo assim.",
|
||
"bchris91": "Isso é exatamente o que eu queria. Trabalho incrível, obrigado!",
|
||
"connorelsea": "Usando há uma semana e é fantástico. Aba vertical para cada tarefa em andamento. Dentro, claudes de um lado e navegador com PR e recursos do outro, alterno entre tarefas e mantenho tudo organizado. Misture com skills para o Claude monitorar CI recursivamente, etc. me sinto iluminado pra ser honesto",
|
||
"tonkotsuboy": "Mudei do Warp para o Ghostty no início do ano, mas agora migrei para o cmux. As abas verticais são práticas e gosto de ser notificado quando tarefas do Claude Code terminam. É baseado no Ghostty, então a performance ultrarrápida se mantém. A exibição de branches e completions que configurei no Ghostty continuam funcionando também."
|
||
},
|
||
"nightly": {
|
||
"title": "cmux NIGHTLY",
|
||
"subtitle": "Builds de ponta do branch main",
|
||
"metaTitle": "cmux NIGHTLY — Builds Nightly",
|
||
"metaDescription": "Baixe o cmux NIGHTLY, um app separado compilado automaticamente do commit mais recente no main. Funciona ao lado da versão estável com suas próprias atualizações automáticas.",
|
||
"description": "O cmux NIGHTLY é compilado automaticamente do commit mais recente no main. Ele tem seu próprio bundle ID, então funciona ao lado da versão estável sem conflitos. Use-o para testar novos recursos antes do lançamento.",
|
||
"download": "Baixar NIGHTLY para Mac",
|
||
"warning": "Builds nightly podem conter bugs ou recursos incompletos. Se algo quebrar, reporte no <githubLink>GitHub</githubLink> ou em <discordLink>#nightly-bugs no Discord</discordLink> e volte para a versão estável."
|
||
},
|
||
"languageSwitcher": {
|
||
"label": "Idioma"
|
||
}
|
||
}
|