2487 lines
138 KiB
JSON
2487 lines
138 KiB
JSON
{
|
||
"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": "Роль не может быть пустой"
|
||
}
|
||
}
|