open-design/apps/web/src/i18n/locales/ru.ts
BayesWang af4a62b69a
Add configurable project locations (#2041)
* add daemon project location support

* wire project locations into web settings

* localize project location settings

* move default project location to settings

* polish project location selection cards

* fix project location i18n gaps

* fix external project validation cleanup
2026-05-31 04:47:45 +00:00

1874 lines
132 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

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

import type { Dict } from '../types';
import { en } from './en';
export const ru: Dict = {
...en,
'chat.amrCard.switchTitle': 'Не удалось вызвать модель — это выполнение приостановлено',
'chat.amrCard.switchBody': 'Переключитесь на официальный сервис моделей AMR от Open Design — без настройки API-ключа. После входа, авторизации и пополнения это выполнение будет автоматически повторено.',
'chat.amrCard.chipOfficial': 'Официальный хостинг',
'chat.amrCard.chipNoKey': 'Без API-ключа',
'chat.amrCard.chipAutoRetry': 'Авто-повтор после входа',
'chat.amrCard.switchCta': 'Переключиться на AMR и повторить',
'chat.amrError.authMessage': 'Ваш аккаунт AMR ещё не авторизован. Авторизуйте его, и это выполнение будет автоматически повторено.',
'chat.amrError.balanceMessage': 'Баланс AMR исчерпан. Пополните, чтобы продолжить это выполнение.',
'chat.amrError.authorizeCta': 'Авторизовать и повторить',
'chat.amrError.rechargeCta': 'Пополнить AMR',
'chat.antigravityError.launchTerminalCta': 'Sign in via terminal',
'chat.antigravityError.launchSwitchModelCta': 'Switch model in terminal',
'plugins.actions.copyInstallCommand': 'Скопировать команду установки',
'plugins.actions.copyPluginId': 'Скопировать ID плагина',
'plugins.actions.copyReadmeBadge': 'Скопировать бейдж README',
'plugins.actions.openSourceGithub': 'Открыть исходники на GitHub',
'plugins.actions.openSource': 'Открыть исходники',
'plugins.actions.openHomepage': 'Открыть домашнюю страницу',
'plugins.actions.openMarketplace': 'Открыть в маркетплейсе',
'workingDirPicker.title': "Folder",
'workingDirPicker.homeTitle': "Choose where this project should live",
'workingDirPicker.processing': "Processing…",
'workingDirPicker.select': "Choose working directory",
'workingDirPicker.clearAria': "Clear working directory",
'workingDirPicker.replaceFailed': "Could not replace working directory",
'workingDirPicker.unavailable': "Folder picker is unavailable in this build. Run the desktop app to pick a folder.",
'workingDirPicker.openUnavailable': "Open this project in the desktop app to show the folder.",
'workingDirPicker.openFailed': "Could not show this folder",
'workingDirPicker.showInFileManager': "Show in file manager",
'workingDirPicker.replace': "Clear and replace directory…",
'workingDirPicker.recent': "Recent directories",
'handoff.toTarget': 'Hand off to {target}',
'handoff.action': 'Hand off',
'handoff.fallbackTitle': 'No editors found on $PATH - opens in {target}',
'handoff.chooseTargetAria': 'Choose hand-off target',
'handoff.notInstalled': 'Not installed',
'handoff.notDetectedTitle': '{target} - not detected on $PATH',
'homeHero.promptExamples': "Примеры",
'homeHero.footer.designSystem': "Стиль",
'homeHero.footer.autoDesignSystem': "Авто",
'homeHero.footer.autoDesignSystemSummary': "Автоматически подбирает дизайн-систему и визуальный стиль для текущего промпта.",
'homeHero.footer.ratio': "Формат",
'homeHero.footer.duration': "Длительность",
'homeHero.footer.resolution': "Разрешение",
'homeHero.footer.speakerNotes': "Notes",
'homeHero.footer.noSpeakerNotes': "Без заметок",
'homeHero.footer.availableCount': "{n} available",
'homeHero.footer.noMatches': "No matches",
'homeHero.moreShortcuts': "Еще",
'common.cancel': 'Отмена',
'common.save': 'Сохранить',
'common.close': 'Закрыть',
'common.delete': 'Удалить',
'common.rename': 'Переименовать',
'common.edit': 'Редактировать',
'common.preview': 'Предпросмотр',
'common.share': 'Поделиться',
'common.search': 'Поиск',
'common.searchEllipsis': 'Поиск…',
'common.loading': 'Загрузка…',
'common.all': 'Все',
'common.none': 'Нет',
'common.default': 'По умолчанию',
'common.installed': 'установлено',
'common.notInstalled': 'не установлено',
'common.active': 'активно',
'common.offline': 'офлайн',
'common.selected': 'выбрано',
'common.create': 'Создать',
'common.openPreview': 'Открыть предпросмотр',
'common.exitFullscreen': 'Выйти из полноэкранного режима',
'common.fullscreen': 'Полноэкранный режим',
'common.openInNewTab': 'Открыть в новой вкладке',
'common.exportPdf': 'Экспорт в PDF',
'common.exportZip': 'Скачать как .zip',
'common.exportHtml': 'Экспорт как HTML',
'common.exportImage': 'Экспорт как изображение',
'common.exportImageFailed': 'Не удалось захватить изображение. Попробуйте еще раз или воспользуйтесь инструментом создания снимков экрана в браузере.',
'common.justNow': 'только что',
'common.minutesAgo': '{n} мин. назад',
'common.hoursAgo': '{n} ч. назад',
'common.daysAgo': '{n} д. назад',
'common.weeksAgo': '{n}w ago',
'common.now': 'сейчас',
'common.minutesShort': '{n}м',
'common.hoursShort': '{n}ч',
'common.daysShort': '{n}д',
'common.untitled': 'Без названия',
'app.brand': 'Open Design',
'app.brandPill': 'Предварительная исследовательская версия',
'app.brandSubtitle': 'от Nexu Labs',
'app.welcomeLoading': 'Загрузка рабочего пространства…',
'settings.welcomeKicker': "",
'settings.welcomeTitle': "Welcome",
'settings.welcomeSubtitle': "",
'settings.onboardingCreateTitle': 'Start from a brief',
'settings.onboardingCreateBody':
'Describe the site, app, deck, image, or video you want. Open Design will create a project and keep the work editable.',
'settings.onboardingMemoryTitle': 'Save working context',
'settings.onboardingMemoryBody':
'Add preferences, project facts, and recurring rules so future chats pick up the right context.',
'settings.onboardingSystemsTitle': 'Bring your design system',
'settings.onboardingSystemsBody':
'Pick or create a brand system so generated work follows real colors, typography, and product language.',
'settings.onboardingExecutionTitle': 'Choose how generation runs',
'settings.onboardingExecutionBody':
'Official CLI with one-click setup and ready-to-use defaults. Use one key to choose from many models with better pricing.',
'settings.onboardingAmrCloudBenefitOfficial': 'Официально рекомендовано',
'settings.onboardingAmrCloudBenefitReady': 'Без развертывания',
'settings.onboardingAmrCloudBenefitModels': 'Поддерживает Claude Opus 4.8',
'settings.onboardingAmrCloudBenefitPricing': 'SOTA Harness',
'settings.onboardingAmrCloudUpcomingLabel': 'Скоро',
'settings.onboardingAmrCloudUpcomingImageVideo': 'Изображения и видео',
'settings.onboardingAmrCloudUpcomingSkills': 'Много Skills',
'settings.onboardingAmrCloudUpcomingRouting': 'Умная маршрутизация',
'settings.onboardingAmrModelSourceLabel': 'AMR CLI',
'settings.onboardingAmrCloudAuthorizeAction': 'Авторизовать AMR',
'settings.onboardingAmrCloudAuthorizedAction': 'Авторизовано',
'settings.onboardingStepConnect': "Connect",
'settings.onboardingStepDesignSystem': "Design system",
'settings.onboardingStepProfile': "About you",
'settings.onboardingConnectTitle': "Choose a runtime",
'settings.onboardingConnectBody': "",
'settings.onboardingRecommended': "Recommended",
'settings.onboardingLocalTitle': "Local coding agent",
'settings.onboardingLocalBody': "Use an installed CLI such as Claude Code, Codex, Cursor, Gemini, or OpenCode.",
'settings.onboardingLocalAction': "Open CLI settings",
'settings.onboardingCliScanHint': "This usually takes 5-10 seconds.",
'settings.onboardingByokTitle': "Bring your own key",
'settings.onboardingByokBody': "Use your own model provider credentials.",
'settings.onboardingByokAction': "Open BYOK settings",
'settings.onboardingDesignTitle': "Design system",
'settings.onboardingDesignBody': "Generate once, reuse everywhere.",
'settings.onboardingDesignIntroGenerateTitle': "Generate from existing work",
'settings.onboardingDesignIntroGenerateBody': "Upload your design system from GitHub or local code repositories, Figma files, images, and other content assets.",
'settings.onboardingDesignIntroReuseTitle': "Reuse in future work",
'settings.onboardingDesignIntroReuseBody': "Future prototypes, slides, and other content can reference your existing fonts, spacing, logo style, and color tone.",
'settings.onboardingDesignIntroSkipTitle': "Optional for now",
'settings.onboardingDesignIntroSkipBody': "Skip this step if you want to start without generating a design system.",
'settings.onboardingGithubTitle': "Import from GitHub",
'settings.onboardingGithubBody': "Use a frontend repository.",
'settings.onboardingUploadTitle': "Upload local files",
'settings.onboardingUploadBody': "Add project files, screenshots, CSS, docs, or assets.",
'settings.onboardingPromptTitle': "Generate from prompt",
'settings.onboardingPromptBody': "Describe the product or brand.",
'settings.onboardingProfileTitle': "About you",
'settings.onboardingProfileBody': "Optional details for better defaults.",
'settings.onboardingRoleLabel': "Your role",
'settings.onboardingOrgSizeLabel': "Organization size",
'settings.onboardingUseCaseLabel': "Use case",
'settings.onboardingSourceLabel': "Where did you hear about us?",
'settings.onboardingSelectPlaceholder': "Select one",
'settings.onboardingSelectMultiplePlaceholder': "Select one or more",
'settings.onboardingOrgSolo': "Solo / personal (1)",
'settings.onboardingOrgTeam': "Small team (2-10)",
'settings.onboardingOrgStartup': "Startup / SMB (11-50)",
'settings.onboardingOrgGrowth': "Growth company (51-200)",
'settings.onboardingOrgMidMarket': "Mid-market (201-1000)",
'settings.onboardingOrgEnterprise': "Enterprise (1000+)",
'settings.onboardingRolePm': "📋 Product manager",
'settings.onboardingRoleDesigner': "🎨 Designer",
'settings.onboardingRoleEngineer': "💻 Engineer",
'settings.onboardingRoleMarketing': "📣 Marketing",
'settings.onboardingRoleGrowth': "📈 Growth",
'settings.onboardingRoleOps': "⚙️ Operations",
'settings.onboardingRoleFounder': "🚀 Founder / executive",
'settings.onboardingRoleStudent': "🎓 Student / educator",
'settings.onboardingRoleOther': "✨ Other",
'settings.onboardingUseProduct': "🎨 Product design",
'settings.onboardingUseDesignSystem': "🧩 Design system",
'settings.onboardingUsePrototype': "📱 Prototype / app UI",
'settings.onboardingUseLanding': "🌐 Landing pages",
'settings.onboardingUseAds': "📣 Ads / social content",
'settings.onboardingUseDashboard': "📊 Dashboards / internal tools",
'settings.onboardingUseDeck': "🖥️ Presentation / deck",
'settings.onboardingUseMarketing': "📈 Marketing / growth",
'settings.onboardingUseEngineering': "🤝 Engineering handoff",
'settings.onboardingUseAgency': "💼 Agency / client work",
'settings.onboardingSourceGithub': "🐙 GitHub",
'settings.onboardingSourceFriend': "👥 Friend or coworker",
'settings.onboardingSourceSocial': "📱 Social media",
'settings.onboardingSourceProductHunt': "🅿️ Product Hunt",
'settings.onboardingSourceCommunity': "💬 Design / AI community",
'settings.onboardingSourceYoutube': "▶️ YouTube",
'settings.onboardingSourceBlog': "📰 Blog or newsletter",
'settings.onboardingSourceAiTool': "✨ AI tool recommendation",
'settings.onboardingSourceSearch': "🔍 Search",
'settings.onboardingSourceEvent': "🎤 Event or community",
'settings.onboardingBack': "Back",
'settings.onboardingContinue': "Continue",
'settings.onboardingFinish': "Finish setup",
'settings.onboardingSkip': "Skip for now",
'settings.kicker': 'Настройки',
'settings.title': 'Режим выполнения',
'settings.subtitle': 'Выберите локальный CLI или BYOK.',
'settings.modeAria': 'Режим выполнения',
'settings.protocolAria': 'Протокол API',
'settings.modeDaemon': 'Локальный CLI',
'settings.modeDaemonHelp': 'Запуск через CLI код-агента на вашем компьютере',
'settings.modeDaemonOffline': 'Демон не запущен',
'settings.modeDaemonOfflineMeta': 'демон офлайн',
'settings.modeDaemonInstalledMeta': '{count} установлено',
'settings.modeApi': 'API-провайдер',
'settings.modeApiMeta': 'BYOK',
'settings.codeAgent': 'Код-агент',
'settings.codeAgentHint':
'Определяется сканированием вашего PATH. Выберите CLI, через который будут проходить генерации.',
'settings.rescan': '↻ Пересканировать',
'settings.rescanTitle': 'Пересканировать PATH',
'settings.rescanRunning': 'Сканирование...',
'settings.rescanSuccess': 'Сканирование завершено. Доступно: {count}.',
'settings.designSystemRenameFailed': 'Не удалось переименовать. Проверьте демон и повторите попытку.',
'settings.rescanFailed': 'Сканирование не удалось. Проверьте демон и повторите попытку.',
'settings.test': 'Тест',
'settings.testTitle': 'Отправить крошечный тестовый запрос для проверки соединения',
'settings.testRunning': 'Проверка соединения…',
'settings.testCancel': 'Отмена',
'settings.testSuccessApi': 'Подключено. Ответ за {ms} мс — \'{sample}\'',
'settings.testSuccessCli': '{agentName} ответил за {ms} мс — \'{sample}\'',
'settings.testAuthFailed': 'Сбой аутентификации. Проверьте ключ API.',
'settings.testForbidden': 'Доступ запрещен. Проверьте учетную запись, регион или организацию.',
'settings.testNotFoundModel': 'Модель \'{model}\' не найдена на этом эндпойнте.',
'settings.testInvalidModelId': 'ID модели \'{model}\' недействителен. Пользовательский ID должен начинаться с буквы или цифры и не содержать пробелов.',
'settings.testInvalidBaseUrl': 'Base URL недействителен или недоступен.',
'settings.testRateLimited': 'Поставщик ограничил тест. Конфигурация выглядит верной.',
'settings.testUpstream': 'Поставщик вернул {status}. Повторите попытку чуть позже.',
'settings.testTimeout': 'Тест прерван по таймауту через {ms} мс.',
'settings.testAgentMissing': '{agentName} не установлен или отсутствует в PATH.',
'settings.testAgentSpawn': 'Не удалось запустить {agentName}: {detail}.',
'settings.testUnknown': 'Тест не пройден: {detail}',
'settings.agentInstall.install': 'Установить',
'settings.agentInstall.docs': 'Документация',
'settings.agentInstall.pathHint':
'Если вы установили CLI через npm или Homebrew, но она всё ещё отмечена как не установленная, убедитесь, что bin-каталог инструмента есть в PATH, который наследует daemon Open Design (в macOS PATH у Terminal и GUI-приложений может отличаться). См. QUICKSTART.md (раздел "Local agent CLI and PATH").',
'settings.agentInstall.stepOpenLinks': 'Откройте Установить или Документация для нужного агента.',
'settings.agentInstall.stepAuth':
'Пройдите аутентификацию в CLI поставщика (вход или добавление API-ключей), затем вернитесь в Open Design.',
'settings.agentInstall.stepRescan': 'Нажмите «Пересканировать» в этом разделе.',
'settings.agentInstall.stepSelect': 'Выберите карточку агента, когда он появится как установленный.',
'settings.noAgentsDetected':
'Агенты ещё не обнаружены. Установите один из следующих инструментов: Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen или GitHub Copilot CLI, затем нажмите «Пересканировать».',
'settings.agentInstalledGroup': 'Ваши CLI ({count})',
'settings.agentInstallGroup': 'Доступно для установки ({count})',
'settings.agentAuthRequired': 'Требуется аутентификация',
'settings.agentAuthUnknown': 'Статус аутентификации неизвестен',
'settings.amrLogin': 'Sign in',
'settings.amrLogout': 'Sign out',
'settings.amrLoggingIn': 'Signing in…',
'settings.amrLoggingOut': 'Signing out…',
'settings.amrLoggedInAs': 'Signed in as {email}',
'settings.amrLoggedInWithPlan': 'Signed in as {email} · {plan}',
'settings.amrLoggedInPill': 'Signed in',
'settings.amrNotLoggedIn': 'Not signed in',
'settings.amrCloud': 'Open Design AMR',
'settings.amrAuthorize': 'Authorize',
'settings.amrBenefitOfficial': 'Officially maintained',
'settings.amrBenefitLowerPrice': 'Lower price',
'settings.amrBenefitManyModels': 'Many models',
'settings.amrPromoBonus': 'Limited bonus: +100%',
'settings.amrSignInToContinue': 'Sign in to continue',
'settings.amrSignIn': 'Sign in',
'settings.amrSignedIn': 'Signed in',
'settings.amrNotSignedIn': 'Not signed in',
'settings.amrSigningIn': 'Signing in…',
'settings.amrCancelSignIn': 'Cancel sign-in',
'settings.amrAccountStatus': 'AMR account status',
'settings.amrLoginErrorCompact': 'AMR sign-in failed.',
'settings.apiSection': 'Anthropic API',
'settings.quickFillProvider': 'Быстро заполнить провайдера',
'settings.customProvider': 'Пользовательский провайдер',
'settings.apiKey': 'API-ключ',
'settings.showKey': 'Показать ключ',
'settings.hideKey': 'Скрыть ключ',
'settings.show': 'Показать',
'settings.hide': 'Скрыть',
'settings.model': 'Модель',
'settings.suggestedModelsHint':
'Это рекомендуемые модели для этого протокола. Ваш провайдер может поддерживать другие модели.',
'settings.baseUrl': 'Базовый URL',
'settings.baseUrlInvalid': 'Введите корректный публичный URL с http:// или https://. Localhost разрешен; IP частных сетей блокируются.',
'settings.baseUrlCustomize': 'Настроить',
'settings.baseUrlDefaultHint': 'Эндпоинт по умолчанию. Обычно его не нужно менять.',
'settings.azureBaseUrlPlaceholder': 'https://my-resource.openai.azure.com',
'settings.azureBaseUrlHint': 'Find this in Azure portal → your resource → Endpoint.',
'settings.azureDeploymentModel': 'Имя развертывания',
'settings.azureDeploymentModelHint':
'Для Azure OpenAI это поле используется как имя развертывания в /openai/deployments/<model>. Укажите имя развертывания, созданного в Azure.',
'settings.apiVersion': 'Версия API',
'settings.byokImageModel': 'Модель генерации изображений',
'settings.maxTokens': 'Макс. токенов (опционально)',
'settings.maxTokensHint':
'Ограничение длины ответа. У каждой модели свой настроенный дефолт (виден в плейсхолдере); оставьте поле пустым, чтобы использовать его, или введите число, чтобы переопределить.',
'settings.apiHint': 'Запросы отправляются через локальный прокси daemon на указанную Base URL. Ключ хранится только в этом браузере и отправляется в запросах к провайдеру.',
'settings.skipForNow': 'Пропустить сейчас',
'settings.getStarted': 'Начать',
'settings.envConfigure': 'Режим выполнения',
'settings.localCli': 'Локальный CLI',
'settings.anthropicApi': 'Anthropic API',
'settings.noAgentSelected': 'агент не выбран',
'settings.language': 'Язык',
'settings.languageHint': 'Переключить язык интерфейса. Сохраняется в этом браузере.',
'settings.appearance': 'Внешний вид',
'settings.appearanceHint': 'Выберите светлую, тёмную или системную тему.',
'settings.themeSystem': 'Системная',
'settings.themeLight': 'Светлая',
'settings.themeDark': 'Тёмная',
'settings.agentModelHead': 'Модель для:',
'settings.modelPicker': 'Модель',
'settings.modelSourceLive': 'Из CLI в реальном времени',
'settings.modelSourceFallback': 'Встроенный список',
'settings.reasoningPicker': 'Сложность рассуждений',
'settings.modelPickerHint':
'Получается из CLI, если он поддерживает команду `models`. «По умолчанию» оставляет выбор конфигурации CLI, а «Пользовательская…» позволяет ввести любой ID модели, который CLI принимает.',
'settings.modelPickerLiveHint':
'Модели обновлены из установленного CLI. Вариант по умолчанию по-прежнему использует конфигурацию CLI.',
'settings.modelPickerFallbackHint':
'Показаны встроенные значения по умолчанию. Нажмите «Пересканировать», чтобы получить актуальные модели из CLI.',
'settings.cliEnvTitle': 'CLI config locations',
'settings.cliEnvHint':
'Set non-secret config directories for packaged app runs and agent detection.',
'settings.cliEnvClaudeConfigDir': 'Claude Code config directory',
'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
'settings.cliEnvClaudeApiKey': 'Claude proxy API key',
'settings.cliEnvCodexHome': 'Codex home',
'settings.cliEnvCodexBin': 'Codex executable path',
'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
'settings.cliEnvCodexApiKey': 'Codex/OpenAI proxy API key',
'settings.modelCustom': 'Пользовательская (введите ниже)…',
'settings.modelCustomLabel': 'Пользовательский ID модели',
'settings.modelCustomPlaceholder': 'например, anthropic/claude-sonnet-4-6',
'settings.mediaProviders': 'Медиа-провайдеры',
'settings.mediaProvidersHint': 'API-ключи для генерации изображений, видео и аудио. Хранятся локально и синхронизируются с локальным демоном.',
'settings.mcpServerTitle': 'MCP-сервер',
'settings.mcpServerHint': 'Откройте Open Design как MCP-сервер для вашего кодинг-агента.',
'settings.externalMcpTitle': 'Внешний MCP',
'settings.externalMcpHint': 'Добавьте MCP-инструменты из внешних сервисов (Higgsfield, GitHub, …).',
'settings.mediaProviderApiKey': 'API-ключ',
'settings.mediaProviderBaseUrl': 'Базовый URL',
'settings.mediaProviderConfigured': 'Настроено',
'settings.mediaProviderUnset': 'Не настроено',
'settings.mediaProviderClear': 'Очистить',
'settings.mediaProviderClearConfirm': 'Удалить сохранённые настройки {name}? Вам придётся ввести их заново, чтобы использовать {name}.',
'settings.mediaProviderPlaceholder': 'Вставьте API-ключ',
'settings.mediaProviderBaseUrlPlaceholder': 'Переопределить базовый URL',
'settings.mediaProviderReload': 'Перезагрузить из локального демона',
'settings.mediaProviderReloadError': 'Не удалось заново загрузить настройки медиапровайдеров из локального демона.',
'settings.mediaProviderReloadSuccess': 'Настройки медиапровайдеров заново загружены из локального демона.',
'settings.mediaProviderLoadError': 'Не удалось загрузить настройки медиапровайдеров из локального демона. Пока используются настройки, сохранённые в браузере.',
'settings.mediaProviderComingSoonHint': 'Мы отслеживаем их в дорожной карте; демон пока не поставляет клиент, поэтому настраивать нечего.',
'settings.privacy': 'Privacy',
'settings.privacyHint': 'What data is shared with the Open Design team',
'settings.privacyConsentKicker': 'Help us improve Open Design',
'settings.privacyConsentLead': 'Open Design can share usage data with our team to help us improve. This includes:',
'settings.privacyConsentFooter': 'You can change either of these any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
'settings.privacyConsentShare': 'Share usage data',
'settings.privacyConsentDecline': "Don't share",
'settings.privacyConsentAccept': 'I get it',
'settings.privacyConsentBannerFooter':
'Data sharing is on by default. You can turn it off any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
'settings.privacyConsentPolicyLink': 'Read the privacy policy',
'settings.privacyMetrics': 'Anonymous metrics',
'settings.privacyMetricsHint': 'Run counts, token usage, error rate, duration. No prompts, no project data.',
'settings.privacyContent': 'Conversation content',
'settings.privacyContentHint': "Your prompts and the assistant's responses (truncated 8 KB / 16 KB). API keys, tokens, JWTs, emails, IPs, and credit-card numbers are stripped automatically before send.",
'settings.privacyArtifacts': 'Project artifacts manifest',
'settings.privacyArtifactsHint': 'Filenames, types, sizes of generated files. File contents are never sent.',
'settings.privacyInstallationId': 'Anonymous ID',
'settings.privacyOptedOut': 'opted out',
'settings.privacyDataDeletion': 'Delete my data',
'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
'settings.about': 'О приложении',
'settings.aboutHint': 'Версия и сведения о запуске',
'settings.appVersion': 'Версия',
'settings.appChannel': 'Канал',
'settings.appRuntime': 'Среда запуска',
'settings.appPlatform': 'Платформа',
'settings.appArchitecture': 'Архитектура',
'settings.runtimePackaged': 'Упакованное приложение',
'settings.runtimeDevelopment': 'Разработка',
'settings.versionUnavailable': 'Сведения о версии недоступны, пока daemon не запущен.',
'settings.installLatest': 'Установить последнюю версию',
'settings.alreadyLatest': 'У вас установлена последняя версия',
'entry.tabDesigns': 'Дизайны',
'entry.tabTemplates': 'Шаблоны',
'entry.tabDesignSystems': 'Дизайн-системы',
'entry.tabConnectors': 'Коннекторы',
'entry.openSettingsTitle': 'Настройки',
'entry.openSettingsAria': 'Открыть настройки',
'entry.resizeAria': 'Изменить размер боковой панели',
'entry.loadingWorkspace': 'Загрузка рабочего пространства…',
'entry.useEverywhereTitle': 'Использовать везде',
'entry.useEverywhereAria': 'Открыть руководство «Использовать везде» (CLI, MCP, HTTP, Skills)',
'entry.navNewProject': 'Новый проект',
'entry.navHome': 'Главная',
'entry.navProjects': 'Проекты',
'entry.navDesignSystems': 'Дизайн-системы',
'entry.helpAria': 'Помощь',
'entry.helpMenuAria': 'Меню помощи',
'entry.helpGetHelp': 'Получить помощь на GitHub',
'entry.helpSubmitFeature': 'Предложить функцию',
'entry.helpWhatsNew': 'Что нового',
'entry.helpDownloadDesktop': 'Скачать настольное приложение',
'entry.githubStarLabel': 'Star',
'entry.githubStarTitle': 'Поставьте нам звезду на GitHub',
'entry.githubStarAria': 'Поставить Open Design звезду на GitHub',
'entry.tabImageTemplates': 'Шаблоны изображений',
'entry.tabVideoTemplates': 'Шаблоны видео',
'promptTemplates.searchPlaceholder': 'Поиск шаблонов…',
'promptTemplates.countLabel': '{n} результатов',
'promptTemplates.emptyImage': 'Шаблоны промптов изображений не установлены.',
'promptTemplates.emptyVideo': 'Шаблоны промптов видео не установлены.',
'promptTemplates.emptyNoMatch': 'Нет шаблонов, соответствующих поиску.',
'promptTemplates.attributionFooter': 'Адаптировано из публичных библиотек промптов. Каждая карточка ссылается на исходного автора.',
'promptTemplates.openPreviewTitle': 'Открыть промпт и предпросмотр',
'promptTemplates.sourcePrefix': 'Источник:',
'promptTemplates.fetchError': 'Не удалось загрузить текст шаблона.',
'promptTemplates.promptLabel': 'Текст промпта',
'promptTemplates.copyPrompt': 'Копировать промпт',
'promptTemplates.copyDone': 'Скопировано!',
'promptTemplates.modelHint': 'Рекомендуемая модель: {model}',
'promptTemplates.openSource': 'Открыть оригинал',
'promptTemplates.openFullscreen': 'Открыть полноэкранный предпросмотр',
'promptTemplates.closeFullscreen': 'Закрыть полноэкранный предпросмотр',
'promptTemplates.allSources': 'Все источники',
'promptTemplates.sourceFilterAria': 'Фильтр по источнику',
'promptTemplates.retry': 'Повторить',
'connectors.title': 'Коннекторы',
'connectors.subtitle': 'Локальные и будущие источники данных для live-артефактов.',
'connectors.account': 'Аккаунт',
'connectors.noAccount': 'Не подключено',
'connectors.tools': 'Инструменты',
'connectors.connect': 'Подключить',
'connectors.disconnect': 'Отключить',
'connectors.authorizationPending': 'Ожидание авторизации...',
'connectors.authorizationPendingHint': 'Завершите авторизацию в открытом окне.',
'connectors.cancelAuthorization': 'Отмена',
'connectors.configure': 'Настроить',
'connectors.unavailable': 'Недоступно',
'connectors.phaseStubTitle': 'API коннекторов появятся на этапе 3; это предварительный интерфейс.',
'connectors.statusAvailable': 'Доступно',
'connectors.statusConnected': 'Подключено',
'connectors.statusError': 'Ошибка',
'connectors.statusDisabled': 'Отключено',
'connectors.gateTitle': 'Добавьте ключ Composio API, чтобы продолжить',
'connectors.gateBody': 'Вставьте ключ выше и нажмите «Сохранить ключ», чтобы загрузить доступные интеграции.',
'connectors.aboutLabel': 'О коннекторе',
'connectors.detailsLabel': 'Детали',
'connectors.statusLabel': 'Статус',
'connectors.category.aiAgents': 'AI-агенты',
'connectors.category.aiInfrastructure': 'AI-инфраструктура',
'connectors.category.accounting': 'Бухгалтерия',
'connectors.category.admin': 'Администрирование',
'connectors.category.advertising': 'Реклама',
'connectors.category.analytics': 'Аналитика',
'connectors.category.automation': 'Автоматизация',
'connectors.category.cms': 'CMS',
'connectors.category.crm': 'CRM',
'connectors.category.calendar': 'Календарь',
'connectors.category.commerce': 'Коммерция',
'connectors.category.communication': 'Коммуникации',
'connectors.category.contacts': 'Контакты',
'connectors.category.dataPlatform': 'Платформа данных',
'connectors.category.database': 'База данных',
'connectors.category.design': 'Дизайн',
'connectors.category.developer': 'Инструменты разработчика',
'connectors.category.documentation': 'Документация',
'connectors.category.erp': 'ERP',
'connectors.category.education': 'Образование',
'connectors.category.email': 'Почта',
'connectors.category.events': 'События',
'connectors.category.fieldService': 'Выездное обслуживание',
'connectors.category.finance': 'Финансы',
'connectors.category.fitness': 'Фитнес',
'connectors.category.forms': 'Формы',
'connectors.category.gaming': 'Игры',
'connectors.category.hr': 'HR',
'connectors.category.hospitality': 'Гостеприимство',
'connectors.category.itsm': 'ITSM',
'connectors.category.integration': 'Интеграция',
'connectors.category.localization': 'Локализация',
'connectors.category.logistics': 'Логистика',
'connectors.category.maps': 'Карты',
'connectors.category.marketing': 'Маркетинг',
'connectors.category.media': 'Медиа',
'connectors.category.meetings': 'Встречи',
'connectors.category.nonprofit': 'НКО',
'connectors.category.observability': 'Наблюдаемость',
'connectors.category.payments': 'Платежи',
'connectors.category.personal': 'Личное',
'connectors.category.presentations': 'Презентации',
'connectors.category.procurement': 'Закупки',
'connectors.category.product': 'Продукт',
'connectors.category.productivity': 'Продуктивность',
'connectors.category.projectManagement': 'Управление проектами',
'connectors.category.recruiting': 'Рекрутинг',
'connectors.category.research': 'Исследования',
'connectors.category.salesIntelligence': 'Sales intelligence',
'connectors.category.scheduling': 'Планирование',
'connectors.category.search': 'Поиск',
'connectors.category.security': 'Безопасность',
'connectors.category.signing': 'Подписание',
'connectors.category.social': 'Социальные сети',
'connectors.category.spreadsheets': 'Таблицы',
'connectors.category.storage': 'Хранилище',
'connectors.category.support': 'Поддержка',
'connectors.category.surveys': 'Опросы',
'connectors.category.tasks': 'Задачи',
'connectors.category.timeTracking': 'Учёт времени',
'connectors.category.video': 'Видео',
'connectors.category.whiteboard': 'Доска',
'connectors.categoryLabel': 'Категория',
'connectors.providerLabel': 'Провайдер',
'connectors.toolsSection': 'Инструменты',
'connectors.toolsLoading': 'Загрузка инструментов…',
'connectors.noToolsAvailable': 'Инструменты ещё не загружены. Подключитесь, чтобы увидеть возможности интеграции.',
'connectors.toolDetailsUnavailable': 'Tool details are unavailable, but this connector reports {n} tools.',
'connectors.loadMoreTools': 'Load more tools',
'connectors.openDetailsAria': 'Открыть детали «{name}»',
'connectors.toolsBadgeNone': 'Нет инструментов',
'connectors.toolsBadgeOne': '{n} инструмент',
'connectors.toolsBadgeMany': '{n} инструментов',
'connectors.searchPlaceholder': 'Поиск коннекторов…',
'connectors.searchAriaLabel': 'Поиск коннекторов по названию, провайдеру или инструменту',
'connectors.searchClear': 'Очистить поиск',
'connectors.emptyNoMatchTitle': 'Нет коннекторов по запросу «{query}»',
'connectors.emptyNoMatchBody': 'Попробуйте другое ключевое слово или очистите поиск, чтобы вернуться к полному каталогу.',
'connectors.emptyNoMatchAction': 'Очистить поиск',
'newproj.tabPrototype': 'Прототип',
'newproj.tabLiveArtifact': 'Новый live-артефакт',
'newproj.tabDeck': 'Презентация',
'newproj.tabTemplate': 'Шаблон',
'newproj.tabMedia': 'Медиа',
'newproj.tabOther': 'Другое',
'newproj.titlePrototype': 'Новый прототип',
'newproj.titleLiveArtifact': 'Новый live-артефакт',
'newproj.titleDeck': 'Новая презентация',
'newproj.titleTemplate': 'Начать с шаблона',
'newproj.titleImage': 'Новое изображение',
'newproj.titleVideo': 'Новое видео',
'newproj.titleAudio': 'Новое аудио',
'newproj.titleMedia': 'Новый медиафайл',
'newproj.titleOther': 'Новый проект',
'newproj.namePlaceholder': 'Название проекта',
'newproj.fidelityLabel': 'Детализация',
'newproj.fidelityWireframe': 'Вайрфрейм',
'newproj.fidelityHigh': 'Высокая детализация',
'newproj.toggleSpeakerNotes': 'Использовать заметки докладчика',
'newproj.toggleSpeakerNotesHint': 'Меньше текста на слайдах — основные тезисы в заметках.',
'newproj.toggleAnimations': 'Включить анимации',
'newproj.toggleAnimationsHint':
'Добавить анимации (появление, наведение, переходы) поверх шаблона.',
'newproj.surfaceOptionsLabel': 'Companion surfaces',
'newproj.includeLandingPage': 'Include landing page',
'newproj.includeLandingPageHint':
'Add a responsive marketing page for ads, waitlists, launch campaigns, app downloads, or product explanation.',
'newproj.includeOsWidgets': 'Include OS widgets',
'newproj.includeOsWidgetsHint':
'Add platform-native home screen, lock screen, or quick-access widgets for mobile/tablet apps.',
'newproj.includeOsWidgetsDisabledHint':
'Available when iOS, Android, or tablet app is selected as a target platform.',
'newproj.templateLabel': 'Шаблон',
'newproj.noTemplatesTitle': 'Шаблонов пока нет',
'newproj.noTemplatesBody':
'Откройте любой проект, затем используйте меню «Поделиться» в просмотре файлов, чтобы преобразовать его в шаблон. Шаблоны появятся здесь.',
'newproj.savedTemplate': 'Сохраненный шаблон',
'newproj.fileSingular': 'файл',
'newproj.filePlural': 'файлов',
'newproj.create': 'Создать',
'newproj.locationLabel': 'Сохранить в',
'newproj.locationDefault': 'Проекты Open Design',
'newproj.locationExternalBase': 'Внешняя база',
'newproj.createLiveArtifact': 'Создать live-артефакт',
'newproj.createFromTemplate': 'Создать из шаблона',
'newproj.createDisabledTitle':
'Сначала сохраните проект как шаблон (меню «Поделиться» в любом проекте).',
'newproj.importClaudeZip': 'Импортировать ZIP-файл из Claude Design',
'newproj.importClaudeZipTitle': 'Импортировать экспорт `.zip` из Claude Design',
'newproj.importingClaudeZip': 'Импорт…',
'newproj.privacyFooter': 'По умолчанию только вы можете видеть свой проект.',
'newproj.designSystem': 'Дизайн-система',
'newproj.dsNoneFreeform': 'Нет — произвольная форма',
'newproj.dsNoneSubtitleEmpty': 'Без системных токенов, выбирайте свою палитру',
'newproj.dsNoneSubtitleSelected': 'Пропустить системные токены. Агент выбирает свою палитру.',
'newproj.dsCategoryFallback': 'Дизайн-система',
'newproj.dsSearch': 'Поиск дизайн-систем…',
'newproj.dsModeAria': 'Режим выбора',
'newproj.dsModeSingle': 'Один',
'newproj.dsModeMulti': 'Несколько',
'newproj.dsNoneTitle': 'Нет — произвольная форма',
'newproj.dsNoneSub': 'Пропустить системные токены. Агент выбирает свою палитру.',
'newproj.dsEmpty': 'Нет дизайн-систем, соответствующих «{query}».',
'newproj.dsFootSingular': 'только для вдохновения.',
'newproj.dsFootPlural': 'только для вдохновения.',
'newproj.dsFootClear': 'Очистить',
'newproj.dsBadgeDefault': 'ПО УМОЛЧАНИЮ',
'newproj.dsPrimaryFallback': 'Основной',
'newproj.surfaceImage': 'Изображение',
'newproj.surfaceVideo': 'Видео',
'newproj.surfaceAudio': 'Аудио',
'newproj.modelLabel': 'Модель',
'newproj.modelSearch': 'Поиск моделей…',
'newproj.modelEmpty': 'Нет подходящих моделей.',
'newproj.modelRecommended': 'Рекомендовано',
'newproj.modelMissingTitle': 'Выберите модель',
'newproj.modelMissingSub': 'Выберите модель для этой среды.',
'newproj.aspectLabel': 'Формат',
'newproj.videoLengthLabel': 'Длина',
'newproj.videoLengthSeconds': '{n}с',
'newproj.audioKindLabel': 'Тип аудио',
'newproj.audioKindMusic': 'Музыка',
'newproj.audioKindSpeech': 'Речь / TTS',
'newproj.audioKindSfx': 'Звуковые эффекты',
'newproj.audioDurationLabel': 'Длительность',
'newproj.audioDurationSeconds': '{n}с',
'newproj.voiceLabel': 'Голос',
'newproj.voicePlaceholder': 'Voice id провайдера, опционально',
'newproj.connectorsLabel': 'Коннекторы',
'newproj.connectorsHint': 'Источники данных, из которых артефакт может получать данные.',
'newproj.connectorsEmptyTitle': 'Коннекторы не настроены',
'newproj.connectorsEmptyBody':
'Подключите источник данных, чтобы live-артефакт использовал реальные данные вместо заглушек.',
'newproj.connectorsEmptyCta': 'Настроить коннекторы →',
'newproj.connectorsLoading': 'Загрузка коннекторов…',
'newproj.connectorsCountOne': 'Подключено: {n}',
'newproj.connectorsCountMany': 'Подключено: {n}',
'newproj.connectorsManage': 'Управлять',
'newproj.promptTemplateLabel': 'Эталонный шаблон',
'newproj.promptTemplateNoneTitle': 'Без шаблона — свой бриф',
'newproj.promptTemplateNoneSub': 'Пропустить галерею и описать самостоятельно',
'newproj.promptTemplateRefSub': 'Эталонный шаблон',
'newproj.promptTemplateSearch': 'Поиск шаблонов…',
'newproj.promptTemplateEmpty': 'Шаблоны для этого формата ещё не добавлены.',
'newproj.promptTemplateBodyLabel': 'Промпт (можно править)',
'newproj.promptTemplateOptimizeHint':
'Меняйте всё что нужно — правки попадут в бриф агента.',
'newproj.promptTemplateBodyEmpty':
'Пустое тело — агент не получит шаблонную референцию.',
'newproj.deleteTemplateTitle': 'Удалить шаблон',
'newproj.deleteTemplateConfirm': 'Удалить «{name}»? Это действие невозможно отменить.',
'newproj.deleteTemplateConfirmCta': 'Удалить шаблон',
'newproj.deleteTemplateError':
'Не удалось удалить шаблон. Попробуйте ещё раз.',
'designs.subRecent': 'Недавние',
'designs.subYours': 'Ваши дизайны',
'designs.filterAria': 'Фильтр проектов',
'designs.searchPlaceholder': 'Поиск…',
'designs.emptyNoProjects': 'Проектов пока нет.',
'designs.emptyNoMatch': 'Нет проектов, соответствующих вашему поиску.',
'designs.deleteTitle': 'Удалить проект',
'designs.deleteConfirm': 'Удалить «{name}»?',
'designs.cardFreeform': 'произвольная форма',
'designs.badgeLive': 'Live',
'designs.liveArtifactBadgesAria': 'Бейджи live-артефактов',
'designs.liveCount': '{n} live',
'designs.statusLive': 'Live-артефакт',
'designs.statusArchived': 'Архивирован',
'designs.statusError': 'Ошибка',
'designs.statusRefreshing': 'Обновление…',
'designs.statusRefreshFailed': 'Не удалось обновить',
'designs.statusRefreshed': 'Обновлено',
'designs.status.notStarted': 'Не начато',
'designs.status.queued': 'В очереди',
'designs.status.running': 'Выполняется',
'designs.status.awaitingInput': 'Нужен ввод',
'designs.status.succeeded': 'Завершено',
'designs.status.published': 'Опубликовано',
'designs.status.failed': 'Ошибка',
'designs.status.canceled': 'Отменено',
'designs.viewToggleAria': 'Режим просмотра',
'designs.viewGrid': 'Вид сеткой',
'designs.viewKanban': 'Вид доской',
'designs.kanbanEmptyColumn': 'Нет дизайнов',
'designs.deleteAria': 'Удалить проект {name}',
'designs.menuMore': 'More actions',
'designs.menuRename': 'Rename',
'designs.menuDelete': 'Delete',
'designs.renamePrompt': 'New name for "{name}"',
'designs.selectMode': 'Select',
'designs.cancelSelect': 'Cancel',
'designs.deleteSelected': 'Delete selected',
'designs.selectedCount': '{n} selected',
'designs.deleteSelectedConfirm': 'Delete {n} project(s)?',
'designs.deleteSelectedSuccess': '{n} project(s) deleted successfully.',
'designs.deleteSelectedPartial': 'Deleted {deleted} project(s); {failed} failed.',
'designs.tagPrototype': 'Prototype',
'designs.tagLiveArtifact': 'Live Artifact',
'designs.tagSlide': 'Slide',
'designs.tagMedia': 'Media',
'designs.renameTitle': 'Rename project',
'designs.renameSave': 'OK',
'designs.renameCancel': 'Cancel',
'examples.typeLabel': 'Тип',
'examples.surfaceLabel': 'Поверхность',
'examples.surfaceWeb': 'Веб',
'examples.surfaceImage': 'Изображение',
'examples.surfaceVideo': 'Видео',
'examples.surfaceAudio': 'Аудио',
'examples.scenarioLabel': 'Сценарий',
'examples.modeAll': 'Все',
'examples.modePrototypeDesktop': 'Прототипы · Десктоп',
'examples.modePrototypeMobile': 'Прототипы · Мобильные',
'examples.modeDeck': 'Презентации',
'examples.modeDocument': 'Документы и шаблоны',
'examples.modeOrbit': 'Orbit',
'examples.modeLive': 'Live',
'examples.scenarioGeneral': 'Общее',
'examples.scenarioEngineering': 'Инженерия',
'examples.scenarioProduct': 'Продукт',
'examples.scenarioDesign': 'Дизайн',
'examples.scenarioMarketing': 'Маркетинг',
'examples.scenarioSales': 'Продажи',
'examples.scenarioFinance': 'Финансы',
'examples.scenarioHr': 'HR',
'examples.scenarioOperations': 'Операции',
'examples.scenarioSupport': 'Поддержка',
'examples.scenarioLegal': 'Юридический',
'examples.scenarioEducation': 'Образование',
'examples.scenarioPersonal': 'Личное',
'examples.emptyNoSkills': 'Нет доступных навыков. Демон запущен?',
'examples.searchPlaceholder': 'Поиск примеров…',
'examples.searchAria': 'Поиск примеров по имени',
'examples.emptyNoMatch': 'Нет примеров, соответствующих этим фильтрам.',
'examples.openPreview': '⤢ Открыть предпросмотр',
'examples.loadingPreview': 'Загрузка предпросмотра…',
'examples.hoverPreview': 'Наведите для предпросмотра',
'examples.usePrompt': 'Использовать этот запрос',
'examples.previewModalTitle': 'Открыть полный предпросмотр (модально)',
'examples.shareTitle': 'Поделиться этим примером',
'examples.shareLoadFirst': 'Сначала наведите для загрузки предпросмотра',
'examples.unavailablePlaceholder': 'Нет встроенного предпросмотра {kind} — откройте, чтобы узнать больше',
'examples.shareUnavailable': 'Нет встроенного предпросмотра {kind} для отправки',
'examples.shareMenu': 'Поделиться ▾',
'examples.exportPdfAllSlides': 'Экспорт в PDF (все слайды)',
'examples.exportPptxLocked': 'Экспорт в PPTX… (сначала откройте шаблон)',
'examples.tagSlideDeck': 'Презентация',
'examples.tagTemplate': 'Шаблон',
'examples.tagDesignSystem': 'Дизайн-система',
'examples.tagMobilePrototype': 'Мобильный прототип',
'examples.tagDesktopPrototype': 'Десктопный прототип',
'examples.tagImage': 'Изображение',
'examples.tagVideo': 'Видео',
'examples.tagAudio': 'Аудио',
'examples.previewLabel': 'Предпросмотр',
'ds.surfaceLabel': 'Поверхность',
'ds.surfaceWeb': 'Веб',
'ds.surfaceImage': 'Изображение',
'ds.surfaceVideo': 'Видео',
'ds.surfaceAudio': 'Аудио',
'ds.searchPlaceholder': 'Поиск дизайн-систем…',
'ds.emptyNoMatch': 'Нет дизайн-систем, соответствующих вашему поиску.',
'ds.badgeDefault': 'ПО УМОЛЧАНИЮ',
'ds.preview': 'Предпросмотр',
'ds.previewTitle': 'Предпросмотр дизайн-системы',
'ds.categoryAll': 'Все',
'ds.categoryUncategorized': 'Без категории',
'ds.showcase': 'Витрина',
'ds.tokens': 'Токены',
'ds.specToggle': 'DESIGN.md',
'ds.specLoading': 'Загрузка DESIGN.md…',
'avatar.title': 'Аккаунт и настройки',
'avatar.localCli': 'Локальный CLI',
'avatar.anthropicApi': 'Anthropic API',
'avatar.useLocal': 'Использовать локальный CLI',
'avatar.useApi': 'Использовать API · BYOK',
'avatar.codeAgent': 'Код-агент',
'avatar.rescan': 'Пересканировать PATH',
'avatar.settings': 'Настройки',
'avatar.backToProjects': 'Назад к проектам',
'avatar.metaActive': 'активно',
'avatar.metaOffline': 'офлайн',
'avatar.metaSelected': 'выбрано',
'avatar.noAgentSelected': 'агент не выбран',
'avatar.modelSection': 'Модель',
'avatar.modelLabel': 'Модель',
'avatar.reasoningLabel': 'Рассуждения',
'avatar.customSuffix': '(пользовательская)',
'inlineSwitcher.chipTitle': 'Переключить CLI / модель',
'inlineSwitcher.chipCli': 'Локальный CLI',
'inlineSwitcher.chipByok': 'BYOK',
'inlineSwitcher.modelDefault': 'по умолчанию',
'inlineSwitcher.noAgent': 'агент не выбран',
'inlineSwitcher.modeLabel': 'Режим',
'inlineSwitcher.agentLabel': 'Агент',
'inlineSwitcher.providerLabel': 'Провайдер',
'inlineSwitcher.modelLabel': 'Модель',
'inlineSwitcher.useCli': 'Использовать локальный CLI',
'inlineSwitcher.useByok': 'Использовать собственный API-ключ',
'inlineSwitcher.daemonOffline': 'Демон офлайн — откройте настройки',
'inlineSwitcher.noAgentsDetected': 'CLI не найден в PATH',
'inlineSwitcher.openSettingsForModel': 'Настройте провайдера в Настройках',
'inlineSwitcher.missingApiKey': 'API-ключ не задан — откройте Настройки.',
'inlineSwitcher.openFullSettings': 'Открыть настройки выполнения',
'inlineSwitcher.customSuffix': '(пользовательская)',
'project.backToProjects': 'Назад к проектам',
'project.metaFreeform': 'произвольная форма',
'project.resizeChatPanel': 'Изменить размер панели чата',
'project.instructionsActive': 'Активно — добавляется в каждое сообщение',
'chat.tabChat': 'Чат',
'chat.tabComments': 'Комментарии',
'chat.commentsSoon': 'Комментарии — скоро',
'chat.comments.attached': 'Прикреплены к чату',
'chat.comments.emptyAttached': 'Нет прикреплённых комментариев.',
'chat.comments.saved': 'Сохранённые комментарии',
'chat.comments.emptySaved': 'Сохранённых комментариев нет.',
'chat.comments.add': 'Добавить',
'chat.comments.addAll': 'Добавить все',
'chat.comments.remove': 'Удалить',
'chat.comments.placeholder': 'Оставьте комментарий к этому элементу…',
'chat.comments.addSend': 'Добавить и отправить',
'chat.comments.updateSend': 'Обновить и отправить',
'chat.comments.removeAttachment': 'Открепить комментарий',
'chat.comments.removeAttachmentAria': 'Открепить комментарий для {name}',
'chat.comments.comment': 'Comment',
'chat.comments.sendToChat': 'Send to chat',
'chat.comments.sending': 'Sending…',
'chat.comments.edit': 'Edit',
'chat.comments.select': 'Select',
'chat.comments.selectAll': 'Выбрать всё',
'chat.comments.deselect': 'Deselect',
'chat.comments.nSelected': '{n} selected',
'chat.comments.pin': 'Pin',
'chat.comments.addNote': 'Add note',
'chat.comments.savedToast': 'Comment saved',
'chat.comments.pinSavedToast': 'Pin saved',
'chat.comments.pinAtCoords': 'at {x}, {y}',
'chat.comments.capturedItems': '{n} captured items',
'chat.comments.clear': 'Clear',
'chat.comments.targetImage': 'Image',
'chat.comments.targetControl': 'Control',
'chat.comments.targetLink': 'Link',
'chat.comments.targetText': 'Text',
'chat.comments.targetSection': 'Section',
'chat.comments.targetPage': 'Page',
'chat.comments.targetArea': 'Area',
'chat.annotationNotePlaceholder': 'Add a note for this mark',
'chat.annotationQueue': 'Queue',
'chat.annotationQueueing': 'Queueing...',
'chat.annotationSending': 'Sending...',
'chat.annotationSendDisabledReason': 'A task is currently running',
'chat.annotationPreviewMissing': 'Could not capture the preview. Please try again.',
'chat.annotationPreviewMissingInk': 'Could not capture the preview. Try again to avoid sending only ink.',
'chat.annotationTimeout': 'Annotation send timed out. Please try again.',
'chat.annotationFailed': 'Annotation send failed. Please try again.',
'chat.annotationProjectCreateFailed': 'Could not create a project, so the annotation was not sent.',
'chat.annotationUploadFailed': 'Attachment upload failed. Please try again.',
'chat.inspect.noEditableTargets': 'This page has no editable elements yet.',
'chat.inspect.noCommentTargets': 'This page has no commentable elements yet.',
'chat.inspect.editHint': 'Click an element in the canvas to edit its styles.',
'chat.inspect.commentHint': 'Click an element in the canvas to add a comment.',
'chat.conversationsTitle': 'Разговоры',
'chat.conversationsAria': 'История разговоров',
'chat.newConversation': 'Новый разговор',
'chat.newConversationsTitle': 'Новый разговор',
'chat.conversationsHeading': 'Разговоры',
'chat.new': 'Новый',
'chat.emptyConversations': 'Разговоров пока нет.',
'chat.deleteConversation': 'Удалить разговор',
'chat.renameConversationLabel': 'Переименовать «{title}»',
'chat.deleteConversationConfirm':
'Удалить «{title}»? Это удалит его сообщения.',
'chat.untitledConversation': 'Разговор без названия',
'chat.startTitle': 'Начать разговор',
'chat.startHint': "Опишите, что хотите сгенерировать, или начните с одного из этих примеров:",
'chat.fillInputTitle': 'Нажмите, чтобы заполнить ввод',
'chat.jumpToLatest': 'Перейти к последнему',
'chat.scrollToLatest': 'Прокрутить к последнему',
'chat.you': 'Вы',
'chat.openFile': 'Открыть {name}',
'chat.copyPrompt': 'Скопировать запрос',
'chat.copyDone': 'Скопировано!',
'chat.composerPlaceholder': "Опишите, что хотите сгенерировать…",
'chat.composerHint': "⌘/Ctrl + Enter для отправки · укажите цель, содержание, стиль и формат",
'chat.cliSettingsTitle': 'Настройки CLI и модели',
'chat.cliSettingsAria': 'Открыть настройки CLI и модели',
'chat.attachTitle': 'Прикрепить файлы (или вставить / перетащить)',
'chat.attachAria': 'Прикрепить файлы',
'chat.importTitle': 'Импортировать источники (скоро)',
'chat.importLabel': 'Импорт',
'chat.importComingSoon': 'Скоро',
'chat.importSoon': 'Скоро',
'chat.importFig': 'Загрузить .fig файл',
'chat.importGitHub': 'Подключить GitHub',
'chat.importWeb': 'Захватить веб-элемент',
'chat.importFolder': 'Ссылка на папку с кодом',
'chat.importSkills': 'Навыки и дизайн-системы',
'chat.importProject': 'Reference another project',
'chat.linkedFolderRemoveAria': 'Удалить связанную папку {path}',
'chat.linkedFolderNotFound': 'Папка не существует',
'chat.linkedFolderAlready': 'Эта папка уже связана',
'chat.linkedFolderPickError': 'Не удалось открыть выбор папки',
'chat.queuedHeader': 'Queued',
'chat.queuedToSend': 'to Send',
'chat.queuedEditQueuedTaskAria': 'Edit queued task',
'chat.queuedSave': 'Save',
'chat.queuedCancel': 'Cancel',
'chat.queuedEdit': 'Edit',
'chat.queuedMore': 'more queued',
'chat.queuedFollowUpFallback': 'Queued follow-up',
'chat.send': 'Отправить',
'chat.stop': 'Остановить',
'chat.removeAria': 'Удалить {name}',
'chat.example1Title': 'Редакционная презентация',
'chat.example1Tag': 'Журнал',
'chat.example1Prompt':
'10-слайдовая редакционная презентация для дизайн-студии, привлекающей посевной раунд — швейцарская сетка, крупные заголовки с засечками и жирными буквицами, моноширинные номера секций, много негативного пространства и полноформатные фотослайды, чередующиеся с текстовыми. Обложка, видение, рынок, продукт, тракция, команда, запрос, контакт.',
'chat.example2Title': 'SaaS аналитическая панель',
'chat.example2Tag': 'Данные',
'chat.example2Prompt':
'Насыщенная аналитическая панель для SaaS-инструментов разработчика — полоса KPI с динамикой неделя к неделе, две составные линейные диаграммы (MRR и активные рабочие пространства), мировая тепловая карта использования, когортная матрица удержания, таблица лидеров по ключевым клиентам и лента событий в реальном времени. Тёмная тема, табличные моноширинные цифры, акцентные мини-графики.',
'chat.example3Title': 'Годовой отчет с длинной прокруткой',
'chat.example3Tag': 'Редакционный',
'chat.example3Prompt':
'Интерактивный годовой отчёт для климатической некоммерческой организации — редакционный макет с длинной прокруткой, сочетающий крупные цитатные блоки, визуализации данных (составные столбчатые диаграммы, анимированные счётчики, хороплетную карту проектных площадок), фотографические разделители, стену доноров и финальный призыв к действию. Современный serif для основного текста, sans-serif для подписей графиков и землистая бумажная палитра.',
'preview.shareMenu': 'Поделиться',
'preview.exportMenu': 'Export',
'preview.shareTemplateBadge': 'Template',
'preview.shareToX': 'X / Twitter',
'preview.shareToReddit': 'Reddit',
'preview.shareToFacebook': 'Facebook',
'preview.shareToLinkedIn': 'LinkedIn',
'preview.shareToInstagram': 'Instagram',
'preview.shareToXiaohongshu': '小红书',
'preview.copyTemplateLink': 'Copy template link',
'preview.copyShareText': 'Copy share text',
'preview.shareSocialGroup': 'Share to social',
'preview.shareCopyGroup': 'Copy',
'preview.shareExportGroup': 'Export files',
'preview.shareCopied': 'Copied',
'preview.shareCopyFailed': 'Copy failed',
'preview.shareTextDefault': 'Open Design template: {title}',
'preview.openInNewTab': 'Открыть в новой вкладке',
'preview.exit': '⤓ Выход',
'preview.fullscreen': '⤢ Полноэкранный',
'preview.closeTitle': 'Закрыть (Esc)',
'preview.loading': 'Загрузка {label}…',
'preview.errorTitle': 'Не удалось загрузить этот пример.',
'preview.errorBody': 'Не удалось получить HTML примера. Убедитесь, что Open Design запущен, и повторите попытку.',
'preview.retry': 'Повторить',
'preview.unavailableTitle': 'Для {noun} нет встроенного предпросмотра.',
'preview.unavailableBody': 'Запустите запрос в чате, чтобы сгенерировать {kind}-вывод.',
'preview.nounSkill': 'этого навыка',
'preview.nounPlugin': 'этого плагина',
'preview.nounTemplate': 'этого шаблона',
'preview.showSidebar': 'Показать {label}',
'preview.hideSidebar': 'Скрыть {label}',
'misc.savedTemplate': 'Сохраненный шаблон',
'misc.primary': 'Основной',
'misc.designSystem': 'Дизайн-система',
'workspace.designFiles': 'Файлы дизайна',
'workspace.focusMode': 'Focus workspace',
'workspace.showChat': 'Show chat',
'workspace.closeTab': 'Закрыть вкладку',
'workspace.deleteFileConfirm': 'Удалить «{name}» из папки проекта?',
'workspace.deleteSelectedFilesConfirm': 'Удалить {n} выбранных файла(ов) из папки проекта?',
'workspace.deleteSelectedFilesPartial': 'Не удалось удалить {n} файл(ов).',
'workspace.openFromDesignFiles': 'Открыть файл из',
'workspace.designFilesLink': 'Файлы дизайна',
'workspace.loadingSketch': 'Загрузка эскиза…',
'designFiles.title': 'Файлы дизайна',
'designFiles.upload': 'Загрузить файлы',
'designFiles.pasteText': 'Вставить как текстовый файл',
'designFiles.newSketch': 'Новый эскиз',
'designFiles.empty': 'Здесь появятся ваши работы',
'designFiles.refresh': 'Обновить',
'designFiles.delete': 'Удалить',
'designFiles.searchPlaceholder': 'Поиск файлов…',
'designFiles.up': 'Вверх',
'designFiles.back': 'Назад',
'designFiles.crumbs': 'проект',
'designFiles.rowMenu': 'Меню строки',
'designFiles.openInTab': 'Открыть во вкладке',
'designFiles.download': 'Скачать',
'designFiles.downloadSelected': 'Скачать {n} как ZIP',
'designFiles.clearSelection': 'Очистить выделение',
'designFiles.selectPage': 'Выбрать всё на странице',
'designFiles.selectAll': 'Выбрать всё',
'designFiles.deleteSelected': 'Удалить {n}',
'designFiles.dropTitle': '⤓ Перетащите файлы сюда',
'designFiles.dropDesc':
'Изображения, документы, референсы или папки — агент будет использовать их как контекст.',
'designFiles.upload.title': 'Загрузить файлы',
'designFiles.paste.title': 'Вставить текст как файл',
'designFiles.upload.label': 'Загрузить',
'designFiles.paste.label': 'Вставить',
'designFiles.previewOpen': 'Открыть',
'designFiles.previewClose': 'Закрыть предпросмотр',
'designFiles.modified': 'Изменено {time} · {size}',
'designFiles.weeksAgo': '{n} нед. назад',
'designFiles.groupBy': 'Группировать по',
'designFiles.groupByKind': 'Тип',
'designFiles.groupByModified': 'Изменено',
'designFiles.expandGroup': 'Развернуть',
'designFiles.collapseGroup': 'Свернуть',
'designFiles.sectionPages': 'Страницы',
'designFiles.sectionScripts': 'Скрипты',
'designFiles.sectionImages': 'Изображения',
'designFiles.sectionSketches': 'Эскизы',
'designFiles.sectionLiveArtifacts': 'Live-артефакты',
'designFiles.sectionOther': 'Другое',
'designFiles.modifiedToday': 'Сегодня',
'designFiles.modifiedYesterday': 'Вчера',
'designFiles.modifiedPrevious7Days': 'Последние 7 дней',
'designFiles.modifiedPrevious30Days': 'Последние 30 дней',
'designFiles.modifiedOlder': 'Старше',
'designFiles.showMore': 'Показать ещё +{n}',
'designFiles.kindHtml': 'HTML страница',
'designFiles.kindImage': 'Изображение',
'designFiles.kindSketch': 'Эскиз',
'designFiles.kindText': 'Текст',
'designFiles.kindCode': 'Скрипт',
'designFiles.kindPdf': 'PDF',
'designFiles.kindDocument': 'Документ',
'designFiles.kindPresentation': 'Презентация',
'designFiles.kindSpreadsheet': 'Таблица',
'designFiles.kindLiveArtifact': 'Live-артефакт',
'designFiles.kindBinary': 'Бинарный',
'designFiles.kindFolder': 'Папка',
'designFiles.folderCount': '{n} файлов',
'designFiles.colName': 'Имя',
'designFiles.colKind': 'Тип',
'designFiles.colModified': 'Изменён',
'designFiles.perPage': 'Показать',
'designFiles.all': 'Все',
'designFiles.prev': 'Назад',
'designFiles.next': 'Вперёд',
'designFiles.jumpToPage': 'Перейти на страницу',
'designFiles.pageInfo': '{start}{end} из {total}',
'quickSwitcher.placeholder': 'Открыть файл…',
'quickSwitcher.empty': 'В проекте нет файлов',
'quickSwitcher.noMatches': 'Нет совпадений',
'quickSwitcher.navigate': 'навигация',
'quickSwitcher.open': 'открыть',
'quickSwitcher.close': 'закрыть',
'pasteDialog.title': 'Вставить текст',
'pasteDialog.hint': 'Сохраняется в папку проекта. Выберите любое имя.',
'pasteDialog.fileNameLabel': 'Имя файла',
'pasteDialog.namePlaceholder': 'заметки.txt',
'pasteDialog.contentLabel': 'Содержимое',
'pasteDialog.contentPlaceholder': 'Вставьте что угодно…',
'pasteDialog.save': 'Сохранить',
'pasteDialog.cancel': 'Отмена',
'sketch.save': 'Сохранить эскиз',
'sketch.cancel': 'Отмена',
'sketch.saving': 'Сохранение…',
'sketch.saved': 'Сохранено',
'sketch.tooltipDirty': 'Несохраненные изменения',
'sketch.tooltipClean': 'Сохранено',
'fileViewer.empty': 'Выберите файл для просмотра.',
'fileViewer.loading': 'Загрузка…',
'fileViewer.exportPptx': 'Экспорт в PPTX',
'fileViewer.openInNewTab': 'Открыть в новой вкладке',
'fileViewer.copyPath': 'Копировать путь',
'fileViewer.copied': 'Скопировано!',
'fileViewer.share': 'Поделиться',
'fileViewer.binaryMeta': 'Бинарный · {size}',
'fileViewer.binaryNote':
'Бинарный файл ({size} байт). Скачайте или откройте с диска для просмотра.',
'fileViewer.markdownStreamingMeta': 'Потоковый предпросмотр…',
'fileViewer.markdownErrorMeta': 'Предпросмотр может быть неполным (ошибка генерации).',
'fileViewer.markdownStreamingStatus': 'Потоковая передача… показан частичный Markdown.',
'fileViewer.markdownErrorStatus': 'Ошибка генерации. Показано последнее доступное содержимое.',
'fileViewer.pdfMeta': 'PDF · {size}',
'fileViewer.documentMeta': 'Документ',
'fileViewer.presentationMeta': 'Презентация',
'fileViewer.spreadsheetMeta': 'Таблица',
'fileViewer.previewUnavailable': 'Предпросмотр недоступен. Скачайте или откройте файл для просмотра.',
'fileViewer.download': 'Скачать',
'fileViewer.open': 'Открыть',
'fileViewer.imageMeta': 'Изображение · {size}',
'fileViewer.reactMeta': 'React-компонент · {size}',
'fileViewer.sketchMeta': 'Эскиз · {size}',
'fileViewer.videoMeta': 'Видео · {size}',
'fileViewer.audioMeta': 'Аудио · {size}',
'fileViewer.reload': 'Перезагрузить',
'fileViewer.reloadDisk': 'Перезагрузить с диска',
'fileViewer.copy': 'Копировать',
'fileViewer.copyTitle': 'Копировать содержимое файла',
'fileViewer.saveDisabled': 'Сохранить (только для чтения)',
'fileViewer.save': 'Сохранить',
'fileViewer.preview': 'Предпросмотр',
'fileViewer.source': 'Исходный код',
'fileViewer.tweaks': 'Настройки',
'fileViewer.tweaksUnavailable': 'В этом артефакте нет панели настроек',
'fileViewer.jsxModuleTitle': 'Нет отдельного предпросмотра',
'fileViewer.jsxModuleBody': 'Этот файл является модулем компонента, который загружает другая страница.',
'fileViewer.jsxModuleCta': 'Откройте страницу, которая его отображает:',
'fileViewer.comment': 'Комментарий',
'fileViewer.edit': 'Редактировать',
'fileViewer.draw': 'Рисовать',
'fileViewer.mark': 'Пометить',
'fileViewer.markTool': 'Инструмент пометки',
'fileViewer.boxSelect': 'Выбрать область',
'fileViewer.screenshot': 'Скриншот',
'manualEdit.layers': "Layers",
'manualEdit.editableCount': "{count} editable",
'manualEdit.hiddenBadge': "Hidden",
'manualEdit.title': "Manual editor",
'manualEdit.fallbackTitle': 'Edit',
'manualEdit.movePanel': 'Move edit panel',
'manualEdit.closePanel': 'Close edit panel',
'manualEdit.selectLayer': "Select a layer",
'manualEdit.empty': "Click an element in the preview or choose a layer.",
'manualEdit.noEditableLayers': "No editable layers found.",
'manualEdit.noClass': "no class",
'manualEdit.tabsAria': "Manual edit tabs",
'manualEdit.tabContent': "Content",
'manualEdit.tabStyle': "Style",
'manualEdit.tabAttributes': "Attributes",
'manualEdit.tabHtml': "Html",
'manualEdit.tabSource': "Source",
'manualEdit.attributesJson': "Attributes JSON",
'manualEdit.selectedHtml': "Selected element HTML",
'manualEdit.fullSource': "Full artifact source",
'manualEdit.applyContent': "Apply Content",
'manualEdit.applyStyle': "Apply Style",
'manualEdit.applyAttributes': "Apply Attributes",
'manualEdit.applyHtml': "Apply HTML",
'manualEdit.applySource': "Apply Source",
'manualEdit.invalidAttributes': "Invalid attributes JSON.",
'manualEdit.changes': "Changes",
'manualEdit.undo': "Undo",
'manualEdit.redo': "Redo",
'manualEdit.noChanges': "No manual edits yet.",
'manualEdit.imageUrl': "Image URL",
'manualEdit.altText': "Alt text",
'manualEdit.label': "Label",
'manualEdit.text': "Text",
'manualEdit.href': "Href",
'manualEdit.textColor': "Text color",
'manualEdit.background': "Background",
'manualEdit.fontSize': "Font size",
'manualEdit.weight': "Weight",
'manualEdit.align': "Align",
'manualEdit.padding': "Padding",
'manualEdit.margin': "Margin",
'manualEdit.radius': "Radius",
'manualEdit.border': "Border",
'manualEdit.width': "Width",
'manualEdit.minHeight': "Min height",
'fileViewer.zoomOut': 'Уменьшить',
'fileViewer.zoomIn': 'Увеличить',
'fileViewer.resetZoom': 'Сбросить масштаб',
'fileViewer.viewportAria': 'Preview viewport',
'fileViewer.viewportDesktop': 'Desktop',
'fileViewer.viewportDesktopTitle': 'Full-width desktop preview',
'fileViewer.viewportTablet': 'Tablet',
'fileViewer.viewportTabletTitle': 'Tablet preview at 820 × 1180 (modern portrait baseline)',
'fileViewer.viewportMobile': 'Mobile',
'fileViewer.viewportMobileTitle': 'Mobile preview at 390 × 844',
'fileViewer.reloadAria': 'Перезагрузить',
'fileViewer.previousSlide': 'Предыдущий слайд',
'fileViewer.nextSlide': 'Следующий слайд',
'fileViewer.slideNavAria': 'Навигация по слайдам',
'fileViewer.present': 'Презентация',
'fileViewer.presentInTab': 'В этой вкладке',
'fileViewer.presentFullscreen': 'Полноэкранный',
'fileViewer.presentNewTab': 'Новая вкладка',
'fileViewer.exitPresentation': 'Выйти из презентации',
'fileViewer.shareLabel': "Поделиться",
'fileViewer.shareMenuShareLink': 'SHARE LINK',
'fileViewer.shareMenuPublishOnline': 'PUBLISH ONLINE',
'fileViewer.shareMenuDownload': 'DOWNLOAD',
'fileViewer.shareMenuPresentation': 'Presentation',
'fileViewer.shareMenuSourceFiles': 'Source files',
'fileViewer.shareMenuSave': 'SAVE',
'fileViewer.copyProviderLink': 'Copy {provider} link',
'fileViewer.copyCloudflareLink': 'Copy Cloudflare link',
'fileViewer.screenshotCopying': 'Copying screenshot...',
'fileViewer.screenshotCopied': 'Screenshot copied to clipboard',
'fileViewer.screenshotClipboardDenied': 'Browser blocked clipboard access',
'fileViewer.screenshotPreviewLoading': 'Preview is still loading. Try again in a moment.',
'fileViewer.screenshotCaptureFailed': 'Could not capture the preview. Please try again.',
'fileViewer.exportPdf': 'Экспорт в PDF',
'fileViewer.exportPdfAllSlides': 'Экспорт в PDF (все слайды)',
'fileViewer.exportPptxBusy': 'Дождитесь окончания текущего хода.',
'fileViewer.exportPptxHint':
'Отправьте запрос агенту для конвертации этого дизайна в PPTX.',
'fileViewer.exportPptxNa': 'Экспорт PPTX здесь недоступен.',
'fileViewer.exportZip': 'Скачать как .zip',
'fileViewer.exportHtml': 'Экспорт как HTML',
'fileViewer.exportMd': 'Экспорт в Markdown',
'fileViewer.exportImage': 'Экспорт как изображение',
'fileViewer.exportImageFailed': 'Не удалось сделать снимок. Попробуйте ещё раз или воспользуйтесь инструментом скриншотов вашего браузера.',
'fileViewer.exportImageModalSubtitle': 'Выберите формат, затем скачайте текущий предпросмотр как изображение.',
'fileViewer.exportImageFormatLabel': 'Формат',
'fileViewer.exportImageSaving': 'Сохранение изображения…',
'fileViewer.exportImageSaved': 'Изображение сохранено',
'fileViewer.exportImageDownloadStarted': 'Загрузка началась',
'fileViewer.exportImageDownloadDetails': '{filename} находится в загрузках браузера, если окно «Сохранить как» не появилось.',
'fileViewer.exportJsx': 'Экспорт как JSX',
'fileViewer.exportReactHtml': 'Экспорт предпросмотра как HTML',
'fileViewer.exportStarted': 'Export started',
'fileViewer.saveAsTemplate': 'Сохранить как шаблон…',
'fileViewer.savingTemplate': 'Сохранение шаблона…',
'fileViewer.savedTemplate': 'Сохранено как «{name}»',
'fileViewer.savedTemplateFail': 'Не удалось сохранить шаблон — попробуйте снова.',
'fileViewer.templateNamePrompt': 'Название шаблона',
'fileViewer.templateNameDefault': 'Шаблон без названия',
'fileViewer.templateDescPrompt':
'Краткое описание (необязательно — чем полезен этот шаблон?)',
'liveArtifact.refresh.button': 'Обновить',
'liveArtifact.refresh.buttonTitle': 'Обновить этот live-артефакт',
'liveArtifact.refresh.loadingTitle': 'Загрузка live-артефакта…',
'liveArtifact.refresh.noSourceTitle': 'Пока нет одобренного источника обновления только для чтения.',
'liveArtifact.refresh.running': 'Обновление…',
'liveArtifact.refresh.runningMessage': 'Обновляем данные и предпросмотр. Это может занять немного времени.',
'liveArtifact.refresh.runningAction': 'Предыдущий предпросмотр остается видимым, пока обновление не завершится успешно.',
'liveArtifact.refresh.successOne': 'Обновление завершено. Данные обновлены.',
'liveArtifact.refresh.successMany': 'Обновление завершено. Данные обновлены.',
'liveArtifact.refresh.successAction': 'Предпросмотр перезагружен с последними сохраненными данными.',
'liveArtifact.refresh.previousFailure': 'Предыдущее обновление завершилось ошибкой: {message}',
'liveArtifact.refresh.failureAction': 'Проверьте историю обновлений, исправьте проблему с источником или правами и повторите попытку.',
'liveArtifact.refresh.networkFailure': 'Не удалось отправить запрос на обновление. Проверьте подключение и попробуйте снова.',
'liveArtifact.refresh.genericFailure': 'Не удалось обновить.',
'liveArtifact.refresh.statusNever': 'Не обновляется',
'liveArtifact.refresh.statusReady': 'Готов к обновлению',
'liveArtifact.refresh.statusSucceeded': 'Актуально',
'liveArtifact.refresh.statusFailed': 'Обновление не удалось',
'fileViewer.deployToVercel': 'Развернуть на Vercel',
'fileViewer.redeployToVercel': 'Развернуть повторно',
'fileViewer.deployingToVercel': 'Развёртывание на Vercel…',
'fileViewer.deployProviderLabel': 'Провайдер',
'fileViewer.vercelProvider': 'Vercel',
'fileViewer.cloudflarePagesProvider': 'Cloudflare Pages',
'fileViewer.deployToProvider': 'Развернуть на {provider}',
'fileViewer.redeployToProvider': 'Развернуть повторно на {provider}',
'fileViewer.deployingToProvider': 'Развёртывание на {provider}…',
'fileViewer.preparingPublicLink': 'Подготовка публичной ссылки…',
'fileViewer.copyDeployLink': 'Скопировать ссылку',
'fileViewer.deployModalTitle': 'Развернуть',
'fileViewer.deployModalSubtitle': 'Используйте аккаунт выбранного провайдера, чтобы развернуть этот HTML-просмотр.',
'fileViewer.vercelToken': 'Токен Vercel',
'fileViewer.vercelTokenGetLink': 'Получить токен Vercel',
'fileViewer.vercelTokenPlaceholder': 'Вставьте токен Vercel',
'fileViewer.vercelTokenReuseHint': 'Будет использован сохранённый токен. Введите новый, чтобы заменить его.',
'fileViewer.vercelTokenRequired': 'Сначала введите и сохраните токен Vercel.',
'fileViewer.cloudflareApiToken': 'Токен API Cloudflare',
'fileViewer.cloudflareApiTokenGetLink': 'Получить токен API Cloudflare',
'fileViewer.cloudflareApiTokenPlaceholder': 'Вставьте токен API Cloudflare',
'fileViewer.cloudflareApiTokenReuseHint': 'Будет использован сохранённый токен API Cloudflare. Введите новый, чтобы заменить его.',
'fileViewer.cloudflareApiTokenRequired': 'Сначала введите и сохраните токен API Cloudflare.',
'fileViewer.cloudflareApiTokenScopeHint': 'Pages Edit is required for deploys. Zone Read is required to list domains. DNS Edit is only needed when binding a custom domain.',
'fileViewer.vercelTeamId': 'ID команды',
'fileViewer.vercelTeamSlug': 'Слаг команды',
'fileViewer.cloudflareAccountId': 'ID аккаунта',
'fileViewer.cloudflareAccountIdHint': 'Обязательно. ID аккаунта можно найти в панели Cloudflare.',
'fileViewer.cloudflareAccountIdRequired': 'Сначала введите и сохраните Cloudflare Account ID.',
'fileViewer.cloudflareZoneLabel': 'Domain',
'fileViewer.cloudflareZonePlaceholder': 'Save Cloudflare settings to load domains',
'fileViewer.cloudflareZoneRequired': 'Select a Cloudflare domain first.',
'fileViewer.cloudflareZonesLoading': 'Loading Cloudflare domains…',
'fileViewer.cloudflareZonesRefresh': 'Refresh domains',
'fileViewer.cloudflareZonesLoadFailed': 'Could not load Cloudflare domains.',
'fileViewer.cloudflareZonesEmpty': 'No active full Cloudflare domains were found for this account.',
'fileViewer.cloudflareDomainPrefixLabel': 'Subdomain prefix',
'fileViewer.cloudflareDomainPrefixPlaceholder': 'demo',
'fileViewer.cloudflareDomainPrefixInvalid': 'Use one DNS label only: lowercase letters, numbers, and hyphens.',
'fileViewer.cloudflareHostnamePreview': 'Custom domain preview: {hostname}',
'fileViewer.cloudflareCustomDomainHint': 'Optional: choose a Cloudflare domain and prefix to bind a custom subdomain. pages.dev will still be available.',
'fileViewer.cloudflarePagesDevLinkLabel': 'pages.dev URL',
'fileViewer.cloudflareCustomDomainLinkLabel': 'Custom domain',
'fileViewer.optional': 'Необязательно',
'fileViewer.vercelPreviewOnly': 'Пока поддерживаются только Preview-развёртывания.',
'fileViewer.cloudflarePagesPreviewHint': 'Cloudflare Pages использует Direct Upload.',
'fileViewer.savingConfig': 'Сохранение…',
'fileViewer.deployConfigSaveFailed': 'Не удалось сохранить настройки Vercel.',
'fileViewer.deployFailed': 'Развёртывание не удалось. Проверьте настройки Vercel и попробуйте снова.',
'fileViewer.deployProviderConfigSaveFailed': 'Не удалось сохранить настройки {provider}.',
'fileViewer.deployProviderFailed': 'Развёртывание на {provider} не удалось. Проверьте настройки и попробуйте снова.',
'fileViewer.deployResultLabel': 'URL развёрнутого сайта',
'fileViewer.deployLinkReady': 'Готово',
'fileViewer.deploySuccessToast': 'Развёртывание успешно загружено',
'fileViewer.deploySuccessToastDetails': '{provider} · {url}',
'fileViewer.deployLinkPreparingLabel': 'Публичная ссылка готовится',
'fileViewer.deployLinkDelayed': 'Сайт развёрнут. Провайдер всё ещё готовит публичную ссылку.',
'fileViewer.deployLinkFailed': 'Пользовательский домен не настроен',
'fileViewer.deployLinkProtectedLabel': 'Защита развёртывания включена',
'fileViewer.deployLinkProtected': 'Сайт развёрнут, но эта ссылка предпросмотра требует аутентификации. Отключите Deployment Protection или используйте собственный домен.',
'fileViewer.retryLink': 'Повторить',
'questionForm.submit': 'Отправить',
'questionForm.skip': 'Пропустить',
'questionForm.locked': 'Отвечено',
'conv.switch': 'Переключить разговор',
'conv.label': 'Разговор',
'conv.heading': 'Разговоры',
'conv.new': '+ Новый',
'conv.empty': 'Разговоров пока нет.',
'conv.untitled': 'Разговор без названия',
'conv.renameTooltip': 'Дважды кликните для переименования',
'conv.delete': 'Удалить разговор',
'conv.deleteConfirm': 'Удалить «{title}»? Это удалит его сообщения.',
'agentPicker.label': 'Агент',
'agentPicker.modeChoose': 'Выберите режим выполнения',
'agentPicker.localCli': 'Локальный CLI',
'agentPicker.daemonOff': 'демон выключен',
'agentPicker.byok': 'API · BYOK',
'agentPicker.selectAgent': 'Выберите обнаруженный CLI код-агента',
'agentPicker.noAgents': 'нет агентов в PATH',
'agentPicker.notInstalled': 'не установлено',
'agentPicker.rescan': 'Пересканировать локальный PATH для агентов',
'tool.openInTab': 'Открыть {name} во вкладке',
'tool.open': 'открыть',
'tool.todos': 'Задачи',
'tool.askQuestion': 'Вопрос',
'tool.askQuestionSubmit': 'Отправить',
'tool.askQuestionPending': 'Ожидание вашего ответа',
'tool.askQuestionAnswered': 'Отвечено',
'tool.todosExpand': 'Показать задачи',
'tool.todosCollapse': 'Скрыть задачи',
'tool.todosDone': 'Готово',
'tool.todosDismiss': 'Закрыть список задач',
'tool.write': 'Записать',
'tool.edit': 'Редактировать',
'tool.read': 'Читать',
'tool.bash': 'Bash',
'tool.glob': 'Glob',
'tool.grep': 'Grep',
'tool.fetch': 'Fetch',
'tool.search': 'Поиск',
'tool.lines': '{n} строк',
'tool.changeSingular': 'изменение',
'tool.changePlural': 'изменения',
'tool.in': 'в {path}',
'tool.hide': 'скрыть',
'tool.output': 'вывод',
'tool.running': 'выполняется…',
'tool.error': 'ошибка',
'tool.done': 'готово',
'assistant.role': 'Ассистент',
'assistant.workingLabel': 'Работает',
'assistant.doneLabel': 'Готово',
'assistant.feedbackPrompt': 'Отзыв',
'assistant.feedbackPositive': 'Полезно',
'assistant.feedbackNegative': 'Не полезно',
'assistant.feedbackReasonTitle': 'Tell us why',
'assistant.feedbackReasonPositiveMatched': 'Understood my request',
'assistant.feedbackReasonPositiveVisual': 'Looks good',
'assistant.feedbackReasonPositiveUseful': 'Useful structure',
'assistant.feedbackReasonPositiveEasy': 'Easy to keep editing',
'assistant.feedbackReasonPositiveDesignSystem': 'Followed the design system',
'assistant.feedbackReasonNegativeMissed': 'Missed my request',
'assistant.feedbackReasonNegativeVisual': 'Visual quality needs work',
'assistant.feedbackReasonNegativeIncomplete': 'Incomplete output',
'assistant.feedbackReasonNegativeHard': 'Hard to use',
'assistant.feedbackReasonNegativeDesignSystem': 'Did not follow the design system',
'assistant.feedbackReasonOther': 'Other',
'assistant.feedbackReasonPlaceholder': 'Add a short note...',
'assistant.feedbackReasonSubmit': 'Submit',
'assistant.emptyResponseLabel': 'No output',
'assistant.emptyResponseMessage': 'The provider ended the request without returning text or an artifact. Try another model or provider, check quota, or retry.',
'assistant.unfinishedLabel': 'Остановлено с незавершенной работой',
'assistant.unfinishedSummary': 'Осталось задач: {n}',
'assistant.unfinishedMore': '+{n} еще',
'assistant.continueRemaining': 'Продолжить оставшиеся задачи',
'assistant.outTokens': '{n} токенов вывода',
'assistant.producedFiles': 'Файлы из этого хода',
'assistant.openFile': 'Открыть',
'assistant.downloadFile': 'Скачать',
'assistant.thinking': 'Думает',
'assistant.systemReminder': 'Системное напоминание',
'assistant.waitingFirstOutput': 'Ожидание первого ответа',
'assistant.statusBootingAgent': 'Загрузка агента',
'assistant.statusStarting': 'Запуск',
'assistant.statusRequesting': 'Отправка запроса',
'assistant.statusThinking': 'Думает',
'assistant.statusStreaming': 'Потоковая передача',
'assistant.slowHint':
'Занимает больше времени, чем обычно. Форма обычно появляется через 510с — вы можете остановить и перефразировать.',
'assistant.verbEditing': 'Редактирование',
'assistant.verbWriting': 'Запись',
'assistant.verbReading': 'Чтение',
'assistant.verbSearching': 'Поиск',
'assistant.verbRunning': 'Выполнение',
'assistant.verbTodos': 'Задачи',
'assistant.verbFetching': 'Получение',
'assistant.verbCalling': 'Вызов',
'qf.answered': 'отвечено',
'qf.choose': 'Выберите…',
'qf.required': 'обязательно',
'qf.lockedSubmitted':
'Ответы отправлены — агент будет использовать их до конца сессии.',
'qf.lockedPrev': 'Эта форма из предыдущего хода.',
'qf.hint':
'Выберите подходящее. Пропустите необязательные поля, которые вам не важны — агент будет использовать разумные значения по умолчанию.',
'qf.submitDefault': 'Отправить ответы',
'qf.submitDisabledTitle': 'Сначала заполните обязательные поля',
'qf.submitTitle': 'Отправить ответы',
'qf.cardSelected': 'выбрано',
'qf.cardRefs': 'Ссылки:',
'qf.cardSampleText': 'Быстрая коричневая лиса · 0123',
'sketch.toolSelect': 'Выбор (без действий)',
'sketch.toolPen': 'Ручка',
'sketch.toolText': 'Текст',
'sketch.toolRect': 'Прямоугольник',
'sketch.toolArrow': 'Стрелка',
'sketch.toolEraser': 'Ластик',
'sketch.color': 'Цвет',
'sketch.strokeSize': 'Размер штриха',
'sketch.undo': 'Отменить',
'sketch.clear': 'Очистить',
'sketch.close': 'Закрыть',
'sketch.closeConfirm': 'Закрыть набросок и отменить несохранённые изменения?',
'sketch.textPrompt': 'Текст:',
'sketch.textModalTitle': 'Добавить текст',
'pet.title': 'Питомцы',
'pet.tabBuiltIn': 'Встроенные',
'pet.tabBuiltInHint': 'Подобранные питомцы в комплекте Open Design — выберите и забирайте.',
'pet.builtInEmpty': 'Встроенные питомцы сейчас недоступны. Обновите вкладку «Сообщество», когда демон снова запустится.',
'pet.tabCustom': 'Свой',
'pet.tabCustomHint': 'Своё имя, глиф, цвет или загруженный спрайт.',
'pet.tabCommunity': 'Сообщество',
'pet.tabCommunityHint': 'Питомцы из Codex — заведите своего или сгенерируйте нового через ИИ.',
'pet.tabsAria': 'Источник питомца',
'pet.subtitle': 'Заведите маленького спутника, который парит над вашей рабочей областью.',
'pet.navTitle': 'Питомцы',
'pet.navHint': 'Завести или настроить',
'pet.adopt': 'Завести',
'pet.adoptedBadge': 'Заведён',
'pet.adoptCallout': 'Завести питомца',
'pet.changePet': 'Сменить питомца',
'pet.wake': 'Разбудить',
'pet.tuck': 'Спрятать',
'pet.wakeTitle': 'Разбудить питомца — показать оверлей.',
'pet.tuckTitle': 'Спрятать питомца — скрыть оверлей.',
'pet.settingsTitle': 'Открыть настройки питомца',
'pet.useCustom': 'Использовать своего',
'pet.customTitle': 'Создайте своего',
'pet.customHint': 'Выберите имя, символ и акцентный цвет — оверлей обновляется на лету.',
'pet.customGreetingPlaceholder': 'Приветствие от вашего питомца…',
'pet.fieldName': 'Имя',
'pet.fieldGlyph': 'Символ',
'pet.fieldGlyphHint': 'Один эмодзи подходит лучше всего (например 🐝, 🦄, 🐢).',
'pet.fieldGreeting': 'Приветствие',
'pet.fieldAccent': 'Акцентный цвет',
'pet.fieldAccentCustom': 'Свой цвет',
'pet.fieldAccentDefault': 'Цвет акцента по умолчанию',
'pet.overlayAria': 'Питомец-компаньон',
'pet.spriteAria': '{name} — тащите, чтобы переместить, кликните, чтобы пообщаться',
'pet.spriteTitle': 'Привет от {name}! Кликните, чтобы пообщаться.',
'pet.composerTitle': 'Питомцы — разбудить, спрятать или выбрать',
'pet.composerMenuTitle': 'Питомцы',
'pet.composerMenuHint': 'совет: введите /pet, чтобы переключить',
'pet.composerOpenSettings': 'Управление питомцами',
'pet.welcomeTeaserTitle': 'Заведите питомца',
'pet.welcomeTeaserBody': 'Маленький спутник, парящий над воркспейсом.',
'pet.welcomeTeaserCta': 'Выбрать',
'pet.imageUpload': 'Загрузить спрайт',
'pet.imageReplace': 'Заменить спрайт',
'pet.imageRemove': 'Использовать emoji',
'pet.imageHintIdle': 'PNG, JPG, WebP, GIF или SVG. Спрайтшит? Загрузите горизонтальную ленту и укажите число кадров.',
'pet.imageHintActive': 'Показан ваш спрайт. Установите кадры > 1, чтобы анимировать горизонтальный спрайтшит.',
'pet.fieldFrames': 'Кадры',
'pet.fieldFramesHint': '1 = статично. > 1 = горизонтальный спрайтшит.',
'pet.fieldFps': 'Скорость (fps)',
'pet.fieldFpsHint': 'Скорость смены кадров.',
'pet.atlasImport': 'Импорт спрайта Codex',
'pet.atlasImportTitle': 'Импортируйте атлас hatch-pet 8x9 / 192x208 (PNG или WebP).',
'pet.atlasPickerTitle': 'Выберите ряд анимации',
'pet.atlasPickerHint': 'У Codex-петов 9 рядов анимаций. По умолчанию мы оставляем весь атлас — питомец меняет ряд при наведении, направлении перетаскивания и долгом простое. Можно зафиксировать и один цикл.',
'pet.atlasCancel': 'Отменить атлас',
'pet.atlasAdopt': 'Зафиксировать этот ряд',
'pet.atlasAdoptFull': 'Использовать весь атлас (анимация)',
'pet.atlasAdoptFullTitle': 'Сохранить все ряды, чтобы питомец реагировал на наведение, направление перетаскивания и долгое бездействие.',
'pet.atlasAdoptRowTitle': 'Вырезать только выделенный ряд в отдельную циклическую полоску.',
'pet.atlasActiveHint': 'Анимированный атлас включён — питомец выбирает ряд по вашему взаимодействию (наведение, перетаскивание, бездействие).',
'pet.atlasRow.idle': 'Покой',
'pet.atlasRow.running-right': 'Бег вправо',
'pet.atlasRow.running-left': 'Бег влево',
'pet.atlasRow.waving': 'Машет',
'pet.atlasRow.jumping': 'Прыжок',
'pet.atlasRow.failed': 'Неудача',
'pet.atlasRow.waiting': 'Ожидание',
'pet.atlasRow.running': 'Бежит',
'pet.atlasRow.review': 'Анализ',
'pet.hatchTitle': 'Вырастить нового пета с ИИ',
'pet.hatchHint': 'Запустите встроенный навык hatch-pet в чате, чтобы получить спрайтшит в стиле Codex, а затем импортируйте его здесь.',
'pet.hatchConcept': 'Концепт пета (по желанию)',
'pet.hatchConceptPlaceholder': 'напр.: маленький пиксель-арт сиба-ину в уютном свитере',
'pet.hatchCopy': 'Скопировать промпт',
'pet.hatchCopied': 'Скопировано!',
'pet.hatchFoot': 'Когда навык сохранит пета, вернитесь и нажмите «Импорт спрайта Codex».',
'pet.slashPopoverAria': 'Слэш-команды',
'pet.slashPopoverTitle': 'Команды',
'pet.slashPopoverHint': '↑↓ навигация · enter выбрать · esc закрыть',
'pet.slashPet': 'Переключить, выбрать или открыть настройки пета.',
'pet.slashPetWake': 'Разбудить плавающего пета.',
'pet.slashPetTuck': 'Спрятать пета на время.',
'pet.slashHatch': 'Создать Codex-пета через навык hatch-pet.',
'pet.slashHatchArg': '<концепт>',
'pet.slashSearch': 'Искать в вебе через команду OD research.',
'pet.slashSearchArg': '<запрос>',
'pet.codexTitle': 'Недавно вылупленные',
'pet.codexSubtitle': 'Петы, упакованные навыком hatch-pet, появятся здесь для усыновления в один клик.',
'pet.codexSubtitleWithDir': 'Сканируем {dir} в поисках пакетов hatch-pet.',
'pet.codexEmpty': 'Пока нет вылупленных петов. Наберите /hatch в чате, чтобы создать.',
'pet.codexLoading': 'Ищем вылупленных петов…',
'pet.codexRefresh': 'Обновить',
'pet.codexAdopt': 'Усыновить',
'pet.codexAdopting': 'Усыновляем…',
'pet.communitySync': 'Скачать сообщество питомцев',
'pet.communitySyncing': 'Загрузка…',
'pet.communitySyncTitle': 'Синхронизировать свежих питомцев из Codex Pet Share + j20 Hatchery в ~/.codex/pets/.',
'pet.communitySyncDone': 'Синхронизировано {wrote} новых питомцев (всего {total}).',
'pet.communitySyncFailed': 'Ошибка синхронизации: {error}',
'pet.codexBundled': 'Встроен',
'pet.codexBundledTitle': 'Поставляется с Open Design — загрузка не нужна.',
'settings.notifications': 'Уведомления',
'settings.notificationsHint': 'Звук и уведомление при завершении задачи',
'settings.notifyCompletionSound': 'Звук завершения',
'settings.notifyCompletionSoundHint': 'Воспроизводится по завершении хода. По умолчанию выключено.',
'settings.notifySuccessSound': 'Звук успеха',
'settings.notifyFailureSound': 'Звук ошибки',
'settings.notifyDesktop': 'Уведомление на рабочем столе',
'settings.notifyDesktopHint': 'Отправляется, когда окно не активно.',
'settings.notifyDesktopBlocked': 'Уведомления заблокированы браузером. Разрешите их в настройках сайта.',
'settings.notifyDesktopUnsupported': 'Уведомления на рабочем столе недоступны в этой среде.',
'settings.notifyTest': 'Отправить тест',
'settings.notifyTestSent': 'Тестовое уведомление отправлено. Если баннер не появился, проверьте настройки уведомлений браузера и системы.',
'settings.notifyTestFailed': 'Вызов уведомления не удался. Проверьте настройки уведомлений браузера и системы.',
'settings.notifySoundDing': 'Динь',
'settings.notifySoundChime': 'Колокольчик',
'settings.notifySoundTwoToneUp': 'Двухтон вверх',
'settings.notifySoundPluck': 'Щипок',
'settings.notifySoundBuzz': 'Жужжание',
'settings.notifySoundTwoToneDown': 'Двухтон вниз',
'settings.notifySoundThud': 'Глухой удар',
'settings.skills': 'Навыки',
'settings.skillsHint': 'Функциональные навыки, которые агент может вызывать во время задачи',
'settings.skillsNew': 'Новый навык',
'settings.skillsEmpty': 'Выберите навык слева или создайте новый.',
'settings.skillsEdit': 'Изменить',
'settings.skillsDelete': 'Удалить',
'settings.skillsDeleteConfirm': 'Подтвердить удаление',
'settings.skillsName': 'Имя',
'settings.skillsTriggers': 'Триггеры (через запятую или с новой строки)',
'settings.skillsDescription': 'Описание',
'settings.skillsBody': 'Содержимое SKILL.md',
'settings.skillsCreate': 'Создать',
'settings.skillsSave': 'Сохранить',
'settings.skillsSaving': 'Сохранение…',
'settings.skillsFiles': 'Файлы',
'settings.skillsNoFiles': 'В папке этого навыка нет файлов.',
'settings.skillsNameRequired': 'Имя навыка обязательно.',
'settings.skillsBodyRequired': 'Содержимое навыка обязательно.',
'settings.designSystems': 'Дизайн-системы',
'settings.designSystemsHint': 'Просматривайте и переключайте доступные дизайн-системы',
'settings.designSystemsInstalled': 'Установлено',
'settings.designSystemsAdd': 'Добавить дизайн-систему',
'settings.designSystemsHiddenCount': '{count} скрыто из домашней галереи',
'settings.designSystemsShowAll': 'Показать все',
'settings.designSystemsShowHidden': 'Показать скрытые',
'settings.designSystemsSource': 'Источник',
'settings.designSystemsSourceLocal': 'Локально',
'settings.designSystemsSourceGithub': 'GitHub',
'settings.designSystemsStructure': 'Структура',
'settings.designSystemsModeHybrid': 'Гибридно',
'settings.designSystemsModeNormalized': 'Нормализовано',
'settings.designSystemsModeVerbatim': 'Без изменений',
'settings.designSystemsCraft': 'Craft',
'settings.designSystemsCraftColor': 'Цвет',
'settings.designSystemsCraftAccessibility': 'Доступность',
'settings.designSystemsGithubUrl': 'URL GitHub',
'settings.designSystemsProjectPath': 'Путь проекта',
'settings.designSystemsImportGithub': 'Импортировать из GitHub',
'settings.designSystemsImportProject': 'Импортировать из проекта',
'settings.designSystemsImportedStatus': 'Импортировано: {title}',
'settings.designSystemsViewImported': 'Открыть импортированную дизайн-систему',
'settings.designSystemsCategory': 'Категория',
'settings.designSystemsAllCategories': 'Все категории',
'settings.designSystemsShowInHomeGallery': 'Показывать в домашней галерее',
'settings.projectLocations': 'Расположения проектов',
'settings.projectLocationsHint': 'Корни хранения рабочих пространств',
'settings.projectLocationsDescription': 'Добавьте рабочие базы, которые могут содержать несколько папок проектов Open Design. Новые проекты сохраняются как папка внутри выбранной базы.',
'settings.projectLocationsSaveError': 'Не удалось сохранить расположения проектов. Проверьте, что каждый путь является доступной папкой.',
'settings.projectLocationsSaved': 'Расположения проектов сохранены.',
'settings.projectLocationsScanError': 'Не удалось просканировать расположения проектов.',
'settings.projectLocationsScanComplete': 'Сканирование завершено: импортировано {imported}, уже зарегистрировано {existing}.',
'settings.projectLocationsNoFolderSelected': 'Папка не выбрана.',
'settings.projectLocationsDuplicate': 'Эта рабочая база уже добавлена.',
'settings.projectLocationsWorkBaseMeta': 'Рабочая база · проекты создаются здесь как подпапки',
'settings.projectLocationsAddFolder': 'Добавить папку…',
'settings.projectLocationsDefaultBadge': 'Расположение по умолчанию',
'settings.projectLocationsMakeDefault': 'Сделать по умолчанию',
'settings.projectLocationsDefaultSaved': 'Расположение проекта по умолчанию обновлено.',
'settings.librarySkills': 'Навыки',
'settings.libraryDesignSystems': 'Системы дизайна',
'settings.librarySearch': 'Поиск...',
'settings.libraryAll': 'Все',
'settings.libraryPreview': 'Предпросмотр',
'settings.libraryPreviewClose': 'Закрыть',
'settings.libraryLoading': 'Загрузка...',
'settings.libraryNoResults': 'Ничего не найдено по вашему запросу.',
'settings.libraryEnabled': 'Включено',
'settings.libraryDisabled': 'Отключено',
'settings.connectorsNavHint': 'Подключения к внешним системам',
'settings.connectorsHint': 'Управляйте настройками коннекторов и провайдеров инструментов для этого устройства.',
'settings.connectorsComposioApiKey': 'API-ключ Composio',
'settings.connectorsSavedTitle': 'Сохранено в локальном daemon',
'settings.connectorsSavedWithTail': 'Сохранено · ••••{tail}',
'settings.connectorsSaved': 'Сохранено',
'settings.connectorsGetApiKey': 'Получить API-ключ',
'settings.connectorsReplaceKeyPlaceholder': 'Вставьте новый ключ, чтобы заменить сохранённый',
'settings.connectorsApiKeyPlaceholder': 'Вставьте API-ключ Composio',
'settings.connectorsClear': 'Очистить',
'settings.connectorsClearConfirmTitle': 'Очистить сохранённый ключ Composio API?',
'settings.connectorsClearConfirmBody': 'Удаление ключа отключит все коннекторы Composio, привязанные к этому рабочему пространству. Подключённые аккаунты, разрешения OAuth и доступ к инструментам будут удалены.',
'settings.connectorsClearConfirmContinue': 'Продолжить',
'settings.connectorsClearFinalTitle': 'Это отключит все коннекторы',
'settings.connectorsClearFinalBody': 'Отменить нельзя. После вставки нового ключа каждую интеграцию придётся подключать заново.',
'settings.connectorsClearFinalConfirm': 'Удалить ключ и отключить',
'settings.connectorsClearArming': 'Минуточку\u2026',
'settings.connectorsClearCancel': 'Отмена',
'settings.connectorsSaveKey': "Сохранить ключ",
'settings.connectorsSaveKeyTitle': "Отправить ключ локальному демону",
'settings.connectorsKeySaving': "Сохранение…",
'settings.connectorsKeySaved': "Сохранено ✓",
'settings.connectorsKeyError': "Не удалось сохранить ключ. Убедитесь, что локальный демон запущен, и попробуйте снова.",
'settings.connectorsHelpSaved': 'Ваш ключ открывает каталог ниже и остаётся в локальном daemon. Вставьте новый ключ для замены или очистите, чтобы удалить.',
'settings.connectorsHelpUnsaved': "Несохранённые изменения — нажмите «Сохранить ключ», чтобы передать его локальному демону и открыть каталог ниже.",
'settings.connectorsHelpEmpty': 'Добавьте ключ, чтобы открыть каталог ниже. Ключи хранятся локально в daemon и никогда не передаются через переменные окружения.',
'settings.connectorsLoadingSavedKey': 'Проверка сохранённого ключа в локальном daemon…',
'settings.autosaveSaving': "Сохранение…",
'settings.autosaveSaved': "Все изменения сохранены",
'settings.autosaveError': "Не удалось сохранить изменения. Возможно, локальный демон не в сети.",
'settings.libraryToggleLabel': 'Переключить',
// Memory (auto-extracted personalization saved as on-disk markdown)
'settings.memory': 'Память',
'settings.memoryHint': 'Личные факты, автоматически извлечённые из чатов',
'settings.memoryDescription': 'Факты о ваших предпочтениях, автоматически извлечённые из чатов, сохранены как Markdown-файлы и подмешиваются в каждый новый чат.',
'settings.memoryEnabled': 'Включено',
'settings.memoryDisabled': 'Выключено',
'settings.memoryEnableLabel': 'Включить вставку памяти',
'settings.memoryDisabledBanner': 'Память сейчас выключена. Существующие факты сохраняются на диске, но не подмешиваются в новые чаты.',
'settings.memoryNew': 'Новая запись',
'settings.memoryEdit': 'Изменить',
'settings.memoryDelete': 'Удалить',
'settings.memoryPreview': 'Просмотр',
'settings.memoryEmpty': 'Пока нет записей.',
'settings.memoryEmptyHintZh': '记住: 用户偏好深色主题',
'settings.memoryEmptyHintEn': 'I prefer dark mode',
'settings.memoryName': 'Название',
'settings.memoryDesc': 'Однострочное описание',
'settings.memoryBody': 'Содержимое (поддерживается Markdown)',
'settings.memoryBodyHint': 'Сначала правило, затем строки Why и How to apply.',
'settings.memoryStartersLabel': 'Need a starting point? Click to fill the form:',
'settings.memoryStarterUserName': 'My role',
'settings.memoryStarterUserDesc': 'I am a frontend engineer working on a SaaS design tool',
'settings.memoryStarterUserBody': '- Role: senior frontend engineer\n- Stack: React, TypeScript, Vite\n- Domain: design / collaboration tools\n- Timezone: GMT+8 (Asia/Shanghai)\n\nWhen to apply: any chat — frame examples around web frontend.',
'settings.memoryStarterFeedbackName': 'UI preferences',
'settings.memoryStarterFeedbackDesc': 'Dark mode, large body text, low information density',
'settings.memoryStarterFeedbackBody': '- Theme: dark by default\n- Body text: ≥ 18px\n- Information density: prefer whitespace, fewer items per screen\n\nWhy: less eye strain during long sessions.\nWhen to apply: whenever you generate UI, web pages, or slides.',
'settings.memoryStarterProjectName': 'Current project',
'settings.memoryStarterProjectDesc': 'Open Design v0.5 — chat-driven design editor',
'settings.memoryStarterProjectBody': '- Goal: ship the chat-driven editor this quarter\n- Priorities: streaming render, local multimodal, offline-first\n- Stack: Next.js 16, Express daemon, SQLite\n\nWhen to apply: in any conversation about this project.',
'settings.memorySaveHint': 'Not auto-saved — click Create / Save to apply.',
'settings.memoryIndexSaveHint': 'Edits to the index are not auto-saved — click Save index to apply.',
'settings.memoryIndexUnsaved': 'Unsaved changes',
'settings.memoryFlashCreated': '✓ Memory created',
'settings.memoryFlashSaved': '✓ Memory saved',
'settings.memoryFlashDeleted': '✓ Memory deleted',
'settings.memoryFlashIndexSaved': '✓ Index saved',
'settings.memoryFlashPathCopied': '✓ Путь скопирован',
'settings.memoryNameLabel': 'Title',
'settings.memoryTypeLabel': 'Type',
'settings.memoryDescLabel': 'Description',
'settings.memoryBodyLabel': 'Content',
'settings.memoryTypeUser': 'Пользователь',
'settings.memoryTypeFeedback': 'Отзыв',
'settings.memoryTypeProject': 'Проект',
'settings.memoryTypeReference': 'Ссылка',
'settings.memoryIndex': 'MEMORY.md (индекс)',
'settings.memoryIndexSave': 'Сохранить индекс',
'settings.memoryIndexReset': 'Сбросить',
'settings.memoryToastChanged': 'Память обновлена',
'settings.memoryToastClickHint': 'Открыть',
'settings.memoryAll': 'Все',
'settings.memoryExtractions': 'Extraction history',
'settings.memoryExtractionsHint': 'Recent LLM-backed extraction attempts. Heuristic regex extraction always runs first; LLM extraction runs in the background after each turn.',
'settings.memoryExtractionsEmpty': 'No extractions yet. The next chat turn will populate this list.',
'settings.memoryExtractionsRefresh': 'Refresh',
'settings.memoryExtractionsRefreshing': 'Refreshing…',
'settings.memoryExtractionPhaseRunning': 'Running…',
'settings.memoryExtractionPhaseSuccess': 'Success',
'settings.memoryExtractionPhaseSkipped': 'Skipped',
'settings.memoryExtractionPhaseFailed': 'Failed',
'settings.memoryExtractionSkipNoProvider': 'No API key configured for LLM memory extraction.',
'settings.memoryExtractionSkipDisabled': 'Memory is disabled.',
'settings.memoryExtractionSkipEmpty': 'Empty user message — nothing to extract.',
'settings.memoryExtractionSkipNoMatch': 'No regex pattern matched this turn.',
'settings.memoryExtractionKindHeuristic': 'regex',
'settings.memoryExtractionKindLlm': 'LLM',
'settings.memoryExtractionProviderEnv': 'env',
'settings.memoryExtractionProviderMediaConfig': 'media settings',
'settings.memoryExtractionProposed': 'proposed',
'settings.memoryExtractionWritten': 'written',
'settings.memoryExtractionDuration': 'in',
'settings.memoryNoProviderBannerTitle': 'LLM memory extraction is not running',
'settings.memoryNoProviderBannerBody': 'No API key found for the memory extractor. Add an OpenAI key under Media providers, or set ANTHROPIC_API_KEY / OPENAI_API_KEY in the environment, to enable LLM-driven extraction. Heuristic regex extraction is still active.',
'settings.memoryExtractionProviderOverride': 'memory settings',
'settings.memoryExtractionDelete': 'Delete',
'settings.memoryExtractionsClear': 'Clear',
'settings.memoryExtractionsClearTitle': 'Clear all extraction history',
'settings.libraryInstall': 'Установить',
'settings.libraryInstallGithub': 'GitHub',
'settings.libraryInstallLocal': 'Локальный путь',
'settings.libraryInstallUrl': 'https://github.com/owner/repo',
'settings.libraryInstallPath': '/path/to/skill-folder',
'settings.libraryInstallButton': 'Установить',
'settings.libraryUninstall': 'Удалить',
'settings.libraryBuiltIn': 'Встроенный',
'settings.libraryInstalled': 'Установлен',
'notify.successTitle': 'Задача выполнена',
'notify.failureTitle': 'Задача завершилась с ошибкой',
'notify.successBody': 'Ход завершён.',
'notify.failureBody': 'Задача завершилась с ошибкой.',
'updater.available': 'Доступно обновление',
'updater.availableBody': 'Open Design {version} доступен. Он будет загружен перед открытием установщика.',
'updater.checking': 'Проверка обновлений',
'updater.download': 'Скачать обновление',
'updater.downloading': 'Загрузка обновления',
'updater.downloadingPercent': 'Загрузка обновления {percent}%',
'updater.done': 'Готово',
'updater.failed': 'Обновление не удалось',
'updater.installerOpenBody': 'Установщик открыт. Open Design закрывается, чтобы вы могли завершить обновление.',
'updater.installerOpened': 'Установщик открыт',
'updater.later': 'Позже',
'updater.openFailedFallback': 'Не удалось открыть установщик.',
'updater.openInstaller': 'Установить обновление',
'updater.opening': 'Открытие установщика...',
'updater.quitButton': 'Закрыть Open Design',
'updater.quitFailedBody': 'Установщик открыт, но Open Design не удалось закрыть. Закройте Open Design перед заменой приложения.',
'updater.quitFailedTitle': 'Не удалось закрыть',
'updater.quitting': 'Закрытие...',
'updater.ready': 'Обновление готово',
'updater.readyGeneric': 'Новая версия готова. Open Design закроется и откроет установщик.',
'updater.readyVersion': 'Open Design {version} готов. Open Design закроется и откроет установщик.',
'updater.upToDate': 'У вас уже установлена последняя версия.',
'settings.memoryModelInlineLabel': 'Memory model',
'settings.memoryModelInlineSameAsChat': 'Same as chat',
'settings.memoryModelInlineSameAsChatWithModel': 'Same as chat ({model})',
'settings.memoryModelInlineSameAsChatWithProvider': 'Same as chat ({provider})',
'settings.memoryModelInlineHintCli': 'Optional. The memory extractor uses an env-var or media-providers API key on this provider; pinning a model here just overrides the auto-pick.',
'settings.memoryModelInlineHintCliConstrained': 'Optional. Memory will call {provider}; needs an env-var or media-providers API key for that provider, or pick a model below to override.',
'settings.memoryModelInlineHintByok': 'Optional. Reuses your chat API key on the same provider — picking a different (usually cheaper) model only changes the request body.',
'settings.memoryModelInlineFlashSaved': 'Saved',
'settings.memoryModelInlineFlashCleared': 'Cleared',
'settings.orbit.eyebrow': 'Автоматизация',
'settings.orbit.title': 'Orbit',
'settings.orbit.navHint': 'Ежедневная сводка коннекторов',
'settings.orbit.lede': 'Собирать активность коннекторов по расписанию и публиковать результат как обновляемый live artifact.',
'settings.orbit.statusOnTitle': 'Ежедневные запуски по расписанию включены',
'settings.orbit.statusOffTitle': 'Ежедневные запуски по расписанию выключены',
'settings.orbit.statusActive': 'Активно',
'settings.orbit.statusOff': 'Выкл.',
'settings.orbit.runTitle': 'Запустить Orbit и открыть живой диалог',
'settings.orbit.running': 'Выполняется…',
'settings.orbit.runOpen': 'Запустить сейчас',
'settings.orbit.dailySummaryTitle': 'Ежедневная сводка',
'settings.orbit.dailySummarySub': 'Выполняется раз в день в назначенное локальное время.',
'settings.orbit.on': 'Вкл.',
'settings.orbit.off': 'Выкл.',
'settings.orbit.runTimeTitle': 'Время запуска',
'settings.orbit.runTimeSub': 'По умолчанию 08:00. Сохраните, чтобы применить расписание daemon.',
'settings.orbit.runTimeAria': 'Время ежедневного запуска Orbit',
'settings.orbit.nextRun': 'Следующий запуск',
'settings.orbit.nextRunScheduledAfterSave': 'Будет запланировано после сохранения',
'settings.orbit.schedule': 'Расписание',
'settings.orbit.pausedManualOnly': 'Пауза — только ручные запуски',
'settings.orbit.templateTitle': 'Шаблон prompt',
'settings.orbit.templateMissing': 'Шаблон {id} не установлен.',
'settings.orbit.templateMissingOption': '{id} (отсутствует)',
'settings.orbit.templateMissingInstall': 'Установите skill Orbit, чтобы направлять prompt.',
'settings.orbit.templateMissingPickAnother': 'Выберите другой шаблон в списке.',
'settings.orbit.templateResetTitle': 'Сбросить на {id}',
'settings.orbit.templateReset': 'Сбросить',
'settings.orbit.templateHelp': 'Направляйте Orbit с помощью skill — пример prompt выбранного шаблона добавляется в каждый запуск Orbit, чтобы сводки следовали этой форме.',
'settings.orbit.templateAria': 'Шаблон prompt Orbit',
'settings.orbit.templatesLoading': 'Загрузка шаблонов…',
'settings.orbit.templatesOptgroup': 'Шаблоны skills Orbit',
'settings.orbit.lastRun': 'Последний запуск',
'settings.orbit.triggerManual': 'Вручную',
'settings.orbit.triggerScheduled': 'По расписанию',
'settings.orbit.meterAria': '{succeeded} успешно, {skipped} пропущено, {failed} с ошибкой из {checked} проверено',
'settings.orbit.countChecked': 'Проверено',
'settings.orbit.countSucceeded': 'Успешно',
'settings.orbit.countSkipped': 'Пропущено',
'settings.orbit.countFailed': 'С ошибкой',
'settings.orbit.runError': 'Не удалось запустить Orbit. Убедитесь, что локальный daemon запущен, а коннекторы настроены.',
'settings.orbit.gateAriaLabel': "Для работы Orbit нужны коннекторы",
'settings.orbit.gateEyebrow': "Требуется настройка",
'settings.orbit.gateTitle': "Подключите инструмент для работы Orbit",
'settings.orbit.gateBody': "Orbit обобщает активность ваших коннекторов. Вы ещё ничего не подключили — добавьте хотя бы одну интеграцию, чтобы Orbit мог о чём-то сообщить.",
'settings.orbit.gateBodyNoKey': "Orbit обобщает активность коннекторов, а коннекторы работают через Composio. Добавьте ключ API Composio в разделе «Коннекторы», чтобы открыть каталог и выбрать первую интеграцию.",
'settings.orbit.gateAction': "Открыть коннекторы",
'settings.orbit.gateActionNoKey': "Настроить Composio",
'settings.orbit.gateLoading': "Проверка коннекторов…",
'settings.orbit.controlsLockedBadge': "Заблокировано",
'settings.orbit.controlsLockedHint': "Подключите инструмент, чтобы разблокировать расписание и шаблон Orbit.",
'settings.orbit.artifactKickerLive': 'live artifact',
'settings.orbit.artifactKickerLegacy': 'Устаревшая сводка',
'settings.orbit.artifactTitle': 'Ежедневная сводка активности Orbit',
'settings.orbit.artifactMetaLive': 'Обновляемый HTML-артефакт, созданный из активности коннекторов.',
'settings.orbit.artifactMetaLegacy': 'Создано до включения поддержки live artifact — запустите Orbit снова, чтобы опубликовать один.',
'settings.orbit.copyMarkdownTitle': 'Скопировать сводку Markdown в буфер обмена',
'settings.orbit.copied': 'Скопировано',
'settings.orbit.copy': 'Копировать',
'settings.orbit.openArtifact': 'Открыть артефакт',
'settings.orbit.sourceMarkdown': 'Исходный Markdown',
'liveArtifact.viewer.tabPreview': 'Предпросмотр',
'liveArtifact.viewer.tabCode': 'Код',
'liveArtifact.viewer.tabData': 'Данные',
'liveArtifact.viewer.tabRefreshHistory': 'История обновлений',
'liveArtifact.viewer.dataEmpty': 'Кэш data.json недоступен.',
'liveArtifact.viewer.code.templateHeading': 'HTML шаблона',
'liveArtifact.viewer.code.renderedHeading': 'Сгенерированный HTML',
'liveArtifact.viewer.code.templateHelp': 'Редактируемый шаблон, используемый с data.json для создания предпросмотра.',
'liveArtifact.viewer.code.renderedHelp': 'Сгенерированный index.html, который сейчас загружен в предпросмотре.',
'liveArtifact.viewer.code.variantAria': 'Вариант кода',
'liveArtifact.viewer.code.variantTemplate': 'Шаблон',
'liveArtifact.viewer.code.variantRendered': 'Сгенерировано',
'liveArtifact.viewer.code.loading': 'Загрузка кода…',
'liveArtifact.viewer.code.unavailable': 'Код пока недоступен.',
'liveArtifact.viewer.code.empty': 'Этот файл кода пуст.',
// Diagnostics export
'diagnostics.exportTitle': 'Экспорт диагностики',
'diagnostics.exportButton': 'Экспорт диагностики',
'diagnostics.exportHint': 'Упаковывает недавние журналы приложения и сведения о машине в zip для отправки команде.',
'diagnostics.exporting': 'Экспортирование…',
'diagnostics.exportSuccess': 'Диагностика сохранена: {path}',
'diagnostics.exportFailed': 'Не удалось экспортировать диагностику: {message}',
'generationPreview.title': 'Генерация…',
'generationPreview.failedTitle': 'Ошибка генерации',
'generationPreview.failedFallback': 'Что-то пошло не так. Попробуйте ещё раз.',
'generationPreview.footnote': 'Обычно занимает 25 минут',
'generationPreview.stepUnderstand': 'Анализ требований',
'generationPreview.stepGenerate': 'Создание страницы',
'generationPreview.stepPrepare': 'Подготовка предпросмотра',
'generationPreview.elapsed': 'Прошло {elapsed}',
'generationPreview.estimate': 'Обычно 25 мин',
'generationPreview.progressAria': 'Прогресс генерации: {percent}%',
'generationPreview.retry': 'Повторить',
'generationPreview.awaitingTitle': 'Ожидание вашего ответа',
'generationPreview.awaitingLead': 'Ответьте на несколько вопросов в чате, чтобы продолжить.',
'generationPreview.stoppedTitle': 'Генерация приостановлена',
'generationPreview.stoppedLead': 'Продолжите оставшиеся шаги в чате слева.',
};