agent-ecosystem/src/features/localization/renderer/locales/ru/team.json
2026-05-28 18:36:34 +03:00

2487 lines
138 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.

{
"activity": {
"actions": {
"createTaskFromMessage": "Создать задачу из сообщения",
"editMessage": "Редактировать сообщение",
"expandMessage": "Развернуть сообщение",
"replyToMessage": "Ответить на сообщение",
"restartTeam": "Перезапустить команду"
},
"authError": {
"description": "Не удалось пройти authentication. Перезапуск команды обновит session и может исправить проблему. Если ошибка повторится, проверьте API credentials или попробуйте позже."
},
"automation": {
"reviewPickup": "Teammate получил просьбу забрать review",
"stallNudge": "Teammate получил просьбу продолжить stalled task",
"workSyncBody": "Teammate получил просьбу синхронизировать текущую работу"
},
"badges": {
"automation": "automation",
"bootstrap": "bootstrap",
"command": "command",
"comment": "Комментарий",
"live": "live",
"note": "note",
"rateLimited": "Rate limit",
"restart": "restart",
"result": "result",
"session": "session",
"stallNudge": "stall nudge",
"start": "start",
"workSync": "work sync",
"agentError": "Ошибка агента",
"apiError": "Ошибка API"
},
"bootstrap": {
"acknowledged": "Bootstrap подтверждён",
"restarting": "Перезапуск teammate",
"starting": "Запуск teammate"
},
"rawJson": "Raw JSON",
"unread": "Непрочитано",
"thoughts": {
"count": "{{count}} мыслей",
"count_one": "{{count}} мысль",
"count_few": "{{count}} мысли",
"count_many": "{{count}} мыслей",
"count_other": "{{count}} мысли",
"expand": "Развернуть мысли",
"showMore": "Показать больше",
"showLess": "Показать меньше",
"toolSummary": "🔧 {{summary}}",
"titleForMember": "{{name}} - мысли"
},
"timeline": {
"loadingMessages": "Загрузка сообщений...",
"noMessages": "Нет сообщений",
"emptyHint": "Отправьте сообщение участнику, чтобы увидеть активность.",
"newSession": "Новая сессия",
"olderCount": "+{{count}} старых",
"olderCount_one": "+{{count}} старое",
"olderCount_few": "+{{count}} старых",
"olderCount_many": "+{{count}} старых",
"olderCount_other": "+{{count}} старых",
"showMore": "Показать ещё {{count}}",
"showAll": "Показать все"
},
"pendingReplies": {
"title": "Ожидают ответа",
"openMember": "Открыть участника",
"messageSentAwaitingReply": "Сообщение отправлено, ожидается ответ",
"awaitingReply": "ожидает ответа",
"externalTeam": "внешняя команда",
"crossTeamAwaitingReply": "Межкомандное сообщение отправлено, ожидается ответ",
"user": "пользователь",
"awaitingApproval": "ожидает подтверждения"
},
"reply": {
"replyingTo": "Ответ на",
"action": "Ответить"
},
"activeTasks": {
"inProgress": "В работе",
"expandInProgress": "Развернуть задачи в работе",
"collapseInProgress": "Свернуть задачи в работе",
"reviewing": "ревьюит",
"workingOn": "работает над"
},
"expandDialog": {
"description": "Развёрнутый просмотр сообщения"
}
},
"create": {
"actions": {
"create": "Создать",
"creating": "Создание...",
"openExisting": "Открыть существующую команду",
"skipPreflightAndCreate": "Пропустить preflight и создать"
},
"conflict": {
"description": "Запуск двух команд в одной директории рискован - они могут конфликтовать при изменении одних и тех же файлов. Лучше выбрать другую директорию или git worktree для изоляции.",
"title": "Другая команда \"{{team}}\" уже работает в этой working directory",
"workingDirectory": "Working directory:"
},
"description": {
"copy": "Создать новую команду на основе существующей.",
"create": "Настройте команду и выберите, как она будет запускаться."
},
"errors": {
"nameExists": "Команда с таким именем уже существует",
"nameLaunching": "Команда с таким именем сейчас запускается",
"createConfigFailed": "Не удалось создать конфиг команды",
"loadProjectsFailed": "Не удалось загрузить проекты"
},
"fields": {
"color": "Цвет (optional)",
"description": "Описание (optional)",
"prompt": "Prompt для team lead (optional)",
"teamName": "Имя команды"
},
"launchAfterCreate": {
"description": "Сразу запустить команду через локальный Claude CLI.",
"label": "Выполнить команду после создания"
},
"localOnly": "Доступно только в локальном Electron mode.",
"onDisk": "На диске:",
"placeholders": {
"description": "Краткое описание назначения команды",
"prompt": "Инструкции для team lead во время provisioning..."
},
"saved": "Сохранено",
"solo": {
"description": "Будет запущен только team lead (main process) - teammates не будут созданы. Работает как обычная agent session в выбранном runtime (Claude Code, Codex, OpenCode, Gemini), но с доступом к task board для планирования. Экономит tokens за счёт отсутствия coordination overhead между teammates. Участников можно добавить позже в настройках команды.",
"label": "Solo team"
},
"title": {
"copy": "Копировать команду",
"create": "Создать команду"
},
"optional": {
"launchSettingsTitle": "Опциональные настройки запуска",
"launchSettingsDescription": "Промпт, безопасность и переопределения CLI находятся здесь, когда они нужны.",
"teamDetailsTitle": "Опциональные детали команды",
"teamDetailsDescription": "Основной поток остаётся компактным. Открывайте этот блок, когда нужен дополнительный контекст или свой цвет."
},
"prepare": {
"unsupportedPreload": "Текущая версия preload не поддерживает team:prepareProvisioning. Перезапустите dev app.",
"selectWorkingDirectory": "Выберите рабочую директорию, чтобы проверить окружение запуска.",
"someProvidersNeedAttention": "Некоторым выбранным providers нужно внимание.",
"readyWithNotes": "Все выбранные providers готовы, есть заметки.",
"ready": "Все выбранные providers готовы.",
"failed": "Не удалось подготовить выбранных providers",
"checkingProviders": "Проверка выбранных providers...",
"preparingEnvironment": "Подготовка окружения...",
"selectedProvidersReadyWithNotes": "Выбранные providers готовы (есть заметки)",
"selectedProvidersReady": "Выбранные providers готовы"
},
"validation": {
"nameMustContainLetterOrDigit": "Имя должно содержать хотя бы одну букву или цифру",
"nameTooLong": "Имя слишком длинное (максимум 128 символов)",
"selectWorkingDirectory": "Выберите рабочую директорию (cwd)",
"memberNameRequired": "Имя участника не может быть пустым",
"memberNameInvalid": "Имя участника должно начинаться с буквы или цифры и содержать только [a-zA-Z0-9._-], максимум 128 символов",
"memberNamesUnique": "Имена участников должны быть уникальными",
"openCodeLeadModelRequired": "Для lead на OpenCode нужно выбрать модель.",
"openCodeTeammateRequired": "Для lead на OpenCode нужен хотя бы один teammate OpenCode.",
"teamLaunching": "Команда сейчас запускается",
"teamNameExists": "Команда с таким именем уже существует",
"checkFormFields": "Проверьте поля формы"
}
},
"editTeam": {
"actions": {
"cancel": "Отмена",
"save": "Сохранить"
},
"addMemberLockReason": "Используйте отдельный диалог добавления участника, чтобы добавлять teammates во время работы команды.",
"description": "Измените имя, описание и цвет команды",
"errors": {
"changesSavedRefreshFailed": "Изменения команды сохранены, но не удалось обновить последний вид: {{message}}",
"liveRenameBlocked": "Нельзя переименовывать существующих teammates, пока команда работает. Переименованы: {{names}}",
"memberNameEmpty": "Имя участника не может быть пустым",
"memberNameInvalid": "Имя участника должно начинаться с буквы или цифры, использовать только [a-zA-Z0-9._-] и быть не длиннее 128 символов",
"memberNameNumericSuffix": "Имя участника \"{{name}}\" недоступно, потому что зарезервировано для auto-suffix Claude CLI. Используйте \"{{base}}\".",
"memberNameReserved": "Имя участника \"{{name}}\" зарезервировано",
"memberNamesUnique": "Перед сохранением имена участников должны быть уникальными",
"newLiveTeammates": "Добавляйте новых teammates через отдельный диалог добавления участника, пока команда работает. Edit Team поддерживает только изменение существующих teammates.",
"provisioning": "Настройки команды нельзя редактировать, пока provisioning ещё идёт. Дождитесь завершения запуска и попробуйте снова.",
"restartFailedMany": "Команда сохранена, но не удалось перезапустить этих teammates: {{failures}}",
"restartFailedOne": "Команда сохранена, но не удалось перезапустить этого teammate: {{failures}}",
"saveFailed": "Не удалось сохранить",
"settingsChanged": "Настройки команды изменились, пока диалог был открыт. Откройте его заново и проверьте актуальное состояние перед сохранением.",
"settingsSavedMembersAndRefreshFailed": "Настройки команды сохранены, но изменения участников не применились: {{message}}. Обновление тоже завершилось ошибкой: {{refreshError}}",
"settingsSavedMembersFailed": "Настройки команды сохранены, но изменения участников не применились: {{message}}",
"settingsSavedRefreshFailed": "Настройки команды сохранены, но не удалось обновить последний вид: {{message}}",
"teamNameEmpty": "Имя команды не может быть пустым",
"unsupportedMixedPrimaryMutation": "Live-изменения primary-owned teammates в mixed OpenCode teams пока не поддерживаются. Остановите команду, измените roster и запустите заново. Затронуты: {{names}}"
},
"fields": {
"colorOptional": "Цвет (необязательно)",
"description": "Описание",
"name": "Имя"
},
"memberRestartWarning": "Сохранение перезапустит этого teammate, чтобы применить изменения роли, workflow, worktree isolation, provider, model, effort или MCP access.",
"notices": {
"liveRenameBlocked": "Live-сохранение заблокировано, потому что существующие teammates были переименованы. Отмените эти identity changes или сначала остановите команду.",
"newLiveTeammates": "Новых teammates нельзя добавлять из Edit Team, пока команда работает. Используйте диалог добавления участника.",
"provisioning": "Provisioning команды ещё идёт. Редактирование временно заблокировано до завершения запуска.",
"restartMany": "Сохранение перезапустит или перезапустит заново этих teammates, чтобы применить изменения роли, workflow, worktree isolation, provider, model, effort или MCP access: {{names}}.",
"restartOne": "Сохранение перезапустит или перезапустит заново этого teammate, чтобы применить изменения роли, workflow, worktree isolation, provider, model, effort или MCP access: {{names}}.",
"unsupportedMixedPrimaryMutation": "Live-изменения или удаления primary-owned teammates в mixed OpenCode teams требуют остановки и повторного запуска команды: {{names}}."
},
"placeholders": {
"description": "Описание команды (необязательно)",
"teamName": "Имя команды"
},
"teamLead": {
"changeRuntime": "Изменить runtime lead",
"changeRuntimeDescription": "Откройте Relaunch Team, чтобы изменить provider, model или effort для lead.",
"modelLockReason": "Runtime team lead управляется через Relaunch Team.",
"readOnlyHint": "Имя и роль team lead здесь доступны только для чтения. Откройте runtime panel в строке lead, чтобы изменить provider, model или effort.",
"role": "Team Lead"
},
"title": "Редактировать команду"
},
"memberDraft": {
"actions": {
"remove": "Удалить участника",
"removeAria": "Удалить {{name}}",
"restore": "Восстановить участника",
"restoreAria": "Восстановить {{name}}"
},
"anthropicContext": {
"defaultSetting": "настройка контекста по умолчанию",
"description": "Контекст Anthropic действует на всю команду для этого запуска: {{mode}}. Используйте checkbox Limit context в runtime panel lead, чтобы изменить это.",
"limitEnabled": "лимит 200K включён"
},
"mcp": {
"buttonInherit": "MCP inherit",
"buttonScopes": "MCP scopes",
"chooseScopes": "Выбрать scopes",
"inheritLead": "Наследовать lead",
"lockedInfo": "Для всех teammates включён режим только Agent Teams MCP. Этот teammate запустится только с Agent Teams server.",
"mode": "MCP mode",
"scopes": {
"local": "local",
"project": "project",
"user": "user"
},
"serverNames": "Имена servers",
"settingInfo": "Agent Teams MCP запускает этого teammate только с Agent Teams server. Scope и allowlist modes применяются только к запуску этого teammate.",
"strictAllowlist": "Строгий allowlist",
"tooltip": "{{label}}: управление MCP inheritance policy этого участника",
"agentTeamsMcp": "Agent Teams MCP"
},
"model": {
"ariaLabel": "{{provider}} provider, {{model}}",
"currentLeadRuntime": "Текущий runtime lead",
"default": "По умолчанию",
"inheritedTooltip": "Provider, model и effort наследуются от lead, пока включена синхронизация.",
"leadSuffix": "{{label}} (lead)",
"liveDisabled": "Изменения provider, model и effort отключены, пока команда работает. Переподключите команду, чтобы применить их безопасно.",
"lockedActionFallback": "Изменения runtime lead открывают Relaunch Team, где можно обновить provider, model и effort.",
"restartWholeTeam": "Сохранение этих runtime changes перезапустит всю команду."
},
"nameAria": "Имя участника {{index}}",
"nameFallback": "участник {{index}}",
"noRole": "Без роли",
"removed": "Удалён",
"workflow": {
"addTooltip": "Добавить workflow teammate",
"editTooltip": "Редактировать workflow teammate",
"label": "Workflow (необязательно)",
"placeholder": "Как этот agent должен работать и взаимодействовать с другими...",
"saved": "Сохранено"
},
"worktree": {
"description": "Запускать этого teammate в отдельном git worktree. Apply/reject changes будут работать с этим worktree, а не с workspace lead.",
"label": "Worktree"
},
"addMembers": {
"title": "Добавить участников",
"description": "Добавить новых участников в {{teamName}}"
},
"placeholders": {
"name": "member-name",
"mcpServers": "github, sentry"
}
},
"detail": {
"actions": {
"add": "Добавить",
"cancel": "Отмена",
"delete": "Удалить",
"editCode": "Редактировать код",
"launch": "Запустить",
"remove": "Удалить",
"stop": "Остановить",
"task": "Задача",
"visualize": "Визуализировать"
},
"deleteTeam": {
"description": "Удалить команду \"{{team}}\"? Это действие необратимо. Все данные команды и задачи будут удалены.",
"title": "Удалить команду"
},
"draft": {
"descriptionPrefix": "Это draft-команда -",
"descriptionSuffix": "настроена с {{count}} {{member}}, но ещё не provisioned через CLI. Нажмите «Запустить», чтобы выбрать модель и стартовать команду.",
"descriptionSuffix_few": "настроена с {{count}} {{member}}, но ещё не provisioned через CLI. Нажмите «Запустить», чтобы выбрать модель и стартовать команду.",
"descriptionSuffix_many": "настроена с {{count}} {{member}}, но ещё не provisioned через CLI. Нажмите «Запустить», чтобы выбрать модель и стартовать команду.",
"descriptionSuffix_one": "настроена с {{count}} {{member}}, но ещё не provisioned через CLI. Нажмите «Запустить», чтобы выбрать модель и стартовать команду.",
"descriptionSuffix_other": "настроена с {{count}} {{member}}, но ещё не provisioned через CLI. Нажмите «Запустить», чтобы выбрать модель и стартовать команду.",
"member": "участниками",
"member_few": "участниками",
"member_many": "участниками",
"member_one": "участником",
"member_other": "участниками",
"title": "Команда ещё не запущена"
},
"invalidTab": "Некорректная вкладка команды",
"kanbanSafeData": "Не удалось полностью загрузить kanban. Показаны безопасные данные.",
"loadFailed": "Не удалось загрузить команду",
"loading": "Загрузка команды",
"loadingSidebar": "Загрузка sidebar команды",
"offline": {
"offline": "Команда offline",
"partialFailed": "Последний запуск частично не удался",
"partialMissing": "Последний запуск частично не удался - {{missing}}/{{expected}} teammates не подключились",
"reconciling": "Последний запуск ещё сверяется"
},
"previous": "Предыдущие: {{paths}}",
"removeMember": {
"description": "Удалить \"{{member}}\" из команды? Задачи и сообщения сохранятся, но это имя нельзя будет использовать повторно.",
"title": "Удалить участника"
},
"sections": {
"team": "Команда"
},
"solo": "Solo",
"status": {
"active": "Активно",
"launching": "Запуск...",
"running": "Работает"
},
"telemetry": {
"cpu": "CPU",
"memory": "Memory"
},
"tooltips": {
"deleteTeam": "Удалить команду",
"editTeam": "Редактировать команду",
"editUnavailableProvisioning": "Редактирование недоступно, пока provisioning ещё выполняется",
"openBuiltInEditor": "Открыть проект во встроенном редакторе",
"openTeamGraph": "Открыть граф команды",
"stopTeam": "Остановить команду"
},
"waitingForProvisioning": "Данные команды появятся после завершения provisioning",
"context": {
"title": "Контекст",
"loading": "Загрузка...",
"noSessionLoaded": "Сессия не загружена",
"closePanel": "Закрыть панель контекста {{team}}",
"loadingContext": "Загрузка контекста...",
"openLeadSession": "Откройте сессию лида команды, чтобы посмотреть контекст."
}
},
"review": {
"fileHeader": {
"actions": {
"accept": "Принять",
"discard": "Отменить",
"discardTooltip": "Отменить все правки в этом файле",
"keepMyDraft": "Оставить мой черновик",
"reject": "Отклонить",
"reloadFromDisk": "Перезагрузить с диска",
"restore": "Восстановить",
"restoreTooltip": "Создать или восстановить этот файл на диске из предпросмотра",
"saveFile": "Сохранить файл",
"saveFileTooltip": "Сохранить файл на диск"
},
"badges": {
"deleted": "УДАЛЁН",
"manualReview": "РУЧНОЙ REVIEW",
"new": "НОВЫЙ",
"worktree": "WORKTREE"
},
"contentSource": {
"disk-current": "Текущее состояние диска",
"file-history": "История файла",
"git-fallback": "Git fallback",
"ledger-exact": "Task ledger",
"ledger-snapshot": "Снимок ledger",
"snippet-reconstruction": "Реконструировано",
"unavailable": "Содержимое недоступно"
},
"contentUnavailable": {
"badge": "Содержимое недоступно",
"description": "В ledger записаны metadata для этого изменения, но полный текст недоступен. Обычно это binary, большой файл или hash-only content.",
"safety": "Автоматические accept/reject отключены для этого файла, чтобы избежать небезопасной записи на диск.",
"title": "Текстовое содержимое недоступно"
},
"disabled": {
"acceptRejectContentUnavailable": "Accept/Reject отключён, потому что полный текст недоступен.",
"acceptRejectMissingOnDisk": "Accept/Reject отключён, пока файл отсутствует на диске.",
"rejectBaselineUnavailable": "Reject отключён, потому что исходный baseline недоступен.",
"rejectContentUnavailable": "Reject отключён, потому что полный текст недоступен.",
"rejectManualLedgerReview": "Reject отключён, потому что это ledger-изменение содержит binary, большой или недоступный content."
},
"externalChange": {
"changedOnDisk": "Изменён на диске",
"deletedOnDisk": "Удалён на диске",
"recreatedOnDisk": "Создан заново на диске"
},
"missingOnDisk": {
"badge": "Отсутствует на диске",
"description": "Предпросмотр из agent logs всё ещё доступен, но filesystem не синхронизирован.",
"restorePrefix": "Нажмите",
"restoreSuffix": "чтобы записать preview content обратно на диск.",
"restoreUnavailable": "Полное содержимое файла недоступно для автоматического восстановления.",
"title": "Файл отсутствует на диске"
},
"pathChange": {
"from": "Из {{path}}",
"to": "В {{path}}"
},
"worktree": {
"isolated": "Изолированный worktree"
}
},
"toolbar": {
"stats": {
"pending": "{{count}} pending",
"pending_one": "{{count}} pending",
"pending_few": "{{count}} pending",
"pending_many": "{{count}} pending",
"pending_other": "{{count}} pending",
"accepted": "{{count}} accepted",
"accepted_one": "{{count}} accepted",
"accepted_few": "{{count}} accepted",
"accepted_many": "{{count}} accepted",
"accepted_other": "{{count}} accepted",
"rejected": "{{count}} rejected",
"rejected_one": "{{count}} rejected",
"rejected_few": "{{count}} rejected",
"rejected_many": "{{count}} rejected",
"rejected_other": "{{count}} rejected",
"acrossFiles": "в {{count}} файлах",
"acrossFiles_one": "в {{count}} файле",
"acrossFiles_few": "в {{count}} файлах",
"acrossFiles_many": "в {{count}} файлах",
"acrossFiles_other": "в {{count}} файлах",
"edited": "{{count}} edited",
"edited_one": "{{count}} edited",
"edited_few": "{{count}} edited",
"edited_many": "{{count}} edited",
"edited_other": "{{count}} edited"
},
"actions": {
"auto": "Auto",
"undo": "Отменить",
"acceptAll": "Принять всё",
"rejectAll": "Отклонить всё",
"applying": "Применение...",
"applyRejections": "Применить отклонения"
},
"tooltips": {
"autoOn": "Auto-mark файлов как viewed при прокрутке до конца (ON)",
"autoOff": "Auto-mark файлов как viewed при прокрутке до конца (OFF)",
"undo": "Отменить последнюю review operation (Ctrl+Z)",
"acceptAll": "Принять все изменения во всех файлах",
"rejectAll": "Отклонить все безопасно отклоняемые изменения во всех файлах",
"rejectAllDisabled": "У pending файлов нет безопасного original baseline для отклонения.",
"applyRejections": "Применить отклонённые hunks на диск; принятые изменения останутся как есть"
}
},
"diffError": {
"title": "Не удалось отрендерить diff view",
"unexpected": "При рендеринге diff произошла неожиданная ошибка.",
"actions": {
"retry": "Повторить"
},
"raw": {
"show": "Показать raw diff data",
"file": "Файл: {{file}}",
"original": "--- Original",
"modified": "+++ Modified",
"charsTotal": "... (всего символов: {{count}})",
"charsTotal_one": "... (всего {{count}} символ)",
"charsTotal_few": "... (всего {{count}} символа)",
"charsTotal_many": "... (всего {{count}} символов)",
"charsTotal_other": "... (всего {{count}} символов)"
}
},
"fileTree": {
"viewed": "Просмотрено",
"badges": {
"new": "new",
"deleted": "deleted"
},
"collapseFolder": "Свернуть {{name}}",
"expandFolder": "Развернуть {{name}}",
"empty": {
"noChangedFiles": "Нет изменённых файлов",
"noMatchingFiles": "Нет подходящих файлов"
},
"searchPlaceholder": "Поиск файлов…",
"filters": {
"unresolved": "Нерешённые",
"rejected": "Отклонённые",
"new": "Новые",
"clear": "Очистить"
}
},
"diffControls": {
"previousChunk": "Предыдущий chunk",
"nextChunk": "Следующий chunk",
"rejectChange": "Отклонить изменение (⌘N)",
"acceptChange": "Принять изменение (⌘Y)",
"undo": "Отменить",
"keep": "Оставить",
"rejectShortcut": "⌘N",
"acceptShortcut": "⌘Y"
},
"conflict": {
"title": "Обнаружен конфликт",
"description": "Файл был изменён после правок агента",
"cancel": "Отмена",
"saveResolution": "Сохранить решение",
"editManually": "Редактировать вручную",
"useOriginal": "Использовать исходный вариант",
"keepCurrent": "Оставить текущий вариант"
},
"fullDiffLoading": {
"titleOne": "Подготовка полного diff",
"titleMany": "Подготовка полных diff: {{count}}",
"subtitleForFile": "Финализируется точный editor diff для {{file}}.",
"subtitleCurrentFile": "Финализируется точный editor diff для текущего файла.",
"subtitleMany": "Определяются точные before/after baseline для загружаемых файлов.",
"previewsReady": "готово preview: {{count}}",
"previewsReady_one": "готово {{count}} preview",
"previewsReady_few": "готово preview: {{count}}",
"previewsReady_many": "готово preview: {{count}}",
"previewsReady_other": "готово preview: {{count}}",
"editorViewLoading": "Загружается editor view",
"filesInProgress": "файлов в процессе: {{count}}",
"filesInProgress_one": "{{count}} файл в процессе",
"filesInProgress_few": "файлов в процессе: {{count}}",
"filesInProgress_many": "файлов в процессе: {{count}}",
"filesInProgress_other": "файлов в процессе: {{count}}",
"filesReady": "готово файлов: {{ready}}/{{total}}",
"progressDescription": "Готово: {{ready}}, ещё загружается: {{loading}}. Preview diff остаются видимыми ниже, пока остальные baseline определяются.",
"singleDescription": "Preview diff остаются видимыми ниже, пока определяется точный baseline."
},
"fileMissingPrefix": "Файл отсутствует на диске. Этот diff может быть только предпросмотром из логов агента. Используйте",
"restore": "Восстановить",
"fileMissingSuffix": "чтобы создать файл на диске.",
"filePlaceholder": {
"loading": "Загрузка",
"description": "Подготовка полного editor diff для этого файла."
},
"loading": {
"diff": "DIFF",
"ledgerObjectsProcessed": "обработано ledger-объектов: {{count}}",
"ledgerObjectsProcessed_one": "обработан {{count}} ledger-объект",
"ledgerObjectsProcessed_few": "обработано {{count}} ledger-объекта",
"ledgerObjectsProcessed_many": "обработано {{count}} ledger-объектов",
"ledgerObjectsProcessed_other": "обработано {{count}} ledger-объектов",
"phases": {
"readingLedger": "Чтение task ledger...",
"resolvingFiles": "Определение состояния файлов...",
"checkingWorktree": "Проверка worktree...",
"preparingDiffs": "Подготовка review diff..."
}
},
"progress": {
"viewed": "{{viewed}}/{{total}} просмотрено"
},
"scope": {
"readMore": "Подробнее",
"tiers": {
"exact": {
"title": "Область задачи определена точно",
"detail": "В логе сессии найдены маркеры начала и завершения. Diff включает только изменения этой задачи - изменения других задач в тех же файлах исключены."
},
"endEstimated": {
"title": "Граница завершения оценена приблизительно",
"detail": "Найден только маркер начала - у задачи ещё нет маркера завершения. Показаны изменения от старта задачи до конца сессии. Если после неё в той же сессии выполнялись другие задачи, их изменения тоже могут попасть в diff."
},
"startEstimated": {
"title": "Граница начала оценена приблизительно",
"detail": "Найден только маркер завершения - начало работы не было зафиксировано. Если до этой задачи в той же сессии выполнялись другие задачи, их изменения в тех же файлах тоже могут попасть в diff."
},
"allSession": {
"title": "Показаны все изменения сессии",
"detail": "В логе сессии нет маркеров задачи. Нельзя изолировать конкретную задачу - показаны все изменения файлов за всю сессию, включая изменения других задач. Такое возможно со старыми версиями CLI или нестандартными workflows."
}
},
"ledger": {
"exact": {
"title": "Изменения зафиксированы task ledger",
"detail": "Orchestrator зафиксировал эти изменения файлов во время работы агента над задачей.",
"badge": "Точно по ledger"
},
"limited": {
"title": "Изменения зафиксированы с ограниченной проверяемостью",
"detail": "Orchestrator зафиксировал эти изменения для задачи, но хотя бы одно изменение пришло из snapshot или metadata-only источника. Проверяйте точные текстовые diff там, где они доступны; binary или недоступный контент может требовать ручного review.",
"mixedBadge": "Смешанная проверяемость",
"needsReviewBadge": "Нужен review"
}
},
"workInterval": {
"title": "Область задана сохранённым рабочим интервалом",
"detail": "Маркер начала задачи недоступен в логе сессии, поэтому diff ограничен рабочим интервалом задачи, сохранённым на доске.",
"badge": "По интервалу"
},
"confidence": {
"high": "Высокая уверенность",
"medium": "Средняя уверенность",
"low": "Низкая уверенность",
"bestEffort": "Best effort"
}
},
"shortcuts": {
"title": "Горячие клавиши",
"actions": {
"nextChange": "Следующее изменение",
"previousChange": "Предыдущее изменение",
"nextFile": "Следующий файл",
"previousFile": "Предыдущий файл",
"acceptChange": "Принять изменение",
"rejectChange": "Отклонить изменение",
"saveFile": "Сохранить файл",
"undo": "Отменить",
"redo": "Повторить",
"toggleShortcuts": "Показать/скрыть подсказки",
"closeDialog": "Закрыть диалог"
}
},
"timeline": {
"empty": "Нет событий редактирования",
"titleWithCount": "История правок ({{count}})"
},
"continuousScroll": {
"empty": "Нет изменений файлов для ревью"
},
"empty": {
"noSafeDiff": "Нет безопасного diff",
"noFileChangesRecorded": "Изменения файлов не записаны",
"noSafeDiffDescription": "Журнал задачи не предоставил безопасный diff файлов для этой задачи.",
"noSafeDiffDiagnosticsDescription": "Журнал задачи не предоставил безопасный diff файлов для этой задачи. Диагностика ниже объясняет причину.",
"noFileEventsYet": "В журнале задачи пока нет событий файлов.",
"noFileEvents": "В журнале задачи нет событий файлов."
}
},
"messages": {
"actions": {
"bottomSheetActions": "Действия нижней панели сообщений",
"collapseAll": "Свернуть все сообщения",
"collapseSheet": "Свернуть панель",
"expandAll": "Развернуть все сообщения",
"expandSheet": "Развернуть панель",
"floatComposer": "Открепить composer",
"floatMessagesComposer": "Открепить composer сообщений",
"hideSearch": "Скрыть поиск",
"loadOlder": "Загрузить старые сообщения",
"markAllRead": "Отметить всё прочитанным",
"messageActions": "Действия сообщений",
"moveMessagesToBottomSheet": "Переместить сообщения в нижнюю панель",
"moveMessagesToSidebar": "Переместить сообщения в sidebar",
"moveToBottomSheet": "Переместить в нижнюю панель",
"moveToInline": "Переместить inline",
"moveToSidebar": "Переместить в sidebar",
"panelActions": "Действия панели сообщений",
"searchMessages": "Искать сообщения"
},
"delivery": {
"copied": "Скопировано",
"copyDebugDetails": "Копировать debug details",
"details": "Детали",
"fields": {
"acceptanceUnknown": "acceptanceUnknown",
"delivered": "delivered",
"diagnostics": "diagnostics",
"ledgerStatus": "ledgerStatus",
"messageId": "messageId",
"providerId": "providerId",
"queuedBehindMessageId": "queuedBehindMessageId",
"reason": "reason",
"responsePending": "responsePending",
"responseState": "responseState",
"statusMessageId": "statusMessageId",
"userVisibleMessage": "userVisibleMessage",
"userVisibleNextReviewAt": "userVisibleNextReviewAt",
"userVisibleReasonCode": "userVisibleReasonCode",
"userVisibleState": "userVisibleState",
"visibleReplyCorrelation": "visibleReplyCorrelation",
"visibleReplyMessageId": "visibleReplyMessageId"
}
},
"panelMode": "Режим панели сообщений",
"title": "Сообщения",
"unread": {
"new": "Новых: {{count}}",
"new_few": "Новых: {{count}}",
"new_many": "Новых: {{count}}",
"new_one": "Новое: {{count}}",
"new_other": "Новых: {{count}}",
"unread": "Непрочитано: {{count}}",
"unread_few": "Непрочитано: {{count}}",
"unread_many": "Непрочитано: {{count}}",
"unread_one": "Непрочитанное: {{count}}",
"unread_other": "Непрочитано: {{count}}"
},
"filter": {
"ariaLabel": "Фильтровать сообщения",
"tooltip": "Фильтровать сообщения",
"from": "От",
"to": "Кому",
"noData": "Нет данных",
"showStatusUpdates": "Показывать status updates (idle/shutdown)",
"actions": {
"reset": "Сбросить",
"save": "Сохранить"
}
},
"status": {
"title": "Статус"
},
"actionMode": {
"label": "Режим действия"
},
"search": {
"placeholder": "Поиск..."
}
},
"modelSelector": {
"badges": {
"configured": "Настроено",
"connected": "Подключено",
"failed": "Ошибка",
"free": "Бесплатно",
"local": "Локально",
"needsTest": "Нужен тест",
"verified": "Проверено",
"unavailable": "Недоступно",
"issue": "Проблема"
},
"customModelId": "Custom model id",
"label": "Модель (optional)",
"multimodelRequired": "Codex и Gemini требуют Multimodel mode.",
"openCode": {
"allSources": "Все OpenCode sources",
"filterSource": "Фильтровать {{source}}",
"filterSources": "Фильтровать OpenCode sources",
"freeOnly": "Только бесплатные",
"freeTooltip": "OpenCode помечает эту модель как бесплатную.",
"loadingModels": "Загрузка моделей OpenCode...",
"noSourcesFound": "Sources не найдены.",
"recommendedOnly": "Только рекомендованные",
"searchSources": "Поиск sources",
"sourcesCount": "OpenCode sources: {{count}}",
"sourcesCount_few": "OpenCode sources: {{count}}",
"sourcesCount_many": "OpenCode sources: {{count}}",
"sourcesCount_one": "OpenCode source: {{count}}",
"sourcesCount_other": "OpenCode sources: {{count}}"
},
"reason": "Причина: {{reason}}",
"runtimeModelsSyncing": "Явные модели загружаются из текущего runtime. Default остаётся доступным, пока список синхронизируется.",
"fastMode": {
"codexLabel": "Быстрый режим (2x credits)",
"optionalLabel": "Быстрый режим (опционально)",
"defaultOff": "По умолчанию (выкл.)",
"fast": "Fast",
"off": "Выкл.",
"defaultFast": "По умолчанию (Fast)",
"defaultResolvesTo": "Сейчас default resolves to {{mode}}.",
"runtimeBackedHint": "Fast mode зависит от runtime и доступен только когда resolved Anthropic launch model его поддерживает."
},
"anthropicExtraUsage": {
"pricingDocs": "Открыть документацию Anthropic по ценам"
},
"searchModels": "Поиск моделей",
"defaultModel": "По умолчанию",
"empty": {
"noSearchMatches": "По этому поиску модели не найдены.",
"recommendedFreeOpenCode": "В текущем списке runtime нет рекомендованных бесплатных моделей OpenCode.",
"freeOpenCode": "В текущем списке runtime нет бесплатных моделей OpenCode.",
"recommendedOpenCode": "В текущем списке runtime нет рекомендованных моделей OpenCode.",
"noModels": "В текущем списке runtime нет моделей."
},
"openCodeStatus": {
"notReadyTitle": "OpenCode не готов к запуску команды",
"freeModelsAvailableTitle": "Доступны бесплатные модели OpenCode",
"providerNotConnectedTitle": "Provider OpenCode не подключён",
"readyTitle": "OpenCode готов",
"readyMessage": "OpenCode прошёл проверку готовности provider. Выберите его, чтобы использовать модели OpenCode для этой команды.",
"useOpenCode": "Использовать OpenCode",
"badges": {
"check": "Проверка",
"install": "Установить",
"free": "Free",
"setup": "Настроить"
},
"summary": {
"checking": "Статус OpenCode: проверка runtime",
"status": "Статус OpenCode: {{parts}}"
},
"summaryParts": {
"teamLaunchBlocked": "запуск команды заблокирован",
"providerOptional": "подключение provider необязательно",
"providerModelsNeedSetup": "provider-backed модели требуют настройки",
"teamLaunchReady": "запуск команды готов",
"runtimeDetected": "runtime найден",
"runtimeMissing": "runtime не найден",
"freeWithoutAuth": "free модели доступны без auth",
"providerConnected": "provider подключён",
"providerNotConnected": "provider не подключён"
},
"messages": {
"checking": "Приложение ещё проверяет OpenCode runtime. Дождитесь завершения проверки provider status и попробуйте снова.",
"unsupported": "OpenCode не установлен, не найден или найденный runtime не поддерживается. Установите или обновите OpenCode, затем обновите статус provider. Также можно использовать кнопку Install на домашней странице.",
"freeAvailable": "OpenCode найден. Можно использовать free модели OpenCode, например Big Pickle, без подключения provider. Подключайте provider только если нужны provider-backed модели.",
"noFreeListed": "OpenCode найден, но free модель OpenCode пока не указана. Обновите provider status или подключите provider в OpenCode для provider-backed моделей.",
"launchBlocked": "OpenCode установлен и authenticated, но готовность Agent Teams launch заблокирована.",
"ready": "OpenCode готов к запуску команды."
},
"loadingRuntime": "Статус OpenCode runtime ещё загружается."
},
"advisory": {
"pingNotConfirmed": "Ping не подтверждён",
"note": "Заметка"
},
"placeholders": {
"customModelId": "openai/gpt-oss-20b"
},
"routeGroups": {
"openCodeConfig": "Конфиг OpenCode",
"builtinFree": "Бесплатные встроенные",
"connectedProviders": "Подключённые providers",
"otherCatalog": "Другой каталог OpenCode"
},
"pricing": {
"free": "Бесплатно",
"inputShort": "in {{rate}}",
"outputShort": "out {{rate}}",
"perMillionSummary": "{{summary}} / 1M",
"inputTitle": "Input: {{rate}} за 1M tokens",
"outputTitle": "Output: {{rate}} за 1M tokens",
"cacheReadTitle": "Cache read: {{rate}} за 1M tokens",
"cacheWriteTitle": "Cache write: {{rate}} за 1M tokens"
},
"defaultTooltip": {
"anthropicCompatibleWithResolved": "Использует default model Anthropic-compatible endpoint.\nСейчас resolves to {{model}}.",
"anthropicCompatible": "Использует default model Anthropic-compatible endpoint.",
"anthropic": "Использует default model команды Claude.\nResolves to {{longContextModel}} с 1M context или {{limitedContextModel}} с 200K context, когда включён Limit context.",
"openCodeWithResolved": "Использует default model OpenCode.\nСейчас resolves to {{model}}.",
"openCode": "Использует runtime default model OpenCode.",
"runtime": "Использует runtime default для выбранного provider."
},
"multimodelOff": "Multimodel выключен",
"unavailableInRuntime": "Недоступно в текущем runtime"
},
"taskDetail": {
"actions": {
"cancel": "Отмена",
"delete": "Удалить",
"markResolved": "Отметить решённым",
"save": "Сохранить"
},
"attachments": {
"commentAttachment": "Вложение комментария",
"fromComments": "Из комментариев",
"preview": "Предпросмотр {{filename}}"
},
"changes": {
"badges": {
"attention": "требует внимания",
"noSafeDiff": "нет безопасного diff"
},
"empty": {
"noFileChangesRecorded": "Изменения файлов не записаны",
"noFileChangesRecordedYet": "Изменения файлов пока не записаны",
"noReviewableChangesRecovered": "Не удалось восстановить изменения файлов для review",
"noSafeDiffAvailable": "Безопасный diff недоступен"
},
"loadFailed": "Не удалось загрузить сводку изменений задачи",
"loading": "Загрузка изменений...",
"fileCount": "Файлов: {{count}}",
"fileCount_few": "Файла: {{count}}",
"fileCount_many": "Файлов: {{count}}",
"fileCount_one": "Файл: {{count}}",
"fileCount_other": "Файла: {{count}}",
"fileRowsHidden": "Скрыто строк файлов: {{count}}",
"fileRowsHidden_few": "Скрыто строки файлов: {{count}}",
"fileRowsHidden_many": "Скрыто строк файлов: {{count}}",
"fileRowsHidden_one": "Скрыта строка файла: {{count}}",
"fileRowsHidden_other": "Скрыто строки файлов: {{count}}",
"moreDiagnostics": "Ещё диагностик: {{count}}",
"moreDiagnostics_few": "Ещё диагностики: {{count}}",
"moreDiagnostics_many": "Ещё диагностик: {{count}}",
"moreDiagnostics_one": "Ещё диагностика: {{count}}",
"moreDiagnostics_other": "Ещё диагностики: {{count}}",
"moreFiles": "Ещё файлов: {{count}}",
"moreFiles_few": "Ещё файла: {{count}}",
"moreFiles_many": "Ещё файлов: {{count}}",
"moreFiles_one": "Ещё файл: {{count}}",
"moreFiles_other": "Ещё файла: {{count}}",
"openInEditor": "Открыть в редакторе",
"openTask": "Открыть задачу {{subject}}",
"refresh": "Обновить изменения",
"refreshFailed": "Не удалось обновить: {{error}}",
"refreshing": "Обновление",
"refreshingChanges": "Обновление изменений...",
"refreshTeamChanges": "Обновить изменения команды",
"refreshShort": "Обновить",
"reviewDiff": "Открыть diff для review",
"reviewTaskDiff": "Открыть diff задачи для review",
"scannedCandidateTasks": "Просканировано {{requested}} из {{eligible}} candidate tasks",
"tasksDeferred": "Отложено задач за этот проход: {{count}}",
"tasksDeferred_few": "Отложено задачи за этот проход: {{count}}",
"tasksDeferred_many": "Отложено задач за этот проход: {{count}}",
"tasksDeferred_one": "Отложена задача за этот проход: {{count}}",
"tasksDeferred_other": "Отложено задачи за этот проход: {{count}}",
"title": "Изменения"
},
"clarification": {
"awaitingLead": "Ожидается уточнение от team lead",
"awaitingUser": "Ожидается уточнение от вас"
},
"description": {
"add": "Добавить описание...",
"edit": "Редактировать описание",
"placeholder": "Описание задачи (поддерживает markdown)"
},
"loading": {
"fetchingTeamData": "Загрузка данных команды",
"title": "Загрузка задачи..."
},
"logs": {
"newArriving": "Поступают новые task logs"
},
"notFound": "Задача не найдена",
"related": {
"blockedBy": "Заблокировано",
"blocks": "Блокирует",
"linkedFrom": "Ссылаются из",
"links": "Связано",
"title": "Связанные задачи"
},
"review": {
"reviewer": "Reviewer: {{reviewer}}"
},
"sections": {
"attachments": "Вложения",
"changes": "Изменения",
"comments": "Комментарии",
"description": "Описание",
"taskLogs": "Логи задачи",
"workflowHistory": "История workflow"
},
"unassigned": "Не назначено",
"workflow": {
"implementationTimeTitle": "Время реализации по сохранённым рабочим интервалам",
"inProgressTime": "Время в работе {{duration}}"
},
"comments": {
"renderLimit": "Показаны последние {{formattedCount}} комментариев, чтобы интерфейс оставался отзывчивым.",
"badges": {
"approved": "Одобрено",
"reviewRequested": "Запрошен review"
},
"unknownTime": "неизвестное время",
"actions": {
"reply": "Ответить",
"replyToComment": "Ответить на комментарий",
"showMore": "Показать ещё комментарии ({{visible}}/{{total}})",
"cancelReply": "Отменить ответ",
"comment": "Комментировать"
},
"attachments": {
"previewAlt": "Предпросмотр вложения",
"downloadFailed": "Не удалось скачать"
},
"replyingTo": "Ответ на",
"input": {
"placeholder": "Добавьте комментарий... (Enter для отправки)",
"charsLeft": "Осталось символов: {{count}}",
"charsLeft_one": "Остался {{count}} символ",
"charsLeft_few": "Осталось {{count}} символа",
"charsLeft_many": "Осталось {{count}} символов",
"charsLeft_other": "Осталось {{count}} символов"
}
},
"workflowTimeline": {
"empty": "История workflow не записана",
"currentImplementationInterval": "Текущий интервал реализации",
"implementationIntervalEnded": "Интервал реализации завершился на этом переходе",
"runningPrefix": "идёт ",
"createdAs": "Создано как",
"by": "от",
"reassigned": "Переназначено",
"assignedTo": "Назначено",
"unassignedFrom": "Снято с",
"ownerChanged": "Владелец изменён",
"reviewRequested": "Запрошен review",
"reviewStarted": "Review начат",
"changesRequested": "Запрошены изменения",
"approved": "Одобрено",
"unknownEvent": "Неизвестное событие"
},
"reviewStates": {
"approved": "Одобрено",
"needsFix": "Нужны правки",
"inReview": "На review"
}
},
"tasks": {
"createTask": {
"assignee": "Исполнитель",
"assigneeOptional": "Исполнитель (необязательно)",
"blockedByOptional": "Блокируется задачами (необязательно)",
"blockedBySummary": "Задачу будут блокировать: {{tasks}}",
"cancel": "Отмена",
"create": "Создать",
"creating": "Создание...",
"description": "Задача будет создана в директории tasks/ команды и появится на Kanban-доске.",
"descriptionOptional": "Описание (необязательно)",
"detailsPlaceholder": "Детали задачи (поддерживается Markdown)",
"hideOptionalFields": "Скрыть дополнительные поля",
"offlineNotice": {
"after": "- запустите команду, чтобы начать выполнение.",
"before": "Команда офлайн. Задача будет добавлена в"
},
"promptOptional": "Prompt для исполнителя (необязательно)",
"promptPlaceholder": "Дополнительные инструкции для участника команды...",
"relatedOptional": "Связанные задачи (необязательно)",
"relatedSummary": "Связанные: {{tasks}}",
"saved": "Сохранено",
"searchTasks": "Поиск задач...",
"selectMember": "Выберите участника",
"selectMemberOptional": "Выберите участника...",
"showOptionalFields": "Показать дополнительные поля",
"startImmediately": "Запустить сразу",
"startOfflineHint": "Команда офлайн. Сначала запустите команду, чтобы сразу стартовать задачи.",
"subject": "Тема",
"subjectPlaceholder": "Что нужно сделать?",
"title": "Создать задачу",
"todo": "TODO"
},
"list": {
"columns": {
"blockedBy": "Заблокировано",
"blocks": "Блокирует",
"id": "ID",
"owner": "Владелец",
"status": "Статус",
"subject": "Тема"
},
"empty": "В этой команде нет задач",
"filters": {
"allOwners": "Все владельцы",
"allStatuses": "Все статусы",
"ownerAria": "Фильтр задач по владельцу",
"statusAria": "Фильтр задач по статусу"
},
"showing": "Показано {{shown}} из {{total}}"
},
"status": {
"completed": "completed",
"deleted": "deleted",
"inProgress": "in_progress",
"pending": "pending"
},
"statusSummary": {
"progressAria": "Задачи: выполнено {{completed}}/{{total}}",
"inProgress": "{{count}} в работе",
"inProgress_one": "{{count}} в работе",
"inProgress_few": "{{count}} в работе",
"inProgress_many": "{{count}} в работе",
"inProgress_other": "{{count}} в работе",
"pending": "{{count}} ожидают",
"pending_one": "{{count}} ожидает",
"pending_few": "{{count}} ожидают",
"pending_many": "{{count}} ожидают",
"pending_other": "{{count}} ожидают",
"completed": "{{count}} выполнено",
"completed_one": "{{count}} выполнена",
"completed_few": "{{count}} выполнено",
"completed_many": "{{count}} выполнено",
"completed_other": "{{count}} выполнено"
},
"unassigned": "Не назначено",
"teamPrefix": "Команда:",
"openTask": "Открыть задачу",
"deleteConfirm": {
"title": "Удалить задачу",
"message": "Переместить задачу #{{taskId}} в корзину?",
"confirmLabel": "Удалить",
"cancelLabel": "Отмена"
}
},
"editor": {
"actions": {
"cancel": "Отмена",
"closeEditor": "Закрыть редактор",
"closeTab": "Закрыть вкладку",
"closeTooltip": "Закрыть редактор (Esc)",
"discard": "Отменить изменения",
"discardAndClose": "Отменить и закрыть",
"keep": "Оставить",
"keepMine": "Оставить мои изменения",
"keyboardShortcuts": "Горячие клавиши",
"overwrite": "Перезаписать",
"refreshAria": "Обновить (F5)",
"refreshTooltip": "Обновить git status (F5)",
"reload": "Перезагрузить",
"retry": "Повторить",
"save": "Сохранить",
"saveAllAndClose": "Сохранить всё и закрыть"
},
"ariaLabel": "Редактор проекта",
"dialogs": {
"conflictDescription": "Файл был изменён извне после открытия. Перезаписать его вашими изменениями?",
"conflictTitle": "Конфликт сохранения",
"unsavedDescription": "Есть несохранённые изменения. Что сделать?",
"unsavedFileDescription": "В этом файле есть несохранённые изменения. Что сделать?",
"unsavedTitle": "Несохранённые изменения"
},
"newFile": {
"validation": {
"nameRequired": "Имя не может быть пустым",
"invalidName": "Недопустимое имя",
"invalidCharacters": "Имя содержит недопустимые символы",
"nameTooLong": "Имя слишком длинное"
},
"placeholders": {
"fileName": "Имя файла...",
"folderName": "Имя папки..."
},
"aria": {
"newFileName": "Имя нового файла",
"newFolderName": "Имя новой папки"
}
},
"draftRecovered": "Восстановлены несохранённые изменения из предыдущей сессии.",
"externalChange": {
"changed": "Файл изменён на диске.",
"deleted": "Файла больше нет на диске."
},
"saveFailed": "Не удалось сохранить: {{error}}",
"sidebar": {
"explorer": "Проводник",
"hide": "Скрыть sidebar",
"hideWithShortcut": "Скрыть sidebar ({{shortcut}})",
"show": "Показать sidebar",
"showWithShortcut": "Показать sidebar ({{shortcut}})"
},
"searchInFiles": {
"title": "Поиск по файлам",
"closeSearch": "Закрыть поиск",
"closeSearchShortcut": "Закрыть поиск (Esc)",
"searchPlaceholder": "Искать...",
"matchCase": "Учитывать регистр",
"matchCaseToggle": "Aa",
"noResults": "Ничего не найдено",
"resultsSummary": "{{count}} совпадений в {{fileCount}} файлах",
"resultsSummary_one": "{{count}} совпадение в {{fileCount}} файлах",
"resultsSummary_few": "{{count}} совпадения в {{fileCount}} файлах",
"resultsSummary_many": "{{count}} совпадений в {{fileCount}} файлах",
"resultsSummary_other": "{{count}} совпадений в {{fileCount}} файлах",
"truncated": "(обрезано)"
},
"fileTree": {
"failedToLoadFiles": "Не удалось загрузить файлы: {{error}}",
"loading": "Загрузка файлов...",
"empty": "Файлы не найдены",
"dropForProjectRoot": "Перетащите сюда для корня проекта",
"moveToTrash": "Переместить в корзину",
"moveToTrashConfirm": "Переместить \"{{name}}\" в корзину?",
"cancel": "Отмена"
},
"goToLine": {
"title": "Перейти к строке",
"position": "(текущая: {{current}}, всего: {{total}})",
"placeholder": "Номер строки, +смещение, -смещение или %",
"go": "Перейти"
},
"searchPanel": {
"previousMatch": "Предыдущее совпадение",
"nextMatch": "Следующее совпадение",
"close": "Закрыть",
"replacePlaceholder": "Замена",
"replace": "Заменить",
"replaceNext": "Заменить следующее",
"all": "Все",
"replaceAll": "Заменить все"
},
"statusBar": {
"position": "Стр {{line}}, Кол {{col}}",
"enableWatcher": "Включить отслеживание файлов",
"disableWatcher": "Отключить отслеживание файлов",
"watch": "следить",
"watching": "слежение",
"watchExternalChanges": "Следить за внешними изменениями",
"disableExternalWatcher": "Отключить отслеживание внешних изменений",
"encodingUtf8": "UTF-8",
"spaces": "Пробелы: {{count}}"
},
"imagePreview": {
"loading": "Загрузка предпросмотра...",
"openFullSize": "Открыть полноразмерный предпросмотр",
"openSystemViewer": "Открыть в системном просмотрщике"
},
"quickOpen": {
"title": "Быстрое открытие",
"searchPlaceholder": "Поиск файлов по имени...",
"loading": "Загрузка файлов...",
"empty": "Файлы не найдены"
},
"errorBoundary": {
"crashed": "Редактор упал",
"unknownError": "Неизвестная ошибка"
},
"binaryPlaceholder": {
"file": "Бинарный файл ({{size}})"
},
"unsavedChanges": "Несохранённые изменения",
"empty": {
"selectFile": "Выберите файл в дереве, чтобы редактировать"
},
"search": {
"toggleReplace": "Переключить замену",
"placeholder": "Поиск"
},
"shortcuts": {
"title": "Горячие клавиши",
"groups": {
"fileOperations": "Операции с файлами",
"search": "Поиск",
"navigation": "Навигация",
"editing": "Редактирование",
"markdown": "Markdown",
"general": "Общее"
},
"actions": {
"quickOpen": "Быстрое открытие",
"save": "Сохранить",
"saveAll": "Сохранить всё",
"closeTab": "Закрыть вкладку",
"findInFile": "Найти в файле",
"searchInFiles": "Поиск по файлам",
"goToLine": "Перейти к строке",
"nextTab": "Следующая вкладка",
"previousTab": "Предыдущая вкладка",
"cycleTabs": "Переключать вкладки",
"toggleSidebar": "Переключить боковую панель",
"undo": "Отменить",
"redo": "Повторить",
"selectNextMatch": "Выбрать следующее совпадение",
"toggleComment": "Переключить комментарий",
"splitPreview": "Разделённый предпросмотр",
"fullPreview": "Полный предпросмотр",
"closeEditor": "Закрыть редактор"
}
},
"toolbar": {
"enableWordWrap": "Включить перенос строк",
"disableWordWrap": "Отключить перенос строк",
"closeSplitPreview": "Закрыть разделённый предпросмотр",
"closePreview": "Закрыть предпросмотр"
}
},
"launch": {
"actions": {
"createSchedule": "Создать расписание",
"creating": "Создание...",
"goToDashboard": "Перейти в Dashboard",
"launchTeam": "Запустить команду",
"launching": "Запуск...",
"relaunchTeam": "Перезапустить команду",
"relaunching": "Перезапуск...",
"saveChanges": "Сохранить изменения",
"saving": "Сохранение..."
},
"billing": {
"prefix": "С 15 июня 2026 года Anthropic списывает использование",
"readArticle": "Открыть статью Anthropic",
"suffix": "и Agent SDK из ежемесячного Agent SDK credit отдельно от интерактивных лимитов Claude Code. Credit обновляется каждый billing cycle, неиспользованный остаток не переносится."
},
"conflict": {
"description": "Запуск двух команд в одной директории рискован - они могут конфликтовать при изменении одних и тех же файлов. Лучше выбрать другую директорию или git worktree для изоляции.",
"title": "Другая команда \"{{team}}\" уже работает в этой working directory",
"workingDirectory": "Working directory:"
},
"description": {
"createSchedule": "Настроить автоматическое выполнение Claude task",
"createScheduleForTeam": "Настроить автоматические запуски для команды \"{{team}}\"",
"editSchedule": "Редактирование расписания для команды \"{{team}}\"",
"launchPrefix": "Запустить команду",
"launchSuffix": "через локальный Claude CLI.",
"relaunchPrefix": "Остановить текущий запуск для",
"relaunchSuffix": "и запустить его заново через локальный Claude CLI."
},
"prepare": {
"action": {
"launch": "запуск",
"relaunch": "перезапуск"
},
"blocked": "Runtime environment недоступен - {{action}} заблокирован",
"checkingProviders": "Проверка выбранных providers...",
"failed": "Не удалось подготовить выбранных providers",
"preflight": "Pre-flight проверка, чтобы поймать ошибки до действия: {{action}}",
"preparingEnvironment": "Подготовка environment...",
"ready": "Все выбранные providers готовы.",
"readyWithNotes": "Все выбранные providers готовы, есть заметки.",
"unsupportedPreload": "Текущая версия preload не поддерживает team:prepareProvisioning. Перезапустите dev app.",
"selectWorkingDirectory": "Выберите рабочую директорию, чтобы проверить окружение запуска.",
"someProvidersNeedAttention": "Некоторым выбранным providers нужно внимание."
},
"prompt": {
"label": "Prompt",
"oneShotPrefix": "Этот prompt будет передан в",
"oneShotSuffix": "для one-shot выполнения",
"saved": "Сохранено",
"schedulePlaceholder": "Инструкции для Claude, которые нужно выполнить по расписанию...",
"teamLeadOptional": "Prompt для team lead (optional)",
"teamLeadPlaceholder": "Инструкции для team lead..."
},
"providerChanged": "Provider изменён с {{from}} на {{to}}. Предыдущая lead session не будет возобновлена, lead начнёт с fresh context, чтобы новый runtime применился корректно.",
"relaunchFreshSession": "Team relaunch запускает fresh lead session. Durable team state, task board и настройки участников будут rehydrated в launch prompt.",
"relaunchWarning": {
"description": "Сохранение этих настроек остановит текущий team process, сохранит обновлённый roster и снова запустит команду с новым runtime.",
"title": "Relaunch перезапустит текущий team run"
},
"schedule": {
"labelOptional": "Label (optional)",
"labelPlaceholder": "Например: Daily code review, Nightly tests...",
"maxBudgetUsd": "Max budget (USD)",
"maxTurns": "Max turns",
"noLimit": "Без лимита",
"noMatches": "Команды не найдены по поиску.",
"noTeams": "Нет доступных команд. Сначала создайте команду.",
"searchTeams": "Поиск команд...",
"selectTeam": "Выберите команду...",
"team": "Команда",
"title": "Расписание"
},
"title": {
"createSchedule": "Создать расписание",
"editSchedule": "Редактировать расписание",
"launch": "Запуск команды",
"relaunch": "Перезапуск команды"
},
"errors": {
"loadProjectsFailed": "Не удалось загрузить проекты",
"saveScheduleFailed": "Не удалось сохранить расписание",
"relaunchFailed": "Не удалось перезапустить команду",
"launchFailed": "Не удалось запустить команду"
},
"validation": {
"openCodeLeadModelRequired": "Для lead на OpenCode нужно выбрать модель.",
"openCodeTeammateRequired": "Для lead на OpenCode нужен хотя бы один teammate OpenCode.",
"selectWorkingDirectory": "Выберите рабочую директорию (cwd)",
"fixMemberNames": "Исправьте имена участников перед запуском",
"memberNamesUnique": "Имена участников должны быть уникальными перед запуском"
},
"optionalSettings": {
"relaunchTitle": "Настройки перезапуска",
"title": "Дополнительные настройки запуска",
"relaunchDescription": "Проверьте состав и runtime lead перед перезапуском команды.",
"description": "Оставьте запуск сфокусированным на пути проекта и раскрывайте этот блок только когда нужен дополнительный контроль."
}
},
"list": {
"actions": {
"copyTeam": "Скопировать команду",
"createTeam": "Создать команду",
"deleteForever": "Удалить навсегда",
"deletePermanently": "Удалить окончательно",
"deleteTeam": "Удалить команду",
"launching": "Запуск...",
"launchTeam": "Запустить команду",
"relaunchTeam": "Перезапустить команду",
"restore": "Восстановить",
"restoreTeam": "Восстановить команду",
"retry": "Повторить",
"stopTeam": "Остановить команду",
"stopping": "Остановка..."
},
"electronOnly": {
"description": "В browser mode доступ к локальным директориям `~/.claude/teams` недоступен.",
"title": "Команды доступны только в Electron mode"
},
"empty": {
"description": "Создайте команду здесь, чтобы начать. Она автоматически появится в списке.",
"localOnly": "Создание команд доступно только в локальном Electron mode.",
"title": "Команды не найдены"
},
"filter": {
"clearAll": "Очистить всё",
"label": "Фильтровать команды",
"projectPriority": "Приоритет проекта",
"status": "Статус"
},
"loadFailed": "Не удалось загрузить команды",
"loading": "Загрузка команд...",
"localOnly": "Доступно только в локальном Electron mode.",
"membersCount": "Участников: {{count}}",
"membersCount_few": "Участников: {{count}}",
"membersCount_many": "Участников: {{count}}",
"membersCount_one": "Участник: {{count}}",
"membersCount_other": "Участников: {{count}}",
"noDescription": "Нет описания",
"noMatches": "Нет команд по текущим фильтрам",
"partial": {
"pending": "Последний запуск ещё сверяется.",
"skipped": "В последнем запуске были пропущены teammates.",
"skippedWithCount": "Последний запуск пропустил {{count}}/{{expected}} teammate.",
"skippedWithCount_few": "Последний запуск пропустил {{count}}/{{expected}} teammates.",
"skippedWithCount_many": "Последний запуск пропустил {{count}}/{{expected}} teammates.",
"skippedWithCount_one": "Последний запуск пропустил {{count}}/{{expected}} teammate.",
"skippedWithCount_other": "Последний запуск пропустил {{count}}/{{expected}} teammates.",
"stopped": "Последний запуск остановился до подключения всех teammates.",
"stoppedWithCount": "Последний запуск остановился до подключения {{count}}/{{expected}} teammate.",
"stoppedWithCount_few": "Последний запуск остановился до подключения {{count}}/{{expected}} teammates.",
"stoppedWithCount_many": "Последний запуск остановился до подключения {{count}}/{{expected}} teammates.",
"stoppedWithCount_one": "Последний запуск остановился до подключения {{count}}/{{expected}} teammate.",
"stoppedWithCount_other": "Последний запуск остановился до подключения {{count}}/{{expected}} teammates."
},
"searchPlaceholder": "Поиск команд...",
"sections": {
"otherTeams": "Другие команды",
"projectTeams": "Команды для {{project}}",
"selectedProject": "выбранного проекта"
},
"solo": "Solo",
"status": {
"active": "Активно",
"deleted": "Удалено",
"launching": "Запуск...",
"offline": "Offline",
"partialFailure": "Запуск частично не удался",
"partialPending": "Bootstrap ожидает",
"partialSkipped": "Запуск пропустил участника",
"running": "Работает"
},
"title": "Выбор команды",
"trash": "Корзина ({{count}})",
"trash_few": "Корзина ({{count}})",
"trash_many": "Корзина ({{count}})",
"trash_one": "Корзина ({{count}})",
"trash_other": "Корзина ({{count}})",
"deleteDraft": {
"title": "Удалить черновик",
"message": "Удалить черновик команды «{{teamName}}»? Это действие нельзя отменить.",
"confirmLabel": "Удалить",
"cancelLabel": "Отмена"
},
"moveToTrash": {
"title": "Переместить в корзину",
"message": "Переместить команду «{{teamName}}» в корзину? Её можно будет восстановить позже.",
"confirmLabel": "В корзину",
"cancelLabel": "Отмена"
},
"deleteForever": {
"title": "Удалить навсегда",
"message": "Удалить команду «{{teamName}}» навсегда? Все данные будут потеряны.",
"confirmLabel": "Удалить навсегда",
"cancelLabel": "Отмена"
}
},
"messageComposer": {
"crossTeam": {
"hint": "Совет: cross-team сообщения идут team lead целевой команды. Если ответ должен вернуться вашему team lead, а не вам, явно напишите это в сообщении."
},
"attachments": {
"attachFiles": "Прикрепить файлы (paste или drag & drop)",
"unavailable": "Вложения недоступны",
"disabledHint": "Файлы можно отправлять online team lead и online OpenCode teammates. Удалите вложения или смените получателя.",
"restrictions": {
"crossTeam": "Файловые вложения не поддерживаются для cross-team сообщений",
"teamOffline": "Команда должна быть online, чтобы прикреплять файлы",
"unsupportedRecipient": "Файлы можно отправлять team lead или OpenCode teammates",
"openCodeOffline": "Команда должна быть online, чтобы прикреплять файлы для OpenCode teammates",
"sending": "Дождитесь завершения текущей отправки перед добавлением файлов",
"maximumReached": "Достигнут лимит вложений",
"leadOnly": "Файлы можно отправлять только team lead"
}
},
"slash": {
"restrictions": {
"attachments": "Slash commands требуют live team lead и не отправляются с вложениями",
"crossTeam": "Slash commands можно запускать только на team lead текущей команды",
"notLead": "Slash commands можно отправлять только team lead",
"leadOffline": "Slash commands требуют, чтобы team lead был online"
}
},
"status": {
"reusedCrossTeamRequest": "Повторно использован недавний cross-team request",
"teamOffline": "Команда offline"
},
"revision": {
"editing": "Редактируется предыдущее сообщение",
"cancel": "Отмена",
"tooltip": "Попросить агента игнорировать предыдущее сообщение и вернуть его текст в composer."
},
"input": {
"charsLeft": "Осталось символов: {{count}}",
"charsLeft_one": "Остался {{count}} символ",
"charsLeft_few": "Осталось {{count}} символа",
"charsLeft_many": "Осталось {{count}} символов",
"charsLeft_other": "Осталось {{count}} символов",
"teamLaunchingPlaceholder": "Команда запускается... сообщение будет поставлено в очередь inbox delivery.",
"crossTeamPlaceholder": "Cross-team сообщение для {{team}}...",
"teamFallback": "команда",
"placeholder": "Напишите сообщение... (Enter для отправки, Shift+Enter для новой строки)",
"slashTip": "Совет: используйте \"/\", чтобы запускать любые Claude commands."
},
"teamSelector": {
"thisTeam": "Эта команда",
"current": "текущая",
"online": "online",
"offline": "offline",
"onlineTitle": "Online",
"offlineTitle": "Offline"
},
"recipient": {
"select": "Выбрать...",
"searchPlaceholder": "Поиск...",
"noResults": "Ничего не найдено"
},
"actions": {
"voiceToText": "Voice to text",
"send": "Отправить",
"sendingUnavailableLaunching": "Отправка недоступна, пока команда запускается"
}
},
"claudeLogs": {
"filter": {
"ariaLabel": "Фильтровать логи",
"tooltip": "Фильтровать логи",
"sections": {
"stream": "Stream",
"content": "Content"
},
"kinds": {
"output": "Output",
"thinking": "Thinking",
"tool": "Tool calls"
},
"actions": {
"reset": "Сбросить",
"save": "Сохранить"
},
"streams": {
"stdout": "stdout",
"stderr": "stderr"
}
},
"rawLineCount": "сырых строк: {{formattedCount}}",
"rawLineCount_one": "{{formattedCount}} сырая строка",
"rawLineCount_few": "сырых строки: {{formattedCount}}",
"rawLineCount_many": "сырых строк: {{formattedCount}}",
"rawLineCount_other": "сырых строки: {{formattedCount}}",
"rawLinesCaptured": "{{count}} записано",
"emptyRawLogs": "{{count}}; среди них пока нет assistant/tool output.",
"noLogsYet": "Логов пока нет.",
"teamNotRunning": "Команда не запущена.",
"searchPlaceholder": "Искать в логах...",
"clearSearch": "Очистить поиск",
"newCount": "+{{count}} новых",
"loading": "Загрузка...",
"showMore": "Показать больше",
"noLogsCaptured": "Логи не записаны.",
"noMatchingLogs": "Подходящих логов нет.",
"openFullscreen": "Открыть логи на весь экран",
"fullscreen": "На весь экран",
"viewingFullscreen": "Просмотр в полноэкранном режиме",
"logsTitle": "Логи",
"sourceSelect": {
"placeholder": "Выберите источник логов...",
"searchPlaceholder": "Искать источники логов...",
"emptyMessage": "Источники логов не найдены.",
"ariaLabel": "Источник логов",
"leadLabel": "Лид",
"selectSourceEmpty": "Выберите источник логов.",
"leadDescription": "Лид команды",
"removedLabel": "удален",
"removedDescription": "Удален"
}
},
"agentGraph": {
"popover": {
"externalTeam": "Внешняя команда",
"process": {
"startedBy": "Запущено:",
"at": "Время:",
"openUrl": "Открыть URL"
},
"overflow": {
"hiddenTasks": "Скрытые задачи",
"empty": "Нет доступных скрытых задач."
},
"member": {
"lead": "Lead",
"workingOn": "работает над",
"recentTools": "Недавние tools",
"spawn": {
"waitingToStart": "ожидает запуска",
"starting": "запускается",
"failed": "ошибка"
},
"state": {
"active": "активен",
"idle": "ожидает",
"offline": "offline",
"runningTool": "запускает tool"
},
"activeTool": {
"running": "Tool выполняется",
"failed": "Tool завершился ошибкой",
"finished": "Tool завершён"
},
"actions": {
"message": "Сообщение",
"profile": "Профиль",
"task": "Задача"
}
}
},
"logPreview": {
"logs": "Логи",
"loading": "Загрузка логов",
"more": "+{{count}} ещё",
"more_one": "+{{count}} ещё",
"more_few": "+{{count}} ещё",
"more_many": "+{{count}} ещё",
"more_other": "+{{count}} ещё",
"unsupportedProvider": "Провайдер не поддерживается",
"openCodeLogsDelayed": "Логи OpenCode задерживаются",
"logsUnavailable": "Логи недоступны",
"noRecentLogs": "Нет недавних логов",
"toolError": "Ошибка инструмента",
"toolResult": "Результат инструмента",
"toolUse": "Вызов инструмента",
"thinking": "Размышление",
"error": "Ошибка",
"logEvent": "Событие лога",
"noErrorOutput": "Нет вывода ошибки",
"noOutput": "Нет вывода",
"noInput": "Нет входных данных"
},
"blockingEdge": {
"title": "Блокирующая зависимость",
"blocks": "блокирует",
"close": "Закрыть",
"blockingHiddenTasks": "Скрытые блокирующие задачи",
"blockedHiddenTasks": "Скрытые заблокированные задачи",
"links_one": "{{count}} связь",
"links_other": "{{count}} связи",
"hiddenBlockingLinks_one": "{{count}} скрытая блокирующая связь",
"hiddenBlockingLinks_other": "{{count}} скрытые блокирующие связи",
"hiddenTaskStack": "Стек скрытых задач",
"hiddenTasks_one": "{{count}} скрытая задача",
"hiddenTasks_other": "{{count}} скрытые задачи",
"task": "Задача",
"openBlockerStack": "Открыть стек блокирующих задач",
"openBlockedStack": "Открыть стек заблокированных задач",
"openBlockerTask": "Открыть блокирующую задачу",
"openBlockedTask": "Открыть заблокированную задачу"
},
"activityHud": {
"activity": "Активность",
"noRecentActivity": "Недавней активности нет",
"more": "+{{count}} ещё",
"more_one": "+{{count}} ещё",
"more_few": "+{{count}} ещё",
"more_many": "+{{count}} ещё",
"more_other": "+{{count}} ещё"
},
"provisioning": {
"launchDetails": "Детали запуска",
"launchDetailsDescription": "Подробный прогресс запуска команды, live-вывод и логи CLI."
}
},
"projectPath": {
"label": "Проект",
"source": {
"claude": "Найдено Claude",
"codex": "Найдено Codex",
"mixed": "Найдено Claude и Codex"
},
"deleted": {
"title": "Папка проекта больше не существует",
"label": "Удалён"
},
"mode": {
"projectList": "Из списка проектов",
"customPath": "Свой путь"
},
"loadingProjects": "Загрузка проектов...",
"selectProject": "Выберите проект...",
"searchPlaceholder": "Поиск проекта по имени или пути",
"empty": "Ничего не найдено",
"selectFromList": "Выберите проект из списка",
"noProjects": "Проекты не найдены, переключитесь на свой путь.",
"customWorkingDirectory": "Custom working directory",
"browse": "Выбрать",
"createAutomatically": "Если директории нет, она будет создана автоматически."
},
"members": {
"badges": {
"worktree": "worktree"
},
"runtimeTelemetry": {
"title": "Локальная нагрузка runtime",
"description": "Только parent и child processes. Remote LLM inference не учитывается.",
"cpu": "CPU",
"memory": "Память",
"summedRss": "суммарный RSS",
"sharedHost": "Метрика shared OpenCode host. Она не эксклюзивна для этого участника.",
"processTreeCapped": "Process tree был ограничен для этого sample.",
"rssHint": "RSS может включать shared pages, поэтому это лучше читать как сигнал нагрузки, а не эксклюзивную память."
},
"editor": {
"title": "Участники",
"addMember": "Добавить участника",
"editAsJson": "Редактировать как JSON",
"runInSeparateWorktrees": "Запускать участников в отдельных worktree",
"agentTeamsMcpOnly": "Только Agent Teams MCP",
"removedCount": "Удалённые ({{count}})",
"removedModelLockReason": "Удалённые участники сохранены для истории soft delete. Восстановите их, чтобы редактировать настройки.",
"memberNamesUnique": "Имена участников должны быть уникальными"
},
"stats": {
"computing": "Расчёт статистики...",
"empty": "Статистика недоступна",
"lines": "Строки",
"linesInfo": "Приблизительно. Точно для инструментов Edit и Write. Записи файлов через Bash оцениваются по паттернам команд (heredoc, echo, sed) и могут быть занижены.",
"files": "Файлы",
"toolCalls": "Вызовы инструментов",
"tokens": "Токены",
"toolUsage": "Использование инструментов",
"filesTouched": "Затронутые файлы ({{count}})",
"viewAllChanges": "Показать все изменения",
"showLess": "Показать меньше",
"moreFiles": "+{{count}} ещё",
"footer": "{{count}} сессий · рассчитано {{computedAgo}}",
"footer_one": "{{count}} сессия · рассчитано {{computedAgo}}",
"footer_few": "{{count}} сессии · рассчитано {{computedAgo}}",
"footer_many": "{{count}} сессий · рассчитано {{computedAgo}}",
"footer_other": "{{count}} сессии · рассчитано {{computedAgo}}"
},
"logs": {
"searching": "Поиск логов...",
"empty": "Логи не найдены",
"waitingForTaskActivity": "Задача выполняется - ожидаем активность сессии (автообновление)...",
"noTaskActivity": "Для этой задачи пока нет активности сессии",
"noMemberActivity": "У этого участника пока нет записанной активности сессии",
"leadSessionTooltip": "Полные логи сессии team lead - полезны для общего orchestration-контекста, не специфичного для этого агента",
"memberSessionTooltip": "Полные логи постоянной сессии участника - полезны, когда работа идёт в корневой member session, а не в subagent-файле",
"startedAt": "начато {{time}}",
"active": "активно",
"showDetails": "Показать детали",
"hideDetails": "Скрыть детали",
"loadingDetails": "Загрузка деталей...",
"failedToLoadDetails": "Не удалось загрузить детали"
},
"detail": {
"relaunchOpenCode": "Перезапустить OpenCode",
"restart": "Перезапустить",
"legacyLogsFallback": "Fallback legacy-логов",
"copyDiagnostics": "Скопировать диагностику",
"pid": "PID {{pid}}",
"removedAt": "Удалён {{date}}",
"failedToRestartMember": "Не удалось перезапустить участника",
"sendMessage": "Отправить сообщение",
"assignTask": "Назначить задачу",
"remove": "Удалить"
},
"list": {
"loading": "Загрузка участников команды",
"unavailable": "Состав участников недоступен",
"unavailableDescription": "{{count}} участников известны из метаданных команды, но детали состава отсутствуют.",
"unavailableDescription_one": "{{count}} участник известен из метаданных команды, но детали состава отсутствуют.",
"unavailableDescription_few": "{{count}} участника известны из метаданных команды, но детали состава отсутствуют.",
"unavailableDescription_many": "{{count}} участников известны из метаданных команды, но детали состава отсутствуют.",
"unavailableDescription_other": "{{count}} участника известны из метаданных команды, но детали состава отсутствуют.",
"soloLeadOnly": "Solo team - только lead",
"removedCount": "Удалённые ({{count}})"
},
"executionLog": {
"empty": "Нечего показать",
"emptyUserMessage": "{{time}} - (пусто)",
"agentInstructions": "Инструкции агента",
"memberTurn": "{{member}} turn",
"agentTurn": "Ход агента",
"turn": "ход"
},
"recentMessages": {
"latest": "Последние сообщения",
"latestForMember": "Последние сообщения - {{member}}",
"loadMore": "Загрузить ещё",
"expand": "Развернуть",
"collapse": "Свернуть"
},
"leadModel": {
"defaultModel": "По умолчанию",
"providerModelAria": "Провайдер {{provider}}, модель {{model}}",
"leadShort": "лид",
"teamLead": "Лид команды",
"syncWithTeammates": "Синхронизировать модель с участниками",
"anthropicTeamWide": "Anthropic для всей команды",
"runtimeInheritance": "Рантайм лида применяется к участникам, если они не задали собственного провайдера или модель.",
"anthropicContextLimit": "Лимит контекста 200K действует на всю команду для рантаймов Anthropic в этом запуске, включая кастомных участников Anthropic."
},
"runtimeLogs": {
"autoRefresh": "Автообновление",
"wrapLines": "Перенос строк",
"loadingTail": "Загрузка хвоста лога процесса...",
"empty": "Лог процесса для этого участника пока не сохранен.",
"copy": "Копировать",
"fileEmpty": "Файл лога процесса пуст.",
"showingLast": "Показаны последние {{bytes}}.",
"showing": "Показано {{bytes}}."
},
"tasks": {
"empty": "У этого участника нет назначенных задач"
},
"messages": {
"loadOlder": "Загрузить более старые сообщения",
"filters": {
"all": "Все",
"messages": "Сообщения",
"comments": "Комментарии"
},
"empty": {
"loading": "Загрузка активности...",
"noComments": "У этого участника нет комментариев",
"noLoadedMessages": "Загруженных сообщений этого участника пока нет",
"noMessages": "Сообщений с этим участником нет",
"noLoadedActivity": "Загруженной активности этого участника пока нет",
"noActivity": "Активности с этим участником нет"
}
},
"actions": {
"openProfile": "Открыть профиль",
"editRole": "Редактировать роль",
"sendMessage": "Отправить сообщение",
"assignTask": "Назначить задачу"
},
"roleSelect": {
"customRolePlaceholder": "Введите свою роль..."
}
},
"schedule": {
"count": "{{count}} schedules",
"count_one": "{{count}} schedule",
"count_few": "{{count}} schedules",
"count_many": "{{count}} schedules",
"count_other": "{{count}} schedules",
"nextRun": "Next: {{next}}",
"actions": {
"runNow": "Запустить сейчас",
"edit": "Редактировать",
"pause": "Пауза",
"resume": "Возобновить",
"delete": "Удалить",
"addSchedule": "Добавить schedule"
},
"runHistory": {
"loading": "Загрузка run history...",
"empty": "Запусков ещё нет"
},
"runLog": {
"title": "Лог запуска",
"exitCode": "exit {{code}}",
"retryCount": "retry {{count}}/{{max}}",
"stillRunning": "Задача ещё выполняется...",
"loadingLogs": "Загрузка логов...",
"errors": "Ошибки",
"close": "Закрыть"
},
"cron": {
"expression": "Cron-выражение",
"highFrequencyWarning": "Высокая частота расписания (интервал меньше 5 минут)",
"nextRuns": "Следующие запуски:",
"timezone": "Часовой пояс",
"selectTimezone": "Выберите часовой пояс",
"warmUpTime": "Время прогрева",
"warmUpDescription": "Подготавливает выбранных провайдеров перед запуском по расписанию",
"errors": {
"enterExpression": "Введите cron-выражение",
"invalidExpression": "Некорректное cron-выражение"
},
"presets": {
"everyHour": "Каждый час",
"everySixHours": "Каждые 6 часов",
"dailyAtNine": "Ежедневно в 9:00",
"weekdaysAtNine": "По будням в 9:00",
"mondayAtNine": "В понедельник в 9:00",
"everyThirtyMinutes": "Каждые 30 минут"
},
"warmUpOptions": {
"none": "Без прогрева",
"fiveMinutes": "5 мин",
"tenMinutes": "10 мин",
"fifteenMinutes": "15 мин",
"thirtyMinutes": "30 мин"
}
},
"empty": {
"title": "Расписаний пока нет",
"description": "Создайте расписание, чтобы автоматически запускать задачи Claude по cron."
},
"title": "Расписания",
"status": {
"active": "Активно",
"paused": "Пауза",
"disabled": "Отключено"
},
"runStatus": {
"pending": "Ожидает",
"warmingUp": "Прогрев",
"warm": "Готово к запуску",
"running": "Выполняется",
"completed": "Завершено",
"failed": "Ошибка",
"interrupted": "Прервано",
"cancelled": "Отменено"
}
},
"openCodeContextConfigHint": {
"summary": "Локальные модели OpenCode могут использовать бюджет контекста OpenCode вместо ограничений только в промпте.",
"description": "Добавьте соответствующие лимиты в конфиг OpenCode для провайдера и модели этого участника. Это поможет OpenCode выполнять compact и prune до того, как локальная модель переполнит контекстное окно.",
"replacePrefix": "Замените",
"and": "и",
"replaceSuffix": "на ID провайдера и модели из вашей настройки OpenCode. Инструкции в промпте вроде",
"promptInstructionsSuffix": "слабее, потому что запрос собирается до того, как модель их прочитает.",
"providerLimits": "Лимиты провайдера",
"compactionConfig": "Конфиг compaction"
},
"sessions": {
"noProjectPath": "Путь проекта не привязан",
"provisioningHint": "Сессии появятся после provisioning команды",
"projectNotFound": "Проект не найден",
"loading": "Загрузка сессий...",
"empty": "Сессии не найдены",
"showAllSessions": "Показать для всех сессий",
"lead": "lead",
"removeFilter": "Убрать фильтр",
"filterBySession": "Фильтровать по этой сессии",
"openSession": "Открыть сессию",
"title": "Сессии"
},
"provisioning": {
"pid": "PID {{pid}}",
"cancel": "Отменить",
"moreWarningsHidden": "Скрыто ещё {{count}} предупреждений",
"diagnostics": "Диагностика",
"liveOutput": "Живой вывод",
"diagnosticsCopied": "Диагностика скопирована",
"copyDiagnostics": "Скопировать диагностику",
"copied": "Скопировано",
"noOutput": "Вывод пока не записан.",
"cliLogs": "Логи CLI",
"steps": {
"starting": "Запуск",
"configuring": "Настройка команды",
"assembling": "Подключение участников",
"finalizing": "Завершение"
},
"providerStatus": {
"status": {
"checking": "проверка...",
"ready": "OK",
"notes": "OK (есть заметки)",
"failed": "ERR",
"pending": "ожидание"
},
"detailSummary": {
"cliBinaryMissing": "CLI binary не найден",
"openCodeRuntimeMissing": "OpenCode runtime отсутствует",
"openCodeWindowsAccessBlocked": "Доступ OpenCode в Windows заблокирован",
"openCodeNoOutput": "Проверка OpenCode runtime не вернула вывод",
"openCodeMcpUnreachable": "OpenCode app MCP недоступен",
"workingDirectoryMissing": "Working directory отсутствует",
"cliBinaryCouldNotStart": "CLI binary не удалось запустить",
"cliPreflightIncomplete": "CLI preflight не завершился",
"authenticationRequired": "Требуется аутентификация",
"runtimeProviderNotConfigured": "Runtime provider не настроен",
"cliPreflightFailed": "CLI preflight завершился с ошибкой",
"selectedModelCompatible": "Выбранная модель совместима",
"selectedModelCompatibilityPending": "Совместимость выбранной модели ещё проверяется",
"selectedModelAvailable": "Выбранная модель доступна",
"selectedModelVerified": "Выбранная модель проверена",
"selectedModelUnavailable": "Выбранная модель недоступна",
"selectedModelTimedOut": "Проверка выбранной модели истекла по таймауту",
"selectedModelCheckFailed": "Проверка выбранной модели не удалась",
"selectedModelDeferred": "Проверка выбранной модели отложена",
"selectedModelPingNotConfirmed": "Ping выбранной модели не подтверждён",
"readyWithNotes": "Готово с заметками",
"needsAttention": "Требует внимания"
},
"modelChecksSummary": "Проверки выбранных моделей - {{details}}",
"modelParts": {
"unavailable": "{{count}} модель недоступна",
"unavailable_one": "{{count}} модель недоступна",
"unavailable_few": "{{count}} модели недоступны",
"unavailable_many": "{{count}} моделей недоступно",
"unavailable_other": "{{count}} модели недоступны",
"checkFailed": "{{count}} проверка модели не удалась",
"checkFailed_one": "{{count}} проверка модели не удалась",
"checkFailed_few": "{{count}} проверки моделей не удались",
"checkFailed_many": "{{count}} проверок моделей не удались",
"checkFailed_other": "{{count}} проверки моделей не удались",
"timedOut": "{{count}} модель по таймауту",
"timedOut_one": "{{count}} модель по таймауту",
"timedOut_few": "{{count}} модели по таймауту",
"timedOut_many": "{{count}} моделей по таймауту",
"timedOut_other": "{{count}} модели по таймауту",
"deferred": "{{count}} проверка отложена",
"deferred_one": "{{count}} проверка отложена",
"deferred_few": "{{count}} проверки отложены",
"deferred_many": "{{count}} проверок отложено",
"deferred_other": "{{count}} проверки отложены",
"pingNotConfirmed": "{{count}} ping не подтверждён",
"pingNotConfirmed_one": "{{count}} ping не подтверждён",
"pingNotConfirmed_few": "{{count}} ping не подтверждены",
"pingNotConfirmed_many": "{{count}} ping не подтверждены",
"pingNotConfirmed_other": "{{count}} ping не подтверждены",
"compatibilityPending": "{{count}} совместима, глубокая проверка продолжается",
"compatibilityPending_one": "{{count}} совместима, глубокая проверка продолжается",
"compatibilityPending_few": "{{count}} совместимы, глубокая проверка продолжается",
"compatibilityPending_many": "{{count}} совместимы, глубокая проверка продолжается",
"compatibilityPending_other": "{{count}} совместимы, глубокая проверка продолжается",
"compatible": "{{count}} совместима",
"compatible_one": "{{count}} совместима",
"compatible_few": "{{count}} совместимы",
"compatible_many": "{{count}} совместимы",
"compatible_other": "{{count}} совместимы",
"checking": "{{count}} проверяется",
"checking_one": "{{count}} проверяется",
"checking_few": "{{count}} проверяются",
"checking_many": "{{count}} проверяются",
"checking_other": "{{count}} проверяются",
"available": "{{count}} доступна",
"available_one": "{{count}} доступна",
"available_few": "{{count}} доступны",
"available_many": "{{count}} доступны",
"available_other": "{{count}} доступны",
"verified": "{{count}} проверена",
"verified_one": "{{count}} проверена",
"verified_few": "{{count}} проверены",
"verified_many": "{{count}} проверены",
"verified_other": "{{count}} проверены"
},
"openProviderSettings": "Открыть настройки {{provider}}",
"copied": "Скопировано",
"copyDiagnostics": "Скопировать диагностику",
"deepVerificationPending": "Глубокая проверка ещё выполняется. Бесплатные модели OpenCode могут проверяться около 20 секунд.",
"progress": {
"checkingSelectedProviders": "Проверка выбранных провайдеров параллельно...",
"checkingProvider": "Проверка провайдера {{provider}}...",
"checkingProviders": "Проверка провайдеров {{providers}}..."
},
"failureHints": {
"openCodeAccessDenied": "Исправьте права на папку или перенесите проект в папку, доступную пользователю для записи. Запуск от администратора - только временный обходной путь.",
"openCodeBridgeNoOutput": "Перезапустите приложение и runtime OpenCode, затем повторите. Если повторится, скопируйте diagnostics.",
"workingDirectoryMissing": "Выберите существующую рабочую папку, затем откройте этот диалог заново.",
"authenticationRequired": "Авторизуйте нужного провайдера в Claude CLI, затем откройте этот диалог заново.",
"runtimeProviderNotConfigured": "Настройте выбранный provider runtime, затем откройте этот диалог заново.",
"openCodeRuntimeMissing": "Установите или повторите запуск runtime OpenCode из карточки статуса провайдера, затем откройте этот диалог заново.",
"openCodeAppMcpUnreachable": "Повторите launch, чтобы обновить OpenCode app MCP bridge. Если повторится, перезапустите приложение и runtime OpenCode.",
"cliBinaryMissing": "Убедитесь, что локальный бинарь Claude CLI существует и может запускаться, затем откройте этот диалог заново.",
"default": "Исправьте проблему выше, затем откройте этот диалог заново.",
"openCodeNodeModulesSymlinkPermission": "Запустите Agent Teams AI от имени администратора, затем повторите launch."
}
},
"presentation": {
"awaitingPermission": "{{count}} участник(ов) ожидает подтверждения permission",
"nameListWithMore": "{{names}}, +{{count}} ещё",
"waitingForOpenCode": "Ожидание OpenCode: {{names}}",
"bootstrapStalled": "Bootstrap завис: {{names}}",
"bootstrapStalledWithOpenCodeWait": "{{stalled}}; ожидание OpenCode: {{names}}",
"namedPendingDiagnostic": "{{label}}: {{names}}",
"countPendingDiagnostic": "{{count}} - {{label}}",
"pendingLabels": {
"bootstrapStalled": "Bootstrap завис",
"shellOnly": "Только shell",
"waitingForBootstrap": "Ожидание bootstrap",
"bootstrapUnconfirmed": "Bootstrap не подтверждён",
"awaitingPermission": "Ожидание permission",
"waitingForRuntime": "Ожидание runtime",
"shellOnlyLower": "только shell",
"waitingForBootstrapLower": "ожидает bootstrap",
"bootstrapUnconfirmedLower": "bootstrap не подтверждён",
"awaitingPermissionLower": "ожидает permission",
"waitingForRuntimeLower": "ожидает runtime"
},
"failed": {
"memberFailedToStart": "{{name}} не запустился",
"teammatesFailedToStart": "{{count}} участник(ов) не запустилось",
"teammatesFailedRatio": "{{count}}/{{total}} участник(ов) не запустилось"
},
"skipped": {
"memberSkipped": "{{name}} пропущен для этого запуска",
"memberSkippedWithReason": "{{name}} пропущен для этого запуска - {{reason}}",
"memberSkippedCompact": "{{name}} пропущен",
"teammatesSkipped": "{{count}} участник(ов) пропущено",
"teammatesSkippedList": "Пропущенные участники: {{list}}",
"teammatesSkippedRatio": "{{count}}/{{total}} участник(ов) пропущено для этого запуска"
},
"joining": {
"teammatesStillJoining": "{{count}} участник(ов) ещё подключается",
"teammatesStillJoining_one": "{{count}} участник ещё подключается",
"teammatesStillJoining_few": "{{count}} участника ещё подключаются",
"teammatesStillJoining_many": "{{count}} участников ещё подключается",
"teammatesStillJoining_other": "{{count}} участника(ов) ещё подключается",
"teammatesConfirmedRatio": "{{count}}/{{total}} участников подтверждено"
},
"ready": {
"leadOnline": "Lead online",
"allTeammatesJoined": "Все участники подключились: {{count}}",
"teamProvisionedLeadOnline": "Команда подготовлена - lead online",
"teamProvisionedAllJoined": "Команда подготовлена - все участники подключились: {{count}}",
"teamProvisionedStillJoining": "Команда подготовлена - участники ещё подключаются",
"launchFinishedWithErrors": "Запуск завершён с ошибками - {{count}}/{{total}} участник(ов) не запустилось",
"launchContinuedSkipped": "Запуск продолжен - {{count}}/{{total}} участник(ов) пропущено",
"teamLaunchedLeadOnline": "Команда запущена - lead online",
"teamLaunchedAllJoined": "Команда запущена - все участники подключились: {{count}}"
},
"panel": {
"launchFailed": "Запуск не удался",
"launchDetails": "Детали запуска",
"launchFinishedWithErrors": "Запуск завершён с ошибками",
"launchContinuedSkipped": "Запуск продолжен с пропущенными участниками",
"coreTeamReady": "Основная команда готова",
"finishingLaunch": "Завершение запуска",
"teamLaunched": "Команда запущена",
"launchingTeam": "Запуск команды"
}
}
},
"liveRuntimeStatus": {
"title": "Статус live runtime",
"description": "Информационный heartbeat и состояние запуска. Управление процессами находится ниже.",
"source": "источник: {{source}}",
"lane": "lane {{lane}}",
"diagnosticOnly": "Только для диагностики",
"updated": "обновлено {{value}}",
"states": {
"running": "Работает",
"starting": "Запускается",
"waiting": "Ожидает",
"degraded": "Требует внимания",
"stopped": "Остановлен",
"unknown": "Неизвестно"
}
},
"taskLogs": {
"exact": {
"title": "Точные логи задачи",
"loading": "Загрузка точных логов задачи...",
"description": "Точные фрагменты transcript отображаются теми же компонентами execution-log, что и в логах.",
"emptyTitle": "Точных логов задачи пока нет",
"emptyDescription": "Точные transcript bundles появятся здесь, когда будут доступны явные метаданные transcript, связанные с задачей.",
"summaryOnly": "только summary"
},
"executionSessions": {
"title": "Сессии выполнения",
"online": "Онлайн",
"updating": "Обновление...",
"description": "Просмотр и предпросмотр старых транскриптов, сгруппированных по сессиям."
},
"stream": {
"title": "Поток логов задачи"
}
},
"kanban": {
"taskCard": {
"cancelTask": "Отменить задачу {{taskId}}",
"cancel": "Отменить",
"moveBackToTodoConfirm": "Переместить задачу обратно в TODO и уведомить команду?",
"confirm": "Подтвердить",
"keep": "Оставить",
"changesNeedAttention": "Изменения требуют внимания",
"changes": "Изменения",
"deleteTask": "Удалить задачу",
"taskLogsActive": "Логи задачи активны",
"newTaskLogsArriving": "Поступают новые логи задачи",
"awaitingUser": "Ожидает пользователя",
"awaitingLead": "Ожидает lead",
"blockedBy": "Заблокировано",
"blocks": "Блокирует",
"start": "Начать",
"complete": "Завершить",
"approve": "Одобрить",
"requestReview": "Запросить ревью",
"manualReview": "Ручное ревью",
"requestChanges": "Запросить правки"
},
"filter": {
"title": "Фильтр задач",
"session": "Сессия",
"allSessions": "Все сессии",
"teammate": "Участник",
"unassigned": "(не назначено)",
"column": "Колонка",
"clearAll": "Очистить всё"
},
"board": {
"addTask": "Добавить задачу",
"noTasks": "Нет задач",
"showMore": "Показать ещё {{count}}",
"hiddenCount": "Скрыто: {{count}}",
"trash": "Корзина",
"gridView": "Вид сеткой",
"columnsView": "Вид колонками"
},
"trash": {
"title": "Корзина",
"empty": "Удалённых задач нет",
"subject": "Тема",
"owner": "Исполнитель",
"deleted": "Удалено",
"unassigned": "Не назначено",
"restoreTask": "Восстановить задачу",
"restore": "Восстановить",
"close": "Закрыть"
},
"sort": {
"title": "Сортировка задач",
"sortBy": "Сортировать по",
"reset": "Сбросить",
"options": {
"updatedAt": {
"label": "Последнее обновление",
"description": "Сначала недавно обновлённые"
},
"createdAt": {
"label": "Создано",
"description": "Сначала новые"
},
"owner": {
"label": "Исполнитель",
"description": "По имени исполнителя"
},
"manual": {
"label": "Вручную",
"description": "Порядок drag-and-drop"
}
}
},
"search": {
"clearSearch": "Очистить поиск",
"tasks": "Задачи",
"createdAgo": "создано {{time}}",
"updatedAgo": "обновлено {{time}}",
"placeholder": "Поиск задач... (#id или текст)"
},
"grid": {
"addTask": "Добавить задачу",
"noTasks": "Нет задач"
},
"title": "Канбан",
"columns": {
"todo": "TODO",
"inProgress": "В РАБОТЕ",
"review": "РЕВЬЮ",
"done": "ГОТОВО",
"approved": "ОДОБРЕНО"
}
},
"worktreeGitReadiness": {
"checking": "Проверка Git-репозитория для worktree участников...",
"ready": "Git worktree готовы.",
"readyOnBranch": "Git worktree готовы на ветке {{branch}}.",
"needsSetup": "Для worktree isolation нужна настройка Git",
"initialCommitNotice": "Действие initial commit добавит в индекс и закоммитит все текущие файлы с сообщением",
"initializeRepository": "Инициализировать Git-репозиторий",
"createInitialCommit": "Создать initial commit",
"initialCommitMessage": "chore: initial commit"
},
"toolApproval": {
"settings": "Настройки",
"autoAllowAllTools": "Автоматически разрешать все инструменты",
"autoAllowFileEdits": "Автоматически разрешать правки файлов (Edit, Write, NotebookEdit)",
"autoAllowSafeCommands": "Автоматически разрешать безопасные команды (git, pnpm, npm, ls...)",
"onTimeout": "При таймауте:",
"after": "через",
"secondsShort": "сек",
"timeoutActions": {
"wait": "Ждать всегда",
"allow": "Разрешить",
"deny": "Отклонить"
},
"submit": "Отправить",
"allow": "Разрешить",
"deny": "Отклонить",
"allowAll": "Разрешить всё",
"pendingCount": "ожидает: {{count}}",
"autoActionIn": "Авто-{{action}} через {{time}}",
"diff": {
"previewChanges": "Предпросмотр изменений",
"readingFile": "Чтение файла...",
"binaryFile": "Бинарный файл - предпросмотр невозможен",
"truncated": "Файл обрезан на 2MB - diff может быть неполным",
"newFile": "Новый файл"
}
},
"memberWorkSync": {
"details": {
"title": "Синхронизация работы участника",
"actionableItems": "Действия",
"fingerprint": "Fingerprint",
"report": "Отчёт",
"none": "нет",
"shadowWouldNudge": "Shadow отправил бы nudge",
"yes": "да",
"no": "нет",
"moreActionableItems": "Ещё действий: {{count}}",
"diagnostics": "Диагностика: {{diagnostics}}"
},
"title": "Синхронизация работы участника",
"loadingDiagnostics": "Загрузка диагностики синхронизации работы участника.",
"diagnosticsUnavailable": "Диагностика синхронизации работы участника недоступна."
},
"advancedCli": {
"title": "Дополнительно",
"useWorktree": "Использовать worktree",
"recent": "Недавние",
"commandPreview": "Предпросмотр команды",
"customArguments": "Пользовательские аргументы",
"validate": "Проверить",
"validation": {
"allFlagsValid": "Все флаги корректны",
"unknownFlags": "Неизвестные: {{flags}}",
"protectedFlags": "Защищённые: {{flags}}",
"failed": "Проверка не удалась"
},
"placeholders": {
"worktreeName": "worktree-name"
}
},
"processes": {
"ago": "{{time}} назад",
"stoppedAgo": "остановлен {{time}} назад",
"running": "Работает",
"stopped": "Остановлен",
"stopProcess": "Остановить процесс (SIGTERM)",
"kill": "Убить",
"openInBrowser": "Открыть в браузере",
"open": "Открыть",
"pid": "PID{{pid}}",
"title": "Процессы CLI"
},
"taskActivity": {
"loadingDetails": "Загрузка деталей активности...",
"contextUnavailable": "Детальный transcript-контекст для этой активности больше недоступен.",
"loading": "Загрузка активности задачи...",
"lowSignalOnly": "Ключевая активность задачи пока не найдена. Низкоуровневые детали выполнения доступны ниже в Task Log Stream.",
"empty": "Явная активность задачи пока не найдена в доступных transcript. Более старые или эвристические логи сессий могут быть доступны ниже в Execution Sessions.",
"title": "Активность задачи",
"description": "Ключевая runtime-активность, связанная с задачей через transcript metadata."
},
"sendMessage": {
"title": "Отправить сообщение",
"description": "Отправить прямое сообщение участнику команды.",
"recipientLabel": "Получатель",
"selectMemberPlaceholder": "Выберите участника...",
"messageLabel": "Сообщение",
"placeholder": "Напишите сообщение... (Enter для отправки)",
"send": "Отправить",
"sending": "Отправка...",
"charsLeft": "осталось символов: {{count}}",
"saved": "Сохранено",
"attachments": {
"teamOnlineRequired": "Команда должна быть онлайн, чтобы прикреплять файлы",
"recipientUnsupported": "Файлы можно отправлять лиду команды или участникам OpenCode",
"openCodeOnlineRequired": "Команда должна быть онлайн, чтобы прикреплять файлы для участников OpenCode",
"disabledHint": "Файлы поддерживаются для онлайн-лида команды и онлайн-участников OpenCode. Удалите вложения или смените получателя.",
"attachFiles": "Прикрепить файлы (вставка или drag & drop)",
"unavailable": "Вложения недоступны"
},
"quote": {
"remove": "Удалить цитату",
"replyingTo": "Ответ для"
}
},
"taskComments": {
"cancelReply": "Отменить ответ",
"replyingTo": "Ответ для",
"placeholder": "Добавьте комментарий... (Enter для отправки)",
"attachFile": "Прикрепить файл (или вставить)",
"voiceToText": "Голос в текст",
"comment": "Комментарий",
"charsLeft": "осталось символов: {{count}}",
"saved": "Сохранено",
"awaitingReplyFrom": "Ожидается ответ от",
"or": "или"
},
"taskAttachments": {
"dropImageHere": "Перетащите изображение сюда",
"attachImage": "Прикрепить изображение",
"pasteOrDragDrop": "или вставьте / перетащите",
"fromOriginalMessage": "Из исходного сообщения",
"dropFilesHere": "Перетащите файлы сюда",
"loading": "Загрузка вложений..."
},
"permissions": {
"autoApproveAllTools": "Автоодобрение всех инструментов",
"autonomousModeDescription": "Автономный режим: инструменты команды выполняются без подтверждения. Будьте осторожны с недоверенным кодом.",
"manualModeDescription": "Ручной режим: вы будете одобрять или отклонять каждый вызов инструмента в реальном времени."
},
"memberLogStream": {
"tabs": {
"execution": "Выполнение",
"process": "Процесс"
},
"filters": {
"all": "Все"
},
"logs": {
"title": "Логи",
"loading": "Загрузка потока логов участника...",
"emptyTitle": "Для этого участника пока не найдено записей потока логов.",
"emptyDescription": "Транскрипт участника и runtime-логи появятся здесь, когда будут доступны."
}
},
"reviewDialog": {
"placeholder": "Опишите, что нужно изменить... (Enter для отправки)",
"submit": "Отправить",
"charsLeft": "осталось символов: {{count}}",
"saved": "Сохранено",
"title": "Запросить изменения"
},
"dialogs": {
"actions": {
"openDashboard": "Открыть дашборд",
"openTeam": "Открыть команду",
"cancel": "Отмена"
},
"membersJson": {
"hide": "Скрыть JSON"
},
"optional": {
"badge": "Опционально"
}
},
"runningTeams": {
"title": "Активные команды",
"status": {
"active": "Активна",
"provisioning": "Запускается",
"idle": "Работает"
},
"noProject": "Без проекта"
},
"layout": {
"maxPanesReached": "Достигнут максимум панелей: {{count}}"
},
"codexReconnect": {
"description": "Сессия Codex выглядит устаревшей. Переподключитесь, чтобы продолжить.",
"useCode": "Использовать код",
"generating": "Генерируется...",
"openLogin": "Открыть вход",
"generateLink": "Создать ссылку"
},
"effortLevel": {
"label": "Уровень усилий (опционально)",
"maxDescription": "Max даёт модели больше всего времени на рассуждение для сложных задач."
},
"contextLimit": {
"limitTo200k": "Ограничить контекст до 200K токенов",
"always200k": "(для этой модели всегда 200K)",
"tooltipContent": "Ограничивает запуск окном контекста 200K токенов, когда это поддерживается.",
"tooltipTitle": "Лимит контекста"
},
"roleSelect": {
"noRole": "Без роли",
"customRole": "Своя роль...",
"searchPlaceholder": "Поиск ролей...",
"empty": "Роли не найдены.",
"reservedRole": "Эта роль зарезервирована",
"emptyCustomRole": "Роль не может быть пустой"
}
}