cmux/web/messages/ru.json
Lawrence Chen 84af32c56e
Add cmux omo command for oh-my-openagent integration (#2087)
* Add `cmux omo` command for OpenCode + oh-my-openagent integration

Same pattern as `cmux claude-teams`: creates a tmux shim so
oh-my-openagent's TmuxSessionManager spawns agents as native cmux
splits instead of tmux panes. Sets TMUX/TMUX_PANE env vars, prepends
shim to PATH, and execs into opencode.

Closes https://github.com/manaflow-ai/cmux/issues/2085

* Auto-install oh-my-opencode plugin when running cmux omo

Before launching opencode, cmux omo now:
- Checks if oh-my-opencode is registered in ~/.config/opencode/opencode.json
- If not, creates/updates the config with the plugin entry
- Checks if the npm package is installed in node_modules
- If not, runs bun add (or npm install) to install it
- Then proceeds with tmux shim setup and exec

* Use shadow config dir to avoid modifying user's opencode setup

Instead of writing directly to ~/.config/opencode/opencode.json,
cmux omo now creates a shadow config at ~/.cmuxterm/omo-config/ that
layers oh-my-opencode on top of the user's existing config. Symlinks
node_modules, package.json, bun.lock, and plugin config from the
original dir. Sets OPENCODE_CONFIG_DIR to the shadow directory.

Running plain `opencode` remains unaffected.

* Add Agent Integrations docs section with Claude Code Teams and oh-my-opencode pages

Adds sectioned sidebar navigation to the docs site. The new Agent
Integrations section contains separate pages for cmux claude-teams and
cmux omo, documenting usage, tmux shim mechanics, directory layout,
environment variables, and the shadow config approach. Both pages
include a nightly-only warning. Full English and Japanese translations,
nav item keys added to all 19 locales.

* Remove uppercase from sidebar section headers

* Add more spacing above and below sidebar section headers

* Enable tmux mode in oh-my-opencode config, improve docs

- cmux omo now writes tmux.enabled=true to the shadow oh-my-opencode.json
  config. Without this, oh-my-openagent's TmuxSessionManager won't spawn
  visual panes even though $TMUX is set (the config defaults to false).
- Nightly warnings now link to /nightly instead of generic text.
- Added "What you get" section to oh-my-opencode docs explaining the
  visual pane behavior (auto-layout, idle cleanup, queueing).
- Added tmux.enabled step to first-run and how-it-works sections.

* Add terminal-notifier shim to route oh-my-openagent notifications to cmux

oh-my-openagent sends macOS notifications via terminal-notifier
(args: -title <t> -message <m> [-activate <id>]). The shim in
~/.cmuxterm/omo-bin/terminal-notifier intercepts these calls and
routes them through cmux notify, so notifications appear in cmux's
sidebar panel instead of as raw macOS notifications.

* Add pane geometry to tmux-compat for oh-my-openagent grid planning

oh-my-openagent's TmuxSessionManager needs pane geometry (columns,
rows, position, window dimensions) to decide where to spawn agent
panes. Without this data, agents run headlessly.

Server side:
- pane.list v2 response now includes pixel_frame, cell_size, columns,
  rows per pane, plus container_frame at the top level
- Uses BonsplitController.layoutSnapshot() for pixel geometry and
  ghostty_surface_size() for terminal grid dimensions

CLI side:
- tmuxEnrichContextWithGeometry() computes character-cell positions
  from pixel frames and cell dimensions for tmux format variables
  (pane_width, pane_height, pane_left, pane_top, pane_active,
  window_width, window_height)
- list-panes now resolves pane targets (%uuid) via tmuxResolvePaneTarget
  instead of failing with "Workspace not found"
- display-message enriched with geometry for format strings like
  #{pane_width},#{window_width}
- tmux -V now returns "tmux 3.4" (needed by oh-my-openagent's
  tmux-path-resolver verification)

* Add socket tests for tmux-compat pane geometry

6 tests verifying the geometry enrichment works end-to-end:
- pane.list returns pixel_frame, columns, rows, cell_size, container_frame
- tmux -V returns version string
- list-panes -F renders geometry format variables as integers
- list-panes -t %<uuid> resolves pane targets
- display -p renders pane_width and window_width
- After split, two panes have different positions and halved widths

All 6 pass on macmini (cmux-macmini).

* Handle tmux -V in shim script directly (no socket needed)

oh-my-openagent's tmux-path-resolver runs tmux -V to verify the binary
works. The __tmux-compat handler requires a socket connection, which
may not be established at verification time. Handle -V in the bash
shim directly to avoid the socket dependency.

* Lower default tmux pane min widths for cmux omo

oh-my-openagent defaults: main_pane_min_width=120, agent_pane_min_width=40,
requiring 161+ columns. Most terminal windows are narrower, causing
decideSpawnActions to return canSpawn=false and defer agents forever.

cmux omo now sets: main_pane_min_width=60, agent_pane_min_width=30,
main_pane_size=50, requiring only 91 columns. Also moved tmux -V
handling into the bash shim to avoid needing a socket connection for
the version check.

* Resolve merge conflicts with main (main-vertical layout, focus param)

- Keep upstream main-vertical layout anchoring from #2119
- Keep upstream focus param (v2Bool) instead of no_focus
- Combine with our -d flag handling: -d sets focus=false
- Include customCommands nav item from main

* Implement select-layout equalize and resize-pane absolute width

When oh-my-openagent spawns agent panes, it calls select-layout
main-vertical after each split to redistribute panes evenly, then
resize-pane -x <columns> to set the main pane width. Both were
previously no-ops, causing cascading uneven splits.

Server side:
- Add workspace.equalize_splits v2 API that calls the existing
  TabManager.equalizeSplits (sets all dividers to 0.5)

CLI side:
- select-layout now calls workspace.equalize_splits before tracking
  main-vertical state
- resize-pane -x <columns> without directional flags now computes
  the pixel delta from current to desired width and resizes accordingly

* Fix equalize to use proportional divider positions

The previous equalize set all dividers to 0.5, which in a right-
recursive binary tree (from successive splits) gives 50/25/12.5/6.25%
instead of equal sizes.

New algorithm counts leaf panes on each side of each split and sets
the divider to N_left / (N_left + N_right). For 5 panes in a chain:
1/5, 1/4, 1/3, 1/2, giving each pane exactly 20%.

* Fix select-layout main-vertical to only equalize vertical splits

The proportional equalize was treating the top-level horizontal split
(main vs agent column) the same as vertical splits, setting the main
pane to 1/6 of the window with 5 agents.

For main-vertical layout, only equalize vertical splits (the agent
column), leaving the horizontal main/agent divider untouched. The
subsequent resize-pane -x handles the main pane width.

workspace.equalize_splits now accepts an optional orientation filter
("vertical" or "horizontal") to scope which splits get equalized.

* Re-equalize agent column after kill-pane

* Address PR review comments

- Fix cmux omo --help: remove omo from the help-bypass guard so
  --help shows usage text instead of trying to launch opencode
- Don't overwrite unreadable opencode.json: fail with an error
  instead of silently resetting to empty config
- Drain installer pipes concurrently before waitUntilExit to
  prevent deadlock from full pipe buffers during bun/npm install

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-26 16:07:59 -07:00

670 lines
69 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"meta": {
"title": "cmux — Терминал для многозадачности",
"description": "Нативный терминал macOS на базе Ghostty. Работает с Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider и любым CLI-инструментом. Вертикальные вкладки, кольца уведомлений, разделённые панели и socket API.",
"ogDescription": "Нативный терминал macOS для ИИ-агентов программирования. Работает с Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider и любым CLI-инструментом."
},
"common": {
"downloadForMac": "Скачать для Mac",
"viewOnGitHub": "Смотреть на GitHub",
"closeMenu": "Закрыть меню",
"openMenu": "Открыть меню",
"toggleTheme": "Переключить тему",
"backToBlog": "Назад к блогу",
"readTheDocs": "Читать документацию",
"viewChangelog": "Смотреть историю изменений"
},
"nav": {
"docs": "Документация",
"blog": "Блог",
"changelog": "Изменения",
"community": "Сообщество",
"github": "GitHub"
},
"footer": {
"product": "Продукт",
"resources": "Ресурсы",
"legal": "Юридическое",
"social": "Соцсети",
"blog": "Блог",
"community": "Сообщество",
"docs": "Документация",
"changelog": "Изменения",
"privacy": "Конфиденциальность",
"terms": "Условия",
"eula": "EULA",
"github": "GitHub",
"twitter": "X / Twitter",
"discord": "Discord",
"contact": "Контакты",
"nightly": "Ночные сборки",
"copyright": "© {year} Manaflow",
"language": "Язык"
},
"home": {
"taglinePrefix": "Терминал, созданный для ",
"typingCodingAgents": "код-агентов",
"typingMultitasking": "многозадачности",
"subtitle": "Нативное macOS-приложение на базе Ghostty. Вертикальные вкладки, кольца уведомлений когда агенты ждут внимания, разделённые панели и socket API для автоматизации.",
"features": "Возможности",
"faq": "FAQ",
"communitySection": "Сообщество",
"feature": {
"verticalTabs": "Вертикальные вкладки",
"verticalTabsDesc": ": боковая панель показывает ветку git, рабочую директорию, порты и текст уведомлений",
"notificationRings": "Кольца уведомлений",
"notificationRingsDesc": ": панели подсвечиваются когда агенты ждут внимания",
"inAppBrowser": "Встроенный браузер",
"inAppBrowserDesc": ": открой браузер рядом с терминалом со скриптуемым API",
"splitPanes": "Разделённые панели",
"splitPanesDesc": ": горизонтальные и вертикальные разделения внутри каждой вкладки",
"scriptable": "Скриптуемый",
"scriptableDesc": ": CLI и socket API для автоматизации и скриптов",
"gpuAccelerated": "GPU-ускорение",
"gpuAcceleratedDesc": ": на базе libghostty для плавного рендеринга",
"lightweight": "Лёгкий",
"lightweightDesc": ": нативный Swift + AppKit, без Electron",
"keyboardShortcuts": "Горячие клавиши",
"keyboardShortcutsDesc": ": <link>обширные шорткаты</link> для рабочих пространств, разделений, браузера и не только"
},
"faqGhosttyQ": "Как cmux связан с Ghostty?",
"faqGhosttyA": "cmux не является форком Ghostty. Он использует <link>libghostty</link> как библиотеку для рендеринга терминала, так же как приложения используют WebKit для веб-представлений. Ghostty это самостоятельный терминал; cmux это другое приложение, построенное на его движке рендеринга.",
"faqPlatformQ": "Какие платформы поддерживаются?",
"faqPlatformA": "Только macOS, пока что. cmux это нативное приложение на Swift + AppKit.",
"faqAgentsQ": "С какими агентами для кода работает cmux?",
"faqAgentsA": "Со всеми. cmux это терминал, поэтому любой агент, работающий в терминале, работает из коробки: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent и всё остальное, что можно запустить из командной строки.",
"faqNotificationsQ": "Как работают уведомления?",
"faqNotificationsA": "Когда процесс требует внимания, cmux показывает кольца уведомлений вокруг панелей, бейджи непрочитанных на боковой панели, поповер уведомлений и десктопное уведомление macOS. Они срабатывают автоматически через стандартные escape-последовательности терминала (OSC 9/99/777), или ты можешь вызвать их через <cliLink>cmux CLI</cliLink> и <hooksLink>Claude Code hooks</hooksLink>.",
"faqShortcutsQ": "Можно настроить горячие клавиши?",
"faqShortcutsA": "Привязки клавиш терминала читаются из конфига Ghostty (<configPath>~/.config/ghostty/config</configPath>). Шорткаты, специфичные для cmux (рабочие пространства, разделения, браузер, уведомления), настраиваются в Настройках. Смотри <link>шорткаты по умолчанию</link> для полного списка.",
"faqTmuxQ": "Чем отличается от tmux?",
"faqTmuxA": "tmux это мультиплексор терминала, который работает внутри любого терминала. cmux это нативное macOS-приложение с GUI: вертикальные вкладки, разделённые панели, встроенный браузер и socket API уже встроены. Не нужны конфиг-файлы или prefix-клавиши.",
"faqFreeQ": "cmux бесплатный?",
"faqFreeA": "Да, cmux бесплатный. Исходный код доступен на <link>GitHub</link>."
},
"community": {
"title": "Сообщество",
"description": "Свяжись с другими пользователями cmux и командой разработки.",
"discord": "Discord",
"discordAction": "Присоединяйся к Discord",
"discordDesc": "Общайся с сообществом, получай помощь и делись обратной связью",
"githubAction": "Смотреть на GitHub",
"githubDesc": "Поставь звезду репозиторию, сообщай об ошибках и вноси вклад",
"twitter": "Twitter",
"twitterAction": "Подписаться на X",
"twitterDesc": "Обновления, анонсы и советы",
"youtube": "YouTube",
"youtubeAction": "Подписаться",
"youtubeDesc": "Демо, обучающие материалы и пошаговые руководства",
"linkedin": "LinkedIn",
"linkedinAction": "Подписаться",
"linkedinDesc": "Новости компании и инженерные обновления",
"metaTitle": "Сообщество — cmux",
"metaDescription": "Присоединяйтесь к сообществу cmux в Discord, Twitter, GitHub и других платформах"
},
"blog": {
"title": "Блог",
"layoutTitle": "cmux blog",
"metaTitle": "Блог",
"metaDescription": "Новости и обновления от команды cmux",
"description": "Новости и обновления от команды cmux",
"posts": {
"cmdShiftU": {
"title": "Cmd+Shift+U",
"summary": "Как Cmd+Shift+U навигирует между завершёнными агентами в рабочих пространствах cmux.",
"date": "4 марта 2026",
"p1": "Моя любимая функция cmux это Cmd+Shift+U. У меня сейчас открыто 17 рабочих пространств, каждое запускает агента. Раньше я кликал по вкладкам и панели уведомлений, чтобы понять, что завершилось. Печатать быстрее.",
"p2": "Cmd+Shift+U прыгает к самому свежему непрочитанному <link>уведомлению</link>. На практике это значит последний завершивший работу агент. Переключает на нужное рабочее пространство, фокусирует нужную панель, мигает ей чтобы ты увидел куда смотреть и помечает как прочитанное. Если уведомление пришло из другого окна, то окно выходит на передний план."
},
"zenOfCmux": {
"title": "Дзен cmux",
"summary": "cmux это примитив, а не решение. Он даёт тебе составные части, а рабочий процесс ты определяешь сам.",
"date": "27 февраля 2026",
"p1": "cmux не навязывает разработчикам как использовать инструменты. Это терминал и браузер с CLI, а дальше решаешь ты.",
"p2": "cmux это примитив, а не решение. Он даёт тебе терминал, браузер, уведомления, рабочие пространства, разделения, вкладки и CLI для управления всем этим. cmux не заставляет использовать агентов для кода каким-то определённым образом. То, что ты построишь из примитивов, принадлежит тебе.",
"p3": "Лучшие разработчики всегда создавали собственные инструменты. Никто пока не нашёл лучший способ работы с агентами, и команды, создающие закрытые продукты, тем более нет. Разработчики, ближе всего к своим кодовым базам, разберутся первыми.",
"p4": "Дай миллиону разработчиков составные примитивы, и они коллективно найдут самые эффективные рабочие процессы быстрее, чем любая продуктовая команда смогла бы спроектировать сверху вниз."
},
"showHnLaunch": {
"title": "Запуск cmux на Show HN",
"summary": "cmux попал на #2 на Hacker News, его расшарил Mitchell Hashimoto, и он стал вирусным в Японии.",
"date": "21 февраля 2026",
"intro": "Мы опубликовали cmux на <link>Show HN</link> 19 февраля:",
"blockquote1": "Я запускаю много сессий Claude Code и Codex параллельно. Использовал Ghostty с кучей разделённых панелей и полагался на нативные уведомления macOS, чтобы знать когда агент меня ждёт. Но тело уведомления Claude Code это всегда просто \"Claude is waiting for your input\" без контекста, а с достаточным количеством открытых вкладок я уже не мог прочитать даже заголовки.",
"blockquote2": "Я попробовал несколько оркестраторов для кода, но большинство были Electron/Tauri приложениями и производительность меня раздражала. Я просто предпочитаю терминал, потому что GUI-оркестраторы привязывают к своему рабочему процессу. Поэтому я сделал cmux как нативное macOS-приложение на Swift/AppKit. Оно использует libghostty для рендеринга терминала и читает твой существующий конфиг Ghostty для тем, шрифтов, цветов и прочего.",
"blockquote3": "Основные дополнения это боковая панель и система уведомлений. Боковая панель имеет вертикальные вкладки, показывающие ветку git, рабочую директорию, слушающие порты и последний текст уведомления для каждого рабочего пространства. Система уведомлений ловит терминальные последовательности (OSC 9/99/777) и имеет CLI (cmux notify), который можно подключить к хукам агентов для Claude Code, OpenCode и т.д. Когда агент ждёт, его панель получает синее кольцо и вкладка подсвечивается на боковой панели, так что я вижу какой из них меня ждёт среди разделений и вкладок. Cmd+Shift+U прыгает к самому свежему непрочитанному.",
"blockquote4": "Встроенный браузер имеет скриптуемый API. Агенты могут сделать снимок дерева доступности, получить ссылки на элементы, кликать, заполнять формы, выполнять JS и читать логи консоли. Можно разделить панель браузера рядом с терминалом и дать Claude Code взаимодействовать с твоим dev-сервером напрямую.",
"blockquote5": "Всё скриптуется через CLI и socket API: создание рабочих пространств/вкладок, разделение панелей, отправка нажатий клавиш, открытие URL-ов в браузере.",
"hitNumber2": "На пике попал на #2 на Hacker News. Mitchell Hashimoto расшарил его:",
"favoriteComment": "Мой любимый комментарий из <link>ветки HN</link>:",
"viralJapan": "Неожиданно cmux стал вирусным в Японии:",
"translation": "Перевод: \"Выглядит хорошо. Терминальное приложение на базе Ghostty, спроектированное чтобы не потеряться при параллельном запуске нескольких CLI вроде Claude Code. Панель ожидающая ввода получает синюю рамку, и есть собственная система уведомлений.\"",
"viralChina": "И полу-вирусный в Китае:",
"extensions": "Ещё одна крутая штука, это видеть как люди строят поверх cmux CLI. sasha сделал расширение pi-cmux, которое показывает информацию о модели, использование токенов и состояние агента на боковой панели:",
"scriptable": "Всё в cmux скриптуется через CLI: создание рабочих пространств, отправка нажатий клавиш, управление браузером, чтение уведомлений. Часть философии cmux это быть программируемым и составным, чтобы люди могли настроить работу с агентами для кода под себя. Состояние дел с агентами для кода меняется быстро, и ты не хочешь быть привязанным к негибкому GUI-оркестратору, который не успевает за изменениями.",
"cta": "Если запускаешь несколько агентов для кода, <link>попробуй cmux</link>."
},
"introducingCmux": {
"title": "Представляем cmux",
"summary": "Нативный macOS-терминал на базе Ghostty, спроектированный для параллельного запуска нескольких AI-агентов для кода.",
"date": "12 февраля 2026",
"p1": "cmux это нативное терминальное macOS-приложение на базе Ghostty, спроектированное с нуля для разработчиков, которые запускают несколько AI-агентов для кода одновременно.",
"whyTitle": "Зачем cmux?",
"whyP": "Современные рабочие процессы разработки часто включают запуск нескольких агентов одновременно. Claude Code, Codex и другие инструменты, каждый в своём терминале. Отслеживание того, какие из них ждут внимания и быстрое переключение между ними это проблема, которую cmux решает.",
"featuresTitle": "Ключевые возможности",
"getStartedTitle": "Начни",
"getStartedP": "Установи cmux через Homebrew или скачай DMG из <link>руководства по началу работы</link>.",
"featureVerticalTabsLabel": "Вертикальные вкладки",
"featureVerticalTabsDesc": "видишь все терминалы одним взглядом на боковой панели",
"featureNotificationsLabel": "Кольца уведомлений",
"featureNotificationsDesc": "вкладки мигают когда агент ждёт твоего ввода",
"featureSplitPanesLabel": "Разделённые панели",
"featureSplitPanesDesc": "горизонтальные и вертикальные разделения внутри каждого рабочего пространства",
"featureSocketApiLabel": "Socket API",
"featureSocketApiDesc": "программное управление для создания вкладок и отправки ввода",
"featureGpuLabel": "GPU-ускорение",
"featureGpuDesc": "на базе libghostty для плавного рендеринга"
}
},
"zenOfCmux": {
"metaTitle": "Дзен cmux",
"metaDescription": "cmux — это примитив, а не решение. Он даёт вам комбинируемые компоненты, а рабочий процесс — за вами."
},
"cmdShiftU": {
"metaTitle": "Cmd+Shift+U",
"metaDescription": "Новая комбинация клавиш, которая меняет взаимодействие с cmux."
},
"showHnLaunch": {
"metaTitle": "Запуск cmux на Show HN",
"metaDescription": "История запуска cmux на Hacker News."
},
"introducingCmux": {
"metaTitle": "Представляем cmux",
"metaDescription": "Почему мы создали cmux — новый терминал для macOS."
}
},
"docs": {
"layoutTitle": "cmux docs",
"gettingStarted": {
"title": "Начало работы",
"metaDescription": "Установи cmux, нативный macOS-терминал для AI-агентов. Homebrew, скачивание DMG, настройка CLI и автообновления через Sparkle.",
"intro": "cmux это лёгкий нативный macOS-терминал на базе Ghostty для управления несколькими AI-агентами. Вертикальные вкладки, панель уведомлений и API управления на базе socket.",
"install": "Установка",
"dmgRecommended": "DMG (рекомендуется)",
"dmgDesc": "Открой .dmg и перетащи cmux в папку Программы. cmux обновляется автоматически через Sparkle, так что скачать нужно только раз.",
"homebrew": "Homebrew",
"updateLater": "Для обновления позже:",
"firstLaunchCallout": "При первом запуске macOS может попросить подтвердить открытие приложения от идентифицированного разработчика. Нажми <strong>Открыть</strong> чтобы продолжить.",
"verifyTitle": "Проверка установки",
"verifyDesc": "Открой cmux и ты увидишь:",
"verifyItem1": "Окно терминала с вертикальной боковой панелью вкладок слева",
"verifyItem2": "Одно начальное рабочее пространство уже открыто",
"verifyItem3": "Терминал на базе Ghostty готов к вводу",
"cliSetup": "Настройка CLI",
"cliDesc": "cmux включает утилиту командной строки для автоматизации. Внутри терминалов cmux она работает автоматически. Чтобы использовать CLI извне cmux, создай символическую ссылку:",
"cliThen": "Затем можно запускать команды вроде:",
"autoUpdates": "Автообновления",
"autoUpdatesDesc": "cmux проверяет обновления автоматически через Sparkle. Когда обновление доступно, ты увидишь значок обновления в заголовке окна. Можно также проверить вручную через cmux > Check for Updates в строке меню.",
"sessionRestore": "Восстановление сессии (текущее поведение)",
"sessionRestoreDesc": "После перезапуска cmux восстанавливает только компоновку и метаданные:",
"sessionItem1": "Компоновка окон, рабочих пространств и панелей",
"sessionItem2": "Рабочие директории",
"sessionItem3": "Scrollback терминала (по возможности)",
"sessionItem4": "URL браузера и история навигации",
"sessionCallout": "cmux пока не восстанавливает состояние живых процессов. Активные сессии терминальных приложений, таких как Claude Code, tmux и vim, не возобновляются после перезапуска приложения.",
"requirements": "Требования",
"reqItem1": "macOS 14.0 или новее",
"reqItem2": "Apple Silicon или Intel Mac",
"metaTitle": "Начало работы"
},
"concepts": {
"title": "Концепции",
"metaDescription": "Как cmux организует терминалы: окна, рабочие пространства, панели и поверхности. Иерархия за боковой панелью, разделениями и socket API.",
"intro": "cmux организует терминалы в четырёхуровневую иерархию. Понимание этих уровней помогает при работе с socket API, CLI и горячими клавишами.",
"hierarchy": "Иерархия",
"windowTitle": "Окно",
"windowDesc": "Окно macOS. Открой несколько окон с помощью {shortcut}. У каждого окна своя боковая панель с независимыми рабочими пространствами.",
"workspaceTitle": "Рабочее пространство",
"workspaceDesc": "Элемент боковой панели. Каждое рабочее пространство содержит одну или более разделённых панелей. Рабочие пространства это то, что ты видишь на левой боковой панели.",
"workspaceNote": "В интерфейсе и горячих клавишах рабочие пространства часто называются \"вкладками\", потому что ведут себя как вкладки на боковой панели. Socket API и переменные окружения используют термин \"workspace\".",
"contextHeader": "Контекст",
"termUsedHeader": "Используемый термин",
"sidebarUI": "Интерфейс боковой панели",
"tab": "Вкладка",
"keyboardShortcuts": "Горячие клавиши",
"workspaceOrTab": "Рабочее пространство или вкладка",
"socketAPI": "Socket API",
"environmentVariable": "Переменная окружения",
"workspaceShortcuts": "Шорткаты: {new} (новый), {jump} (прыжок), {close} (закрыть), {prevNext} (пред./след.)",
"paneTitle": "Панель",
"paneDesc": "Разделённая область внутри рабочего пространства. Создаётся разделением с помощью {right} (вправо) или {down} (вниз). Навигация между панелями: {nav} + стрелки.",
"paneNote": "Каждая панель может содержать несколько поверхностей (вкладок внутри панели).",
"surfaceTitle": "Поверхность",
"surfaceDesc": "Вкладка внутри панели. У каждой панели своя полоса вкладок и она может содержать несколько поверхностей. Создаётся через {new}, навигация через {prev} / {next} или {jump}.",
"surfaceNote": "Поверхности это отдельные сессии терминала или браузера, с которыми ты взаимодействуешь. У каждой поверхности своя переменная окружения CMUX_SURFACE_ID.",
"panelTitle": "Панель",
"panelDesc": "Содержимое внутри поверхности. Сейчас два типа:",
"panelTerminal": "Терминал: сессия терминала Ghostty",
"panelBrowser": "Браузер: встроенный веб-вид",
"panelNote": "Панель это в основном внутренняя концепция. В socket API и CLI ты взаимодействуешь с поверхностями, а не напрямую с панелями.",
"visualExample": "Визуальный пример",
"visualExampleDesc": "В этом примере:",
"visualItem1": "Окно содержит боковую панель с тремя рабочими пространствами (dev, server, logs)",
"visualItem2": "Рабочее пространство \"dev\" выбрано, показывает две панели рядом",
"visualItem3": "Панель 1 имеет две поверхности ([S1] и [S2] на полосе вкладок), с активной S1",
"visualItem4": "Панель 2 имеет одну поверхность",
"visualItem5": "Каждая поверхность содержит панель (в данном случае терминал)",
"summary": "Итого",
"levelHeader": "Уровень",
"whatItIsHeader": "Что это",
"createdByHeader": "Создаётся",
"identifiedByHeader": "Идентифицируется",
"macosWindow": "Окно macOS",
"sidebarEntry": "Элемент боковой панели",
"splitRegion": "Разделённая область",
"tabWithinPane": "Вкладка в панели",
"terminalOrBrowser": "Терминал или браузер",
"automatic": "Автоматически",
"paneIdSocket": "ID панели (socket API)",
"panelIdInternal": "ID панели (внутренний)",
"metaTitle": "Концепции"
},
"configuration": {
"title": "Конфигурация",
"metaDescription": "Настрой cmux через конфиг-файлы Ghostty. Шрифт, тема, цвета, стиль разделённых панелей, scrollback и настройки приложения для режима автоматизации.",
"intro": "cmux читает конфигурацию из конфиг-файлов Ghostty, предоставляя знакомые опции если ты переходишь с Ghostty.",
"configLocations": "Расположение конфиг-файлов",
"configLocationsDesc": "cmux ищет конфигурацию в этих расположениях (по порядку):",
"createConfig": "Создай конфиг-файл если он не существует:",
"appearance": "Внешний вид",
"font": "Шрифт",
"colors": "Цвета",
"splitPanes": "Разделённые панели",
"behavior": "Поведение",
"scrollback": "Scrollback",
"workingDirectory": "Рабочая директория",
"appSettings": "Настройки приложения",
"appSettingsDesc": "Настройки в приложении доступны через cmux > Settings ({shortcut}):",
"themeMode": "Режим темы",
"themeSystem": "Системный: следует за внешним видом macOS",
"themeLight": "Светлый: всегда светлая тема",
"themeDark": "Тёмный: всегда тёмная тема",
"automationMode": "Режим автоматизации",
"automationModeDesc": "Уровень доступа к сокету:",
"automationOff": "Выключен: нет управления через socket (самый безопасный)",
"automationCmux": "Только процессы cmux: только процессы, запущенные внутри терминалов cmux, могут подключаться",
"automationAll": "allowAll: любой локальный процесс может подключиться (CMUX_SOCKET_MODE=allowAll, только через переменную окружения)",
"automationCallout": "На общих машинах используй режим \"Выключен\" или \"Только процессы cmux\".",
"browserLinkBehavior": "Поведение ссылок браузера",
"browserLinkDesc": "В Настройки > Браузер, cmux предоставляет два списка хостов с разными целями:",
"browserHostsEmbed": "Хосты для открытия во встроенном браузере: применяется к ссылкам, нажатым в выводе терминала. Хосты из этого списка открываются в cmux; остальные хосты открываются в твоём браузере по умолчанию. Поддерживает один хост или wildcard на строку (например: example.com, *.internal.example).",
"browserHostsHttp": "HTTP-хосты, разрешённые во встроенном браузере: применяется только к HTTP (не HTTPS) URL-ам. Хосты из этого списка могут открываться в cmux без предупреждения. По умолчанию включают localhost, 127.0.0.1, ::1, 0.0.0.0 и *.localtest.me.",
"exampleConfig": "Пример конфигурации",
"metaTitle": "Конфигурация"
},
"customCommands": {
"title": "Пользовательские команды",
"metaTitle": "Пользовательские команды",
"metaDescription": "Определяйте пользовательские команды и макеты рабочего пространства в cmux.json. Конфигурация для каждого проекта и глобальная с живым отслеживанием файлов.",
"intro": "Определяйте пользовательские команды и макеты рабочего пространства, добавив файл cmux.json в корень вашего проекта или ~/.config/cmux/. Команды отображаются в палитре команд.",
"fileLocations": "Расположение файлов",
"fileLocationsDesc": "cmux ищет конфигурацию в двух местах:",
"localConfig": "Для проекта:",
"localConfigDesc": "находится в каталоге проекта, имеет приоритет",
"globalConfig": "Глобально:",
"globalConfigDesc": "применяется ко всем проектам, дополняет команды, не определённые локально",
"precedenceNote": "Локальные команды переопределяют глобальные команды с тем же именем.",
"liveReload": "Изменения применяются автоматически — перезапуск не требуется.",
"schema": "Схема",
"schemaDesc": "Файл cmux.json содержит массив commands. Каждая команда — это либо простая команда shell, либо полное определение рабочего пространства:",
"simpleCommands": "Простые команды",
"simpleCommandsDesc": "Простая команда выполняет команду shell в текущем сфокусированном терминале:",
"simpleCommandFields": "Поля",
"fieldName": "Отображается в палитре команд (обязательно)",
"fieldDescription": "Необязательное описание",
"fieldKeywords": "Дополнительные поисковые термины для палитры команд",
"fieldCommand": "Команда shell для выполнения в сфокусированном терминале",
"fieldConfirm": "Показать диалог подтверждения перед выполнением",
"simpleCommandCwdNote": "Простые команды выполняются в текущей рабочей директории активного терминала. Если команда использует пути относительно проекта, добавьте префикс",
"simpleCommandCwdRepoRoot": "для запуска из корня репозитория, или",
"simpleCommandCwdCustomPath": "для любой конкретной директории.",
"workspaceCommands": "Команды рабочего пространства",
"workspaceCommandsDesc": "Команда рабочего пространства создаёт новое рабочее пространство с настраиваемым макетом из разделений, терминалов и панелей браузера:",
"workspaceFields": "Поля рабочего пространства",
"wsFieldName": "Имя вкладки рабочего пространства (по умолчанию — имя команды)",
"wsFieldCwd": "Рабочий каталог для рабочего пространства",
"wsFieldColor": "Цвет вкладки рабочего пространства",
"wsFieldLayout": "Дерево макета, определяющее разделения и панели",
"restartBehavior": "Поведение при перезапуске",
"restartBehaviorDesc": "Управляет тем, что происходит, когда рабочее пространство с тем же именем уже существует:",
"restartIgnore": "Переключиться на существующее рабочее пространство (по умолчанию)",
"restartRecreate": "Закрыть и пересоздать без запроса",
"restartConfirm": "Спросить пользователя перед пересозданием",
"layoutTree": "Дерево макета",
"layoutTreeDesc": "Дерево макета определяет расположение панелей с помощью рекурсивных узлов разделения:",
"splitNode": "Узел разделения",
"splitNodeDesc": "Делит пространство на двух потомков:",
"or": "или",
"splitPosition": "Положение разделителя от 0.1 до 0.9 (по умолчанию 0.5)",
"splitChildren": "Ровно два дочерних узла (разделение или панель)",
"paneNode": "Узел панели",
"paneNodeDesc": "Листовой узел, содержащий одну или несколько поверхностей (вкладки внутри панели).",
"surfaceDefinition": "Определение поверхности",
"surfaceDefinitionDesc": "Каждая поверхность в панели может быть терминалом или браузером:",
"surfaceName": "Пользовательский заголовок вкладки",
"surfaceCommand": "Команда shell для автоматического запуска при создании (только терминал)",
"surfaceCwd": "Рабочий каталог для этой поверхности",
"surfaceEnv": "Переменные среды в виде пар ключ-значение",
"surfaceUrl": "URL для открытия (только браузер)",
"surfaceFocus": "Сфокусироваться на этой поверхности после создания",
"cwdResolution": "Определение рабочего каталога",
"omitted": "опущено",
"cwdRelative": "рабочий каталог рабочего пространства",
"cwdSubdir": "относительно рабочего каталога рабочего пространства",
"cwdHome": "расширено до домашнего каталога",
"absolutePath": "Абсолютный путь",
"cwdAbsolute": "используется как есть",
"fullExample": "Полный пример"
},
"keyboardShortcuts": {
"title": "Горячие клавиши",
"description": "Все горячие клавиши в cmux, сгруппированные по категориям.",
"metaDescription": "Все горячие клавиши cmux для рабочих пространств, поверхностей, разделённых панелей, браузера, уведомлений, поиска и управления окнами на macOS.",
"searchPlaceholder": "Поиск по горячим клавишам...",
"searchLabel": "Поиск горячих клавиш",
"noResults": "Горячие клавиши не найдены",
"noResultsHint": "Попробуйте другой запрос",
"cat": {
"workspaces": "Рабочие пространства",
"workspacesBlurb": "Рабочие пространства находятся на боковой панели. У каждого свой набор панелей и поверхностей.",
"surfaces": "Поверхности",
"surfacesBlurb": "Поверхности — это вкладки внутри панели.",
"splitPanes": "Разделённые панели",
"browser": "Браузер",
"notifications": "Уведомления",
"find": "Поиск",
"terminal": "Терминал",
"window": "Окно"
},
"sc": {
"ws-new": "Новое рабочее пространство",
"ws-prev": "Предыдущее рабочее пространство",
"ws-next": "Следующее рабочее пространство",
"ws-jump-1-8": "Перейти к рабочему пространству 18",
"ws-jump-last": "Перейти к последнему рабочему пространству",
"ws-close": "Закрыть рабочее пространство",
"ws-rename": "Переименовать рабочее пространство",
"sf-new": "Новая поверхность",
"sf-prev-1": "Предыдущая поверхность",
"sf-prev-2": "Предыдущая поверхность",
"sf-jump-1-8": "Перейти к поверхности 18",
"sf-jump-last": "Перейти к последней поверхности",
"sf-close": "Закрыть поверхность",
"sp-right": "Разделить вправо",
"sp-down": "Разделить вниз",
"sp-focus": "Фокус на панель по направлению",
"sp-browser-right": "Разделить браузер вправо",
"sp-browser-down": "Разделить браузер вниз",
"br-open": "Открыть поверхность браузера",
"br-addr": "Фокус на адресную строку",
"br-forward": "Вперёд",
"br-reload": "Перезагрузить страницу",
"br-devtools": "Открыть инструменты разработчика",
"nt-panel": "Показать панель уведомлений",
"nt-latest": "Перейти к последнему непрочитанному",
"nt-flash": "Вызвать вспышку",
"fd-find": "Найти",
"fd-next-prev": "Найти следующий / предыдущий",
"fd-hide": "Скрыть панель поиска",
"fd-selection": "Использовать выделение для поиска",
"tm-clear": "Очистить scrollback",
"tm-copy": "Копировать (с выделением)",
"tm-paste": "Вставить",
"tm-font": "Увеличить / уменьшить шрифт",
"tm-reset": "Сбросить размер шрифта",
"wn-new": "Новое окно",
"wn-settings": "Настройки",
"wn-reload": "Перезагрузить конфигурацию",
"wn-quit": "Выход"
},
"metaTitle": "Горячие клавиши"
},
"api": {
"title": "Справочник API",
"metaDescription": "Справочник cmux CLI и Unix socket API. Управление рабочими пространствами, разделённые панели, управление вводом, уведомления, метаданные боковой панели, переменные окружения и методы обнаружения.",
"intro": "cmux предоставляет и CLI-утилиту, и Unix socket для программного управления. Каждая команда доступна через оба интерфейса.",
"socket": "Socket",
"buildHeader": "Сборка",
"pathHeader": "Путь",
"release": "Release",
"debug": "Debug",
"taggedDebug": "Тегированная debug-сборка",
"socketOverride": "Переопределить переменной окружения CMUX_SOCKET_PATH. Отправляй один JSON-запрос с переводом строки за вызов:",
"socketCallout": "JSON socket-запросы должны использовать method и params. Устаревшие v1 JSON-форматы типа <legacy>'{'\"command\":\"...\"'}'</legacy> не поддерживаются.",
"accessModes": "Режимы доступа",
"modeHeader": "Режим",
"descriptionHeader": "Описание",
"howToEnableHeader": "Как включить",
"offMode": "Socket отключён",
"offEnable": "Интерфейс настроек или CMUX_SOCKET_MODE=off",
"cmuxOnlyMode": "Только процессы, запущенные внутри терминалов cmux, могут подключаться.",
"cmuxOnlyEnable": "Режим по умолчанию в интерфейсе настроек",
"allowAllMode": "Любой локальный процесс может подключиться (без проверки происхождения).",
"allowAllEnable": "Только через переменную окружения: CMUX_SOCKET_MODE=allowAll",
"accessCallout": "На общих машинах используй Выключен или Только процессы cmux.",
"cliOptions": "Опции CLI",
"flagHeader": "Флаг",
"customSocketPath": "Пользовательский путь к сокету",
"outputJson": "Вывод в формате JSON",
"targetWindow": "Указать конкретное окно",
"targetWorkspace": "Указать конкретное рабочее пространство",
"targetSurface": "Указать конкретную поверхность",
"idFormat": "Формат идентификаторов в JSON-выводе",
"workspaceCommands": "Команды рабочих пространств",
"listWorkspacesDesc": "Список всех открытых рабочих пространств.",
"newWorkspaceDesc": "Создать новое рабочее пространство.",
"selectWorkspaceDesc": "Переключиться на конкретное рабочее пространство.",
"currentWorkspaceDesc": "Получить текущее активное рабочее пространство.",
"closeWorkspaceDesc": "Закрыть рабочее пространство.",
"splitCommands": "Команды разделения",
"newSplitDesc": "Создать новую разделённую панель. Направления: left, right, up, down.",
"listSurfacesDesc": "Список всех поверхностей в текущем рабочем пространстве.",
"focusSurfaceDesc": "Сфокусировать конкретную поверхность.",
"inputCommands": "Команды ввода",
"sendDesc": "Отправить текст в сфокусированный терминал.",
"sendKeyDesc": "Отправить нажатие клавиши. Клавиши: enter, tab, escape, backspace, delete, up, down, left, right.",
"sendSurfaceDesc": "Отправить текст в конкретную поверхность.",
"sendKeySurfaceDesc": "Отправить нажатие клавиши в конкретную поверхность.",
"notificationCommands": "Команды уведомлений",
"notifyDesc": "Отправить уведомление.",
"listNotificationsDesc": "Список всех уведомлений.",
"clearNotificationsDesc": "Очистить все уведомления.",
"sidebarMetadata": "Команды метаданных боковой панели",
"sidebarMetadataDesc": "Устанавливай значки статуса, прогресс-бары и записи лога на боковой панели для любого рабочего пространства. Полезно для скриптов сборки, CI-интеграций и AI-агентов, которые хотят показать состояние на одном взгляде.",
"setStatusDesc": "Установить значок статуса на боковой панели. Используй уникальный ключ, чтобы разные инструменты могли управлять своими записями.",
"clearStatusDesc": "Удалить запись статуса боковой панели по ключу.",
"listStatusDesc": "Список всех записей статуса боковой панели для рабочего пространства.",
"setProgressDesc": "Установить прогресс-бар на боковой панели (0.0 до 1.0).",
"clearProgressDesc": "Очистить прогресс-бар боковой панели.",
"logDesc": "Добавить запись лога на боковую панель. Уровни: info, progress, success, warning, error.",
"clearLogDesc": "Очистить все записи лога боковой панели.",
"listLogDesc": "Список записей лога боковой панели.",
"sidebarStateDesc": "Дамп всех метаданных боковой панели (cwd, ветка git, порты, статус, прогресс, логи).",
"utilityCommands": "Служебные команды",
"pingDesc": "Проверить работает ли cmux и отвечает.",
"capabilitiesDesc": "Список доступных методов сокета и текущего режима доступа.",
"identifyDesc": "Показать контекст сфокусированного окна/рабочего пространства/панели/поверхности.",
"envVariables": "Переменные окружения",
"variableHeader": "Переменная",
"socketPathDesc": "Переопределить путь к сокету для CLI и интеграций",
"socketEnableDesc": "Принудительно включить/отключить сокет (1/0, true/false, on/off)",
"socketModeDesc": "Переопределить режим доступа (cmuxOnly, allowAll, off). Также принимает cmux-only/cmux_only и allow-all/allow_all",
"workspaceIdDesc": "Устанавливается автоматически: ID текущего рабочего пространства",
"surfaceIdDesc": "Устанавливается автоматически: ID текущей поверхности",
"termProgramDesc": "Установлен в ghostty",
"termDesc": "Установлен в xterm-ghostty",
"envCallout": "Устаревшие значения CMUX_SOCKET_MODE full и notifications всё ещё принимаются для совместимости.",
"detectingCmux": "Обнаружение cmux",
"examples": "Примеры",
"pythonClient": "Python-клиент",
"shellScript": "Shell-скрипт",
"buildScriptNotification": "Скрипт сборки с уведомлением",
"metaTitle": "Справочник API"
},
"notifications": {
"title": "Уведомления",
"metaDescription": "Отправляй десктопные уведомления из AI-агентов и скриптов в cmux. CLI, escape-последовательности OSC 99/777 и интеграция с Claude Code hooks.",
"intro": "cmux поддерживает десктопные уведомления, позволяя AI-агентам и скриптам оповещать тебя когда им нужно внимание.",
"lifecycle": "Жизненный цикл",
"received": "Получено: уведомление появляется в панели, десктопный алерт срабатывает (если не подавлен)",
"unread": "Непрочитанное: бейдж показан на вкладке рабочего пространства",
"read": "Прочитанное: убирается когда ты просматриваешь это рабочее пространство",
"cleared": "Очищено: удалено из панели",
"suppression": "Подавление",
"suppressionDesc": "Десктопные алерты подавляются когда:",
"suppressItem1": "Окно cmux сфокусировано",
"suppressItem2": "Конкретное рабочее пространство, отправляющее уведомление, активно",
"suppressItem3": "Панель уведомлений открыта",
"notificationPanel": "Панель уведомлений",
"notificationPanelDesc": "Нажми <openShortcut>⌘⇧I</openShortcut> чтобы открыть панель уведомлений. Кликни на уведомление чтобы перейти к этому рабочему пространству. Нажми <jumpShortcut>⌘⇧U</jumpShortcut> чтобы перейти напрямую к рабочему пространству с самым свежим непрочитанным уведомлением.",
"customCommand": "Пользовательская команда",
"customCommandDesc": "Запускай shell-команду каждый раз когда уведомление запланировано. Задай её в Настройки > Приложение > Команда уведомления. Команда запускается через /bin/sh -c с этими переменными окружения:",
"customCommandNote": "Команда работает независимо от системного выбора звуков. Установи выбор на \"Нет\" чтобы использовать только пользовательскую команду, или оставь оба для системного звука плюс пользовательского действия.",
"sending": "Отправка уведомлений",
"cli": "CLI",
"osc777Title": "OSC 777 (простой)",
"osc777Desc": "Протокол RXVT использует фиксированный формат с заголовком и телом:",
"osc99Title": "OSC 99 (расширенный)",
"osc99Desc": "Протокол Kitty поддерживает подзаголовки и ID уведомлений:",
"variableHeader": "Переменная",
"descriptionHeader": "Описание",
"envTitle": "Заголовок уведомления (имя рабочего пространства или приложения)",
"envSubtitle": "Подзаголовок уведомления",
"envBody": "Текст уведомления",
"cmpTitleBody": "Заголовок + текст",
"cmpSubtitle": "Подзаголовок",
"cmpNotificationId": "ID уведомления",
"cmpComplexity": "Сложность",
"cmpYes": "Да",
"cmpNo": "Нет",
"cmpHigher": "Выше",
"cmpLower": "Ниже",
"featureHeader": "Функция",
"comparisonCallout": "Используй OSC 777 для простых уведомлений. Используй OSC 99 когда нужны подзаголовки или ID уведомлений. Используй CLI (cmux notify) для самой простой интеграции.",
"claudeCodeHooks": "Claude Code hooks",
"claudeCodeHooksDesc": "cmux интегрируется с <link>Claude Code</link> через hooks чтобы уведомлять тебя когда задачи завершаются.",
"createHookScript": "1. Создай скрипт хука",
"configureClaude": "2. Настрой Claude Code",
"restartNote": "Перезапусти Claude Code чтобы применить хуки.",
"copilotCliHooks": "GitHub Copilot CLI",
"copilotCliHooksDesc": "Copilot CLI поддерживает <link>хуки</link>, которые выполняют shell-команды при событиях жизненного цикла, таких как отправка промпта, остановка агента и ошибки.",
"copilotCliRepoHooks": "Для хуков на уровне репозитория создайте файл .github/hooks/notify.json с аналогичной структурой:",
"integrationExamples": "Примеры интеграций",
"notifyAfterLong": "Уведомление после долгой команды",
"python": "Python",
"nodejs": "Node.js",
"tmuxPassthrough": "tmux passthrough",
"tmuxDesc": "Если используешь tmux внутри cmux, включи passthrough:",
"metaTitle": "Уведомления"
},
"browserAutomation": {
"title": "Автоматизация браузера",
"metaDescription": "Справочник команд cmux browser для навигации, взаимодействия с DOM, ожидания, инспекции, выполнения JavaScript, вкладок, диалогов, фреймов, загрузок и состояния браузера.",
"intro": "Группа команд cmux browser предоставляет автоматизацию браузера над поверхностями браузера cmux. Используй для навигации, взаимодействия с DOM-элементами, инспекции состояния страницы, выполнения JavaScript и управления данными сессии браузера.",
"commandIndex": "Индекс команд",
"categoryHeader": "Категория",
"subcommandsHeader": "Подкоманды",
"navAndTargeting": "Навигация и таргетинг",
"waiting": "Ожидание",
"domInteraction": "Взаимодействие с DOM",
"inspection": "Инспекция",
"jsAndInjection": "JavaScript и инъекция",
"framesDialogsDownloads": "Фреймы, диалоги, загрузки",
"stateAndSession": "Состояние и данные сессии",
"tabsAndLogs": "Вкладки и логи",
"targetingSurface": "Указание поверхности браузера",
"targetingDesc": "Большинство подкоманд требуют целевую поверхность. Можно передать позиционно или через --surface.",
"navigation": "Навигация",
"waitingSection": "Ожидание",
"waitingDesc": "Используй wait для блокировки до выполнения условия: селекторы, текст, фрагменты URL, состояние загрузки или JavaScript-условие.",
"domSection": "Взаимодействие с DOM",
"domDesc": "Мутирующие действия поддерживают --snapshot-after для быстрой верификации в скриптах.",
"inspectionSection": "Инспекция",
"inspectionDesc": "Используй структурированные геттеры для скриптов и снапшоты/скриншоты для просмотра человеком.",
"jsSection": "Выполнение и инъекция JavaScript",
"stateSection": "Состояние",
"stateDesc": "Команды данных сессии покрывают куки, локальное/сессионное хранилище и полные снапшоты состояния браузера.",
"tabsSection": "Вкладки",
"tabsDesc": "Операции с вкладками браузера отображаются на поверхности браузера в активной группе вкладок.",
"consoleSection": "Консоль и ошибки",
"dialogsSection": "Диалоги",
"framesSection": "Фреймы",
"downloadsSection": "Загрузки",
"commonPatterns": "Типичные паттерны",
"patternNavigate": "Навигация, ожидание, инспекция",
"patternForm": "Заполнение формы и проверка текста успеха",
"patternDebug": "Захват debug-артефактов при ошибке",
"patternSession": "Сохранение и восстановление сессии браузера",
"metaTitle": "Автоматизация браузера"
},
"changelog": {
"title": "История изменений",
"metaDescription": "Заметки о релизах cmux и история версий. Новые функции, исправления ошибок и изменения для нативного macOS-терминала.",
"metaTitle": "Журнал изменений"
},
"navItems": {
"gettingStarted": "Начало работы",
"concepts": "Концепции",
"configuration": "Конфигурация",
"customCommands": "Пользовательские команды",
"keyboardShortcuts": "Горячие клавиши",
"apiReference": "Справочник API",
"browserAutomation": "Автоматизация браузера",
"notifications": "Уведомления",
"agentIntegrations": "Agent Integrations",
"claudeCodeTeams": "Claude Code Teams",
"ohMyOpenCode": "oh-my-opencode",
"changelog": "Изменения"
}
},
"legal": {
"privacyPolicy": "Политика конфиденциальности",
"termsOfService": "Условия использования",
"eula": "EULA"
},
"wallOfLove": {
"title": "Стена любви",
"description": "Что люди говорят о cmux."
},
"testimonials": {
"mitchellh": "Очередной день, очередной проект на libghostty, на этот раз терминал для macOS с вертикальными вкладками, лучшей организацией/уведомлениями, встроенным/скриптуемым браузером, специально для тех, кто активно использует агентские workflow из терминала.",
"schrockn": "Это именно тот продукт, который я искал. Через два часа утром я влюбился.",
"egrefen": "Использовал это всё выходные и это потрясающе.",
"max4c": "это был мой любимый инструмент последние две недели",
"asaza": "cmux выглядит так хорошо, что, может, наконец пора попрощаться с VSCode",
"johnthedebs": "Привет, выглядит реально круто. Нравятся идеи, конкретно: программируемость, слоистый UI, браузер с API. Жду не дождусь попробовать. И хочу добавить, что очень ценю Mitchell Hashimoto за создание libghostty; ощущается как захватывающее время для пользователей терминала.",
"joeriddles": "Вертикальные вкладки в моём терминале! Я раньше об этом даже не думал. Использую и обожаю вертикальные вкладки Firefox.",
"dchu17": "Попробовал и это довольно интуитивно. Хорошая работа!",
"afruth": "Мне нравится, использовал целый день на трёх параллельных проектах, каждый с несколькими worktree. В связке с lazygit и yazi / nvim стал чуть продуктивнее обычного, без необходимости гоняться за несколькими экземплярами ghostty / iTerm. Также ощущается естественнее чем tmux.",
"northprint": "Попробовал cmux потому что выглядел хорошо, и он хорош",
"indykish": "cmux довольно хорош.",
"kataring": "Перешёл на cmux.dev",
"scottw": "Невероятно полезная находка. Рекомендую всем.",
"johnblythe": "скачал на выходных и полюбил. ждал чего-то подобного.",
"bchris91": "Это именно то, что я хотел. Потрясающая работа, спасибо!",
"connorelsea": "Использую неделю и это фантастика. Вертикальная вкладка для каждой текущей задачи. Внутри Claude с одной стороны и браузер с PR и ресурсами с другой, переключаюсь между задачами и остаюсь организованным. Сочетай это со скиллами чтобы Claude рекурсивно следил за CI и т.д. чувствую себя просветлённым честно говоря",
"tonkotsuboy": "В начале года перешёл с Warp на Ghostty, а теперь перешёл на cmux. Вертикальные вкладки удобны, и ценю уведомления когда задачи Claude Code завершаются. Он на базе Ghostty, так что молниеносная скорость сохраняется. Отображение веток и автодополнения, которые я настроил в Ghostty, тоже работают."
},
"nightly": {
"title": "cmux NIGHTLY",
"subtitle": "Актуальные сборки из ветки main",
"metaTitle": "cmux NIGHTLY — Ночные сборки",
"metaDescription": "Скачайте cmux NIGHTLY — отдельное приложение, автоматически собираемое из последнего коммита в main. Работает параллельно со стабильной версией с собственными автообновлениями.",
"description": "cmux NIGHTLY автоматически собирается из последнего коммита в main. У него собственный bundle ID, поэтому он работает параллельно со стабильной версией без конфликтов. Используйте его для тестирования новых функций до релиза.",
"download": "Скачать NIGHTLY для Mac",
"warning": "Ночные сборки могут содержать ошибки или незавершённые функции. Если что-то сломалось, сообщите на <githubLink>GitHub</githubLink> или в <discordLink>#nightly-bugs в Discord</discordLink> и переключитесь на стабильную версию."
},
"languageSwitcher": {
"label": "Язык"
}
}