- Preserve parent-local movement during Control bypass - Route native snapping menu actions through persisted preferences - Harden guide alignment, lifecycle rendering, and transformed resize behavior - Update preference descriptions and fractional position display
302 lines
22 KiB
JSON
302 lines
22 KiB
JSON
{
|
||
"cancel": "Отмена",
|
||
"apply": "Применить",
|
||
"close": "Закрыть",
|
||
"recoverUnsavedWork": "Восстановить несохранённую работу",
|
||
"recoverUnsavedWorkDescription": "OpenPencil обнаружил документы из предыдущего сеанса.",
|
||
"restore": "Восстановить",
|
||
"discard": "Удалить",
|
||
"recoveryFailed": "Не удалось восстановить этот документ.",
|
||
"rename": "Переименовать",
|
||
"renameLayers": "Переименовать слои: {count}",
|
||
"renamePreview": "Предпросмотр",
|
||
"renameMatch": "Совпадение",
|
||
"renameTo": "Новое имя",
|
||
"renameCurrentName": "Текущее имя",
|
||
"renameNumberAscending": "Номер ↑",
|
||
"renameNumberDescending": "Номер ↓",
|
||
"renameStartAscendingFrom": "Начать по возрастанию с",
|
||
"renameStopDescendingAt": "Закончить по убыванию на",
|
||
"renameInvalidPattern": "Недопустимое регулярное выражение",
|
||
"ok": "ОК",
|
||
"copy": "Копировать",
|
||
"copied": "Скопировано",
|
||
"createCollection": "Создать коллекцию",
|
||
"localVariables": "Локальные переменные",
|
||
"noVariableCollections": "Нет коллекций переменных",
|
||
"connectAIProvider": "Подключите AI-провайдера, чтобы начать чат.",
|
||
"connect": "Подключить",
|
||
"testConnection": "Проверить подключение",
|
||
"testingConnection": "Проверка…",
|
||
"connectionTestSuccess": "Подключение установлено. Модель доступна.",
|
||
"connectionTestMissingAPIKey": "Введите API-ключ перед проверкой.",
|
||
"connectionTestMissingBaseURL": "Введите базовый URL перед проверкой.",
|
||
"connectionTestMissingModel": "Введите ID модели перед проверкой.",
|
||
"connectionTestInvalidBaseURL": "Недопустимый базовый URL. Используйте полный URL, например https://api.example.com/v1.",
|
||
"connectionTestAuthFailed": "Не удалось пройти аутентификацию. Проверьте API-ключ.",
|
||
"connectionTestInsufficientCredit": "На счёте провайдера недостаточно средств или квоты. Пополните его и повторите попытку.",
|
||
"connectionTestModelNotFound": "Модель не найдена. Проверьте ID модели.",
|
||
"connectionTestAPITypeMismatch": "Эта конечная точка, вероятно, не поддерживает выбранный тип API. Попробуйте Completions или Responses.",
|
||
"connectionTestBrowserNetworkFailed": "Не удалось подключиться к этой конечной точке из браузера. Попробуйте настольное приложение или конечную точку с поддержкой CORS.",
|
||
"connectionTestNetworkFailed": "Не удалось подключиться к конечной точке. Проверьте URL и подключение к сети.",
|
||
"connectionTestUnknownFailed": "Не удалось проверить подключение. Проверьте настройки провайдера и повторите попытку.",
|
||
"getAPIKey": "Получить API-ключ {provider} →",
|
||
"oneKeyManyModels": "Один ключ для 100+ моделей от разных провайдеров.",
|
||
"describeChange": "Опишите изменение…",
|
||
"describeCreateOrChange": "Опишите, что вы хотите создать или изменить.",
|
||
"stopGenerating": "Остановить генерацию",
|
||
"sendMessage": "Отправить сообщение",
|
||
"baseURLPlaceholder": "Base URL (например, http://localhost:11434/v1)",
|
||
"modelIDPlaceholder": "Model ID (например, llama-3.3-70b)",
|
||
"yourName": "Ваше имя",
|
||
"enterYourName": "Введите ваше имя",
|
||
"shareThisFile": "Поделиться файлом",
|
||
"joinRoom": "Войти в комнату",
|
||
"join": "Войти",
|
||
"roomLink": "Ссылка на комнату",
|
||
"joinCollaboration": "Присоединиться к совместной работе",
|
||
"orJoinRoom": "или войти в комнату",
|
||
"pasteRoomLinkOrId": "Вставьте ссылку на комнату или ID",
|
||
"connected": "Подключено",
|
||
"search": "Поиск…",
|
||
"noResults": "Ничего не найдено",
|
||
"share": "Поделиться",
|
||
"appUpToDate": "OpenPencil обновлён до последней версии",
|
||
"updateAvailableTitle": "Обновить OpenPencil",
|
||
"updateAvailable": "Доступен OpenPencil {version}.",
|
||
"updateInstallPrompt": "Скачать и установить сейчас? После установки обновления приложение перезапустится.",
|
||
"downloadingUpdate": "Загрузка OpenPencil {version}",
|
||
"updateInstalledTitle": "Обновление установлено",
|
||
"updateInstalled": "OpenPencil {version} установлен{size}. Перезапуск.",
|
||
"updateCheckFailed": "Не удалось проверить обновления: {error}",
|
||
"updateUnavailable": "Обновления пока недоступны. Сначала опубликуйте подписанный релиз с latest.json.",
|
||
"renameCollection": "Переименовать коллекцию",
|
||
"deleteCollection": "Удалить коллекцию",
|
||
"modes": "Режимы",
|
||
"addMode": "Добавить режим",
|
||
"renameMode": "Переименовать режим",
|
||
"duplicateMode": "Дублировать режим",
|
||
"deleteMode": "Удалить режим",
|
||
"setDefaultMode": "Установить по умолчанию",
|
||
"aiProvider": "AI Provider",
|
||
"providerSettings": "Provider settings",
|
||
"openProviderSettings": "Открыть настройки провайдера",
|
||
"settings": "Настройки",
|
||
"settingsDescription": "Управление интеграциями и настройками приложения.",
|
||
"settingsGeneral": "Основные",
|
||
"settingsEditing": "Редактирование",
|
||
"settingsSnappingDescription": "Настройте выравнивание при редактировании контуров, перемещении и изменении размеров слоёв.",
|
||
"snapToGeometry": "Привязка к геометрии",
|
||
"snapToGeometryDescription": "Выравнивать перетаскиваемые векторные точки по другим точкам контура.",
|
||
"snapToObjects": "Привязка к объектам",
|
||
"snapToObjectsDescription": "Выравнивать векторные точки и границы слоёв по краям и центрам соседних слоёв.",
|
||
"snapToPixelGrid": "Привязка к пиксельной сетке",
|
||
"snapToPixelGridDescription": "Выравнивать векторные точки, перемещаемые слои и изменяемые края по целым пикселям.",
|
||
"snapTemporaryDisableHint": "Удерживайте Control при перетаскивании, чтобы временно отключить привязку.",
|
||
"settingsAIAndAgents": "ИИ и агенты",
|
||
"models": "Модели",
|
||
"modelsDescription": "Настройте переиспользуемые модели и подключения к провайдерам.",
|
||
"mcpConnections": "Подключения MCP",
|
||
"mcpConnectionsDescription": "Предоставьте ACP-агентам доступ к доверенным удалённым инструментам и сервисам.",
|
||
"addConnection": "Добавить подключение",
|
||
"addMCPConnection": "Добавить подключение MCP",
|
||
"editMCPConnection": "Изменить подключение MCP",
|
||
"mcpConnectionEditorDescription": "Настройте сервер Streamable HTTP и необязательную аутентификацию.",
|
||
"connectionName": "Название подключения",
|
||
"mcpServerURL": "URL сервера MCP",
|
||
"enableMCPConnection": "Включить для ACP-агентов",
|
||
"mcpBearerAuthentication": "Использовать Bearer-аутентификацию",
|
||
"mcpBearerToken": "Bearer-токен",
|
||
"mcpBearerTokenPlaceholder": "Введите Bearer-токен",
|
||
"mcpBearerTokenRequired": "Введите Bearer-токен перед включением этого подключения.",
|
||
"deleteMCPConnection": "Удалить подключение",
|
||
"deleteMCPConnectionDescription": "Удалить это подключение MCP и сохранённый Bearer-токен?",
|
||
"noMCPConnections": "Внешние подключения MCP не настроены.",
|
||
"addModel": "Добавить модель",
|
||
"editModel": "Изменить модель",
|
||
"modelEditorDescription": "Провайдер, модель, учётные данные и возможности.",
|
||
"modelName": "Название",
|
||
"modelConfiguration": "Модель",
|
||
"connectionSettings": "Подключение",
|
||
"modelCapabilities": "Возможности",
|
||
"modelCapabilitiesDetected": "Определены по выбранной модели.",
|
||
"modelCapabilitiesManual": "Укажите совместимость этой пользовательской модели.",
|
||
"modelCapabilityTools": "Вызов инструментов",
|
||
"modelCapabilityVision": "Ввод изображений",
|
||
"modelCapabilityToolsShort": "Инструменты",
|
||
"modelCapabilityVisionShort": "Зрение",
|
||
"selectDesignModel": "Выбрать модель для дизайна",
|
||
"modelNeedsCredential": "Нужен ключ",
|
||
"modelAgentConnection": "Агент",
|
||
"saveModel": "Сохранить модель",
|
||
"deleteModel": "Удалить модель",
|
||
"deleteModelDescription": "Удалить эту модель и её назначения ролей?",
|
||
"modelAssignments": "Назначения",
|
||
"modelAssignmentsDescription": "Выберите модель для каждого типа работы.",
|
||
"modelRoleDesign": "Дизайн-агент",
|
||
"modelRoleReview": "Проверка",
|
||
"modelRoleFast": "Быстрые задачи",
|
||
"modelRoleVision": "Зрение",
|
||
"modelRoleDesignDescription": "ИИ-чат и редактирование холста",
|
||
"modelRoleReviewDescription": "Явная проверка планов и макетов",
|
||
"modelRoleFastDescription": "Недорогая фоновая работа",
|
||
"modelRoleVisionDescription": "Снимки экрана и визуальные референсы",
|
||
"modelRoleUseDesign": "Как для дизайна",
|
||
"noModel": "Нет",
|
||
"back": "Назад",
|
||
"settingsMedia": "Медиа",
|
||
"vectorization": "Векторизация изображений",
|
||
"vectorizationDescription": "Отправляет слои изображений в Recraft или fal.ai и возвращает редактируемые векторы. Может взиматься плата провайдера.",
|
||
"vectorizeProvider": "Сервис векторизации",
|
||
"settingsStorage": "Облачное хранилище",
|
||
"storageWorkspace": "Рабочая область хранилища",
|
||
"openStorageWorkspace": "Открыть область",
|
||
"newStoredDocument": "Новый документ",
|
||
"emptyStorageWorkspace": "Сохранённых документов пока нет.",
|
||
"loadingDocuments": "Загрузка документов…",
|
||
"storageNotConfigured": "Настройте хранилище перед использованием этой области.",
|
||
"copyStorageCors": "Скопировать JSON CORS",
|
||
"storageEndpoint": "Конечная точка",
|
||
"storageBucket": "Бакет",
|
||
"storageRegion": "Регион",
|
||
"storageAccessKeyID": "Идентификатор ключа доступа",
|
||
"storageSecretAccessKey": "Секретный ключ доступа",
|
||
"save": "Сохранить",
|
||
"credentialStorage": "Учётные данные: {backend}",
|
||
"credentialBackendNative": "системное хранилище учётных данных",
|
||
"credentialBackendBrowser": "зашифрованное хранилище браузера",
|
||
"credentialBackendMemory": "только этот сеанс",
|
||
"rememberCredentials": "Запомнить учётные данные в этом браузере",
|
||
"done": "Done",
|
||
"apiKey": "API Key",
|
||
"apiType": "API Type",
|
||
"baseURL": "Base URL",
|
||
"modelID": "Model ID",
|
||
"customModelID": "ID пользовательской модели",
|
||
"customModel": "Пользовательская модель…",
|
||
"advancedModelSettings": "Расширенные настройки",
|
||
"outputLimit": "Лимит вывода",
|
||
"outputLimitAutomatic": "Автоматическая рекомендация",
|
||
"reasoningEffort": "Глубина рассуждения",
|
||
"reasoningEffortPlaceholder": "например, low, high, none",
|
||
"reasoningEffortDescription": "Необязательное значение, зависящее от провайдера.",
|
||
"supported": "Поддерживается",
|
||
"unsupported": "Не поддерживается",
|
||
"tokens": "токенов",
|
||
"maxOutputTokens": "Максимум выходных токенов",
|
||
"chatInsufficientCredit": "На счёте провайдера недостаточно средств или квоты. Пополните его и повторите попытку.",
|
||
"chatOutputLimit": "Модель исчерпала лимит выходных токенов во время рассуждения. Увеличьте максимум выходных токенов или снизьте глубину рассуждения.",
|
||
"chatRequestFailed": "Запрос к модели завершился ошибкой. Проверьте настройки провайдера и повторите попытку.",
|
||
"clear": "Clear",
|
||
"keySavedReplace": "Key saved — enter new to replace",
|
||
"getAPIKeyGeneric": "Get API key →",
|
||
"pexelsAPIKey": "Pexels API Key (stock photos)",
|
||
"unsplashAccessKey": "Unsplash Access Key",
|
||
"stockPhotoToolOptional": "Optional — for stock_photo tool",
|
||
"pexelsAlternativeOptional": "Optional — alternative to Pexels",
|
||
"getPexelsAPIKey": "Get free Pexels API key →",
|
||
"getUnsplashAccessKey": "Get free Unsplash access key →",
|
||
"completions": "Completions",
|
||
"responses": "Responses",
|
||
"copiedExclamation": "Скопировано!",
|
||
"copyMessage": "Скопировать сообщение",
|
||
"copyJSXReference": "Скопировать справку по JSX-свойствам в буфер",
|
||
"jsxUpToDate": "Up to date",
|
||
"newTab": "Новая вкладка",
|
||
"closeTab": "Закрыть {name}",
|
||
"showUI": "Показать интерфейс ({shortcut})",
|
||
"fontSettings": "Настройки шрифтов",
|
||
"fontIssueFound": "Одно начертание недоступно или заменено",
|
||
"fontIssuesFound": "{count} начертаний недоступны или заменены",
|
||
"selectAffectedLayers": "Выбрать слои",
|
||
"retryFonts": "Повторить загрузку шрифтов",
|
||
"retryingFonts": "Повторная попытка…",
|
||
"expandFontIssues": "Показать проблемы со шрифтами",
|
||
"collapseFontIssues": "Скрыть проблемы со шрифтами",
|
||
"noFontSubstitute": "замена недоступна",
|
||
"affectedLayer": "1 затронутый слой",
|
||
"affectedLayerCount": "{count} затронутых слоёв",
|
||
"fontSettingsDesktopDescription": "Доступ к системным шрифтам, онлайн-провайдерам, резервным наборам и кэшу загрузок.",
|
||
"fontSettingsBrowserDescription": "Разрешите браузеру доступ к локальным шрифтам и управляйте онлайн-провайдерами шрифтов.",
|
||
"localFonts": "Локальные шрифты",
|
||
"onlineFonts": "Онлайн-шрифты",
|
||
"downloadedCache": "Кэш загрузок",
|
||
"lastUpdated": "Последнее обновление",
|
||
"enabled": "Включено",
|
||
"disabled": "Отключено",
|
||
"denied": "Запрещено",
|
||
"unavailable": "Недоступно",
|
||
"notRequested": "Не запрошено",
|
||
"never": "Никогда",
|
||
"systemFontAccess": "Доступ к системным шрифтам",
|
||
"systemFontsAvailable": "Системные шрифты доступны.",
|
||
"allowBrowserFontAccess": "Разрешите доступ браузера к шрифтам, если системные шрифты отсутствуют.",
|
||
"allow": "Разрешить",
|
||
"requesting": "Запрос…",
|
||
"onlineFontProviders": "Онлайн-провайдеры шрифтов",
|
||
"downloadMissingWebFonts": "Загружайте отсутствующие веб-шрифты через включённых провайдеров.",
|
||
"webFontProvidersRequireDesktopApp": "Каталоги провайдеров онлайн-шрифтов недоступны в веб-приложении. Скачайте настольное приложение, чтобы просматривать и загружать шрифты провайдеров.",
|
||
"clipboardImageUnavailableWeb": "Вставленный дизайн содержит 1 изображение, которое нельзя загрузить в веб-приложении. Используйте настольное приложение, чтобы включить его.",
|
||
"clipboardImagesUnavailableWeb": "Вставленный дизайн содержит {count} изображений, которые нельзя загрузить в веб-приложении. Используйте настольное приложение, чтобы включить их.",
|
||
"clipboardImageFetchFailed": "Не удалось получить 1 изображение из Figma. Проверьте доступность исходного файла и повторите попытку.",
|
||
"clipboardImagesFetchFailed": "Не удалось получить {count} изображений из Figma. Проверьте доступность исходного файла и повторите попытку.",
|
||
"enable": "Включить",
|
||
"disable": "Отключить",
|
||
"fallbackPacks": "Резервные наборы",
|
||
"downloadFallbackPacksDescription": "Загрузите резервные CJK- и арабские шрифты перед открытием файлов, которым они нужны.",
|
||
"download": "Загрузить",
|
||
"downloading": "Загрузка…",
|
||
"refresh": "Обновить",
|
||
"clearCache": "Очистить кэш",
|
||
"localFontAccessEnabled": "Доступ к локальным шрифтам включён.",
|
||
"localFontAccessNotGranted": "Доступ к локальным шрифтам не предоставлен.",
|
||
"onlineFontProvidersEnabled": "Онлайн-провайдеры шрифтов включены.",
|
||
"onlineFontProvidersDisabled": "Онлайн-провайдеры шрифтов отключены.",
|
||
"fontProviderEnabled": "{provider} включён.",
|
||
"fontProviderDisabled": "{provider} отключён.",
|
||
"fallbackFontsDownloaded": "Резервные шрифты загружены.",
|
||
"fallbackFontsDownloadFailed": "Не удалось загрузить резервные шрифты.",
|
||
"downloadedFontCacheCleared": "Кэш загруженных шрифтов очищен.",
|
||
"downloadedFontCacheClearFailed": "Не удалось очистить кэш загруженных шрифтов.",
|
||
"you": "Вы",
|
||
"youSuffix": "вы",
|
||
"followingPeerStop": "Следите за {name} (нажмите, чтобы остановить)",
|
||
"clickToFollowPeer": "Нажмите, чтобы следить за {name}",
|
||
"importLabel": "Импорт",
|
||
"importHTMLCSS": "Импорт HTML/CSS",
|
||
"importHTMLCSSDescription": "Вставьте HTML и, при необходимости, CSS или скомпилированный Tailwind CSS.",
|
||
"paste": "Вставить",
|
||
"importFailed": "Не удалось импортировать. Проверьте HTML и CSS и повторите попытку.",
|
||
"importReplacesDocument": "Импорт заменит текущий документ.",
|
||
"importing": "Импорт…",
|
||
"importToCanvas": "Импортировать на холст",
|
||
"inThisRoom": "В этой комнате",
|
||
"disconnect": "Отключиться",
|
||
"toolFinished": "Готово",
|
||
"unknownTool": "Неизвестный инструмент",
|
||
"permissionRequest": "Инструмент «{tool}» запрашивает разрешение.",
|
||
"mobilePanelNavigation": "Навигация мобильной панели",
|
||
"toolOptions": "Параметры инструмента «{tool}»",
|
||
"removeGradientStop": "Удалить точку градиента",
|
||
"notifications": "Уведомления",
|
||
"saveAsPrompt": "Сохранить как:",
|
||
"browserFileAPINotSupported": "Ваш браузер не поддерживает API локальных файлов. Вместо сохранения на месте файлы будут скачиваться.",
|
||
"useChrome": "Использовать Chrome",
|
||
"orEdgeForFullSupport": "или Edge для полной поддержки.",
|
||
"dismiss": "Закрыть",
|
||
"toolRunning": "Выполняется…",
|
||
"toolError": "Ошибка",
|
||
"permissionRequestTitle": "Запрос разрешения",
|
||
"codeSource": "Code source",
|
||
"codeSourceDesignJSX": "Design JSX",
|
||
"codeSourceTailwindJSX": "Tailwind JSX",
|
||
"codeSourceHTMLCSS": "HTML/CSS",
|
||
"codeEditorDesignLabel": "Design JSX",
|
||
"codeEditorHTMLCSSLabel": "HTML and CSS",
|
||
"codeUpdating": "Updating…",
|
||
"codeUpdatedLive": "Updated live",
|
||
"codePreviewFailed": "Preview failed",
|
||
"codeGeneratedReadOnly": "Generated, read only",
|
||
"codeReset": "Reset"
|
||
}
|