mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
* 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
1874 lines
132 KiB
TypeScript
1874 lines
132 KiB
TypeScript
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':
|
||
'Занимает больше времени, чем обычно. Форма обычно появляется через 5–10с — вы можете остановить и перефразировать.',
|
||
'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': 'Обычно занимает 2–5 минут',
|
||
'generationPreview.stepUnderstand': 'Анализ требований',
|
||
'generationPreview.stepGenerate': 'Создание страницы',
|
||
'generationPreview.stepPrepare': 'Подготовка предпросмотра',
|
||
'generationPreview.elapsed': 'Прошло {elapsed}',
|
||
'generationPreview.estimate': 'Обычно 2–5 мин',
|
||
'generationPreview.progressAria': 'Прогресс генерации: {percent}%',
|
||
'generationPreview.retry': 'Повторить',
|
||
'generationPreview.awaitingTitle': 'Ожидание вашего ответа',
|
||
'generationPreview.awaitingLead': 'Ответьте на несколько вопросов в чате, чтобы продолжить.',
|
||
'generationPreview.stoppedTitle': 'Генерация приостановлена',
|
||
'generationPreview.stoppedLead': 'Продолжите оставшиеся шаги в чате слева.',
|
||
};
|