mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 13:12:12 -03:00
Backend fixes: - Add missing API route for /api/lm/recipes/batch-import/progress (GET) - Add missing API route for /api/lm/recipes/batch-import/directory (POST) - Add missing API route for /api/lm/recipes/browse-directory (POST) - Register WebSocket endpoint for batch import progress - Fix skip_no_metadata default value (True -> False) to allow no-LoRA imports - Add items array to BatchImportProgress.to_dict() for detailed results Frontend implementation: - Create BatchImportManager.js with complete batch import workflow - Add directory browser UI for selecting folders - Add batch import modal with URL list and directory input modes - Implement real-time progress tracking (WebSocket + HTTP polling) - Add results summary with success/failed/skipped statistics - Add expandable details view showing individual item status - Auto-refresh recipe list after import completion UI improvements: - Add spinner animation for importing status - Simplify results summary UI to match progress stats styling - Fix current item text alignment - Fix dark theme styling for directory browser button - Fix batch import button styling consistency Translations: - Add batch import related i18n keys to all locale files - Run sync_translation_keys.py to sync all translations Fixes: - Batch import now allows images without LoRAs (matches single import behavior) - Progress endpoint now returns complete items array with status details - Results view correctly displays skipped items with error messages
1746 lines
119 KiB
JSON
1746 lines
119 KiB
JSON
{
|
||
"common": {
|
||
"cancel": "Отмена",
|
||
"confirm": "Подтвердить",
|
||
"actions": {
|
||
"save": "Сохранить",
|
||
"cancel": "Отмена",
|
||
"confirm": "Подтвердить",
|
||
"delete": "Удалить",
|
||
"move": "Переместить",
|
||
"refresh": "Обновить",
|
||
"back": "Назад",
|
||
"next": "Далее",
|
||
"backToTop": "Наверх",
|
||
"settings": "Настройки",
|
||
"help": "Справка",
|
||
"add": "Добавить"
|
||
},
|
||
"status": {
|
||
"loading": "Загрузка...",
|
||
"unknown": "Неизвестно",
|
||
"date": "Дата",
|
||
"version": "Версия",
|
||
"enabled": "Включено",
|
||
"disabled": "Отключено"
|
||
},
|
||
"language": {
|
||
"select": "Язык",
|
||
"select_help": "Выберите предпочитаемый язык интерфейса",
|
||
"english": "English",
|
||
"chinese_simplified": "中文(简体)",
|
||
"chinese_traditional": "中文(繁体)",
|
||
"russian": "Русский",
|
||
"german": "Deutsch",
|
||
"japanese": "日本語",
|
||
"korean": "한국어",
|
||
"french": "Français",
|
||
"spanish": "Español",
|
||
"Hebrew": "עברית"
|
||
},
|
||
"fileSize": {
|
||
"zero": "0 Байт",
|
||
"bytes": "Байт",
|
||
"kb": "КБ",
|
||
"mb": "МБ",
|
||
"gb": "ГБ",
|
||
"tb": "ТБ"
|
||
}
|
||
},
|
||
"onboarding": {
|
||
"languageSelection": {
|
||
"title": "Добро пожаловать в LoRA Manager",
|
||
"continue": "Продолжить",
|
||
"changeFailed": "Не удалось изменить язык: {message}"
|
||
},
|
||
"tutorial": {
|
||
"skipTutorial": "Пропустить обучение",
|
||
"back": "Назад",
|
||
"next": "Далее",
|
||
"finish": "Завершить"
|
||
},
|
||
"steps": {
|
||
"fetch": {
|
||
"title": "Получить метаданные моделей",
|
||
"content": "Нажмите кнопку <strong>Получить</strong>, чтобы загрузить метаданные моделей и изображения превью с Civitai."
|
||
},
|
||
"download": {
|
||
"title": "Загрузить новые модели",
|
||
"content": "Используйте кнопку <strong>Загрузить</strong> для скачивания моделей напрямую по URL Civitai."
|
||
},
|
||
"bulk": {
|
||
"title": "Массовые операции",
|
||
"content": "Войдите в массовый режим, нажав эту кнопку или клавишу <span class=\"onboarding-shortcut\">B</span>. Выберите несколько моделей и выполните пакетные операции. Используйте <span class=\"onboarding-shortcut\">Ctrl+A</span> для выбора всех видимых моделей."
|
||
},
|
||
"searchOptions": {
|
||
"title": "Опции поиска",
|
||
"content": "Нажмите эту кнопку, чтобы настроить поля для поиска: имя файла, название модели, теги или имя автора. Настройте область поиска."
|
||
},
|
||
"filter": {
|
||
"title": "Фильтрация моделей",
|
||
"content": "Используйте фильтры для сужения списка моделей по типу базовой модели (SD1.5, SDXL, Flux и др.) или по конкретным тегам."
|
||
},
|
||
"breadcrumb": {
|
||
"title": "Навигация по папкам",
|
||
"content": "Навигация по папкам показывает ваш текущий путь и позволяет быстро переходить между папками. Нажмите на имя папки для перехода."
|
||
},
|
||
"modelCards": {
|
||
"title": "Карточки моделей",
|
||
"content": "<strong>Одиночный клик</strong> по карточке модели откроет подробную информацию и позволит редактировать метаданные. Ищите значок карандаша при наведении на редактируемые поля."
|
||
},
|
||
"contextMenu": {
|
||
"title": "Контекстное меню",
|
||
"content": "<strong>Правый клик</strong> по карточке модели откроет контекстное меню с дополнительными действиями."
|
||
}
|
||
}
|
||
},
|
||
"modelCard": {
|
||
"actions": {
|
||
"addToFavorites": "Добавить в избранное",
|
||
"removeFromFavorites": "Удалить из избранного",
|
||
"viewOnCivitai": "Посмотреть на Civitai",
|
||
"notAvailableFromCivitai": "Недоступно на Civitai",
|
||
"sendToWorkflow": "Отправить в ComfyUI (Клик: Добавить, Shift+Клик: Заменить)",
|
||
"copyLoRASyntax": "Копировать синтаксис LoRA",
|
||
"checkpointNameCopied": "Имя checkpoint скопировано",
|
||
"toggleBlur": "Переключить размытие",
|
||
"show": "Показать",
|
||
"openExampleImages": "Открыть папку с примерами",
|
||
"replacePreview": "Заменить превью",
|
||
"copyCheckpointName": "Копировать имя checkpoint",
|
||
"copyEmbeddingName": "Копировать имя embedding",
|
||
"sendCheckpointToWorkflow": "Отправить в ComfyUI",
|
||
"sendEmbeddingToWorkflow": "Отправить в ComfyUI"
|
||
},
|
||
"nsfw": {
|
||
"matureContent": "Контент для взрослых",
|
||
"xxxRated": "XXX-контент",
|
||
"xRated": "X-контент",
|
||
"rRated": "R-контент"
|
||
},
|
||
"favorites": {
|
||
"added": "Добавлено в избранное",
|
||
"removed": "Удалено из избранного",
|
||
"updateFailed": "Не удалось обновить статус избранного"
|
||
},
|
||
"sendToWorkflow": {
|
||
"checkpointNotImplemented": "Отправка checkpoint в workflow - функция будет реализована",
|
||
"missingPath": "Невозможно определить путь модели для этой карточки"
|
||
},
|
||
"exampleImages": {
|
||
"checkError": "Ошибка проверки примеров изображений",
|
||
"missingHash": "Отсутствует хеш модели.",
|
||
"noRemoteImagesAvailable": "Нет удаленных примеров изображений для этой модели на Civitai"
|
||
},
|
||
"badges": {
|
||
"update": "Обновление",
|
||
"updateAvailable": "Доступно обновление",
|
||
"skipRefresh": "Обновление метаданных пропущено"
|
||
},
|
||
"usage": {
|
||
"timesUsed": "Количество использований"
|
||
}
|
||
},
|
||
"globalContextMenu": {
|
||
"downloadExampleImages": {
|
||
"label": "Загрузить примеры изображений",
|
||
"missingPath": "Укажите место загрузки перед загрузкой примеров изображений.",
|
||
"unavailable": "Загрузка примеров изображений пока недоступна. Попробуйте снова после полной загрузки страницы."
|
||
},
|
||
"checkModelUpdates": {
|
||
"label": "Проверить обновления",
|
||
"loading": "Проверка обновлений для {type}...",
|
||
"success": "Найдено {count} обновлений для {type}",
|
||
"none": "Все {type} актуальны",
|
||
"error": "Не удалось проверить обновления для {type}: {message}"
|
||
},
|
||
"cleanupExampleImages": {
|
||
"label": "Очистить папки с примерами изображений",
|
||
"success": "Перемещено {count} папок в папку удалённых",
|
||
"none": "Нет папок с примерами изображений, требующих очистки",
|
||
"partial": "Очистка завершена, пропущено {failures} папок",
|
||
"error": "Не удалось очистить папки с примерами изображений: {message}"
|
||
},
|
||
"fetchMissingLicenses": {
|
||
"label": "Refresh license metadata",
|
||
"loading": "Refreshing license metadata for {typePlural}...",
|
||
"success": "Updated license metadata for {count} {typePlural}",
|
||
"none": "All {typePlural} already have license metadata",
|
||
"error": "Failed to refresh license metadata for {typePlural}: {message}"
|
||
},
|
||
"repairRecipes": {
|
||
"label": "Восстановить данные рецептов",
|
||
"loading": "Восстановление данных рецептов...",
|
||
"success": "Успешно восстановлено {count} рецептов.",
|
||
"cancelled": "Восстановление отменено. {count} рецептов было восстановлено.",
|
||
"error": "Ошибка восстановления рецептов: {message}"
|
||
}
|
||
},
|
||
"header": {
|
||
"appTitle": "LoRA Manager",
|
||
"navigation": {
|
||
"loras": "LoRAs",
|
||
"recipes": "Рецепты",
|
||
"checkpoints": "Checkpoints",
|
||
"embeddings": "Embeddings",
|
||
"statistics": "Статистика"
|
||
},
|
||
"search": {
|
||
"placeholder": "Поиск...",
|
||
"placeholders": {
|
||
"loras": "Поиск LoRAs...",
|
||
"recipes": "Поиск рецептов...",
|
||
"checkpoints": "Поиск checkpoints...",
|
||
"embeddings": "Поиск embeddings..."
|
||
},
|
||
"options": "Опции поиска",
|
||
"searchIn": "Искать в:",
|
||
"notAvailable": "Поиск недоступен на странице статистики",
|
||
"filters": {
|
||
"filename": "Имя файла",
|
||
"modelname": "Название модели",
|
||
"tags": "Теги",
|
||
"creator": "Автор",
|
||
"title": "Название рецепта",
|
||
"loraName": "Имя файла LoRA",
|
||
"loraModel": "Название модели LoRA",
|
||
"prompt": "Запрос"
|
||
}
|
||
},
|
||
"filter": {
|
||
"title": "Фильтр моделей",
|
||
"presets": "Пресеты",
|
||
"savePreset": "Сохранить текущие активные фильтры как новый пресет.",
|
||
"savePresetDisabledActive": "Невозможно сохранить: Пресет уже активен. Измените фильтры, чтобы сохранить новый пресет",
|
||
"savePresetDisabledNoFilters": "Сначала выберите фильтры для сохранения как пресет",
|
||
"savePresetPrompt": "Введите имя пресета:",
|
||
"presetClickTooltip": "Нажмите чтобы применить пресет \"{name}\"",
|
||
"presetDeleteTooltip": "Удалить пресет",
|
||
"presetDeleteConfirm": "Удалить пресет \"{name}\"?",
|
||
"presetDeleteConfirmClick": "Нажмите еще раз для подтверждения",
|
||
"presetOverwriteConfirm": "Пресет \"{name}\" уже существует. Перезаписать?",
|
||
"presetNamePlaceholder": "Имя пресета...",
|
||
"baseModel": "Базовая модель",
|
||
"modelTags": "Теги (Топ 20)",
|
||
"modelTypes": "Типы моделей",
|
||
"license": "Лицензия",
|
||
"noCreditRequired": "Без указания авторства",
|
||
"allowSellingGeneratedContent": "Продажа разрешена",
|
||
"noTags": "Без тегов",
|
||
"clearAll": "Очистить все фильтры",
|
||
"any": "Любой",
|
||
"all": "Все",
|
||
"tagLogicAny": "Совпадение с любым тегом (ИЛИ)",
|
||
"tagLogicAll": "Совпадение со всеми тегами (И)"
|
||
},
|
||
"theme": {
|
||
"toggle": "Переключить тему",
|
||
"switchToLight": "Переключить на светлую тему",
|
||
"switchToDark": "Переключить на тёмную тему",
|
||
"switchToAuto": "Переключить на автоматическую тему"
|
||
},
|
||
"actions": {
|
||
"checkUpdates": "Проверить обновления",
|
||
"notifications": "Уведомления",
|
||
"support": "Поддержка"
|
||
}
|
||
},
|
||
"settings": {
|
||
"civitaiApiKey": "Ключ API Civitai",
|
||
"civitaiApiKeyPlaceholder": "Введите ваш ключ API Civitai",
|
||
"civitaiApiKeyHelp": "Используется для аутентификации при загрузке моделей с Civitai",
|
||
"openSettingsFileLocation": {
|
||
"label": "Открыть папку настроек",
|
||
"tooltip": "Открыть папку, содержащую settings.json",
|
||
"success": "Папка settings.json открыта",
|
||
"failed": "Не удалось открыть папку settings.json",
|
||
"copied": "Путь настроек скопирован в буфер обмена: {{path}}",
|
||
"clipboardFallback": "Путь настроек: {{path}}"
|
||
},
|
||
"sections": {
|
||
"contentFiltering": "Фильтрация контента",
|
||
"videoSettings": "Настройки видео",
|
||
"layoutSettings": "Настройки макета",
|
||
"misc": "Разное",
|
||
"folderSettings": "Корневые папки",
|
||
"extraFolderPaths": "Дополнительные пути к папкам",
|
||
"downloadPathTemplates": "Шаблоны путей загрузки",
|
||
"priorityTags": "Приоритетные теги",
|
||
"updateFlags": "Метки обновлений",
|
||
"exampleImages": "Примеры изображений",
|
||
"autoOrganize": "Автоорганизация",
|
||
"metadata": "Метаданные",
|
||
"proxySettings": "Настройки прокси"
|
||
},
|
||
"nav": {
|
||
"general": "Общее",
|
||
"interface": "Интерфейс",
|
||
"library": "Библиотека"
|
||
},
|
||
"search": {
|
||
"placeholder": "Поиск в настройках...",
|
||
"clear": "Очистить поиск",
|
||
"noResults": "Настройки, соответствующие \"{query}\", не найдены"
|
||
},
|
||
"storage": {
|
||
"locationLabel": "Портативный режим",
|
||
"locationHelp": "Включите, чтобы хранить settings.json в репозитории; выключите, чтобы сохранить его в папке конфигурации пользователя."
|
||
},
|
||
"contentFiltering": {
|
||
"blurNsfwContent": "Размывать NSFW контент",
|
||
"blurNsfwContentHelp": "Размывать превью изображений контента для взрослых (NSFW)",
|
||
"showOnlySfw": "Показывать только SFW результаты",
|
||
"showOnlySfwHelp": "Фильтровать весь NSFW контент при просмотре и поиске"
|
||
},
|
||
"videoSettings": {
|
||
"autoplayOnHover": "Автовоспроизведение видео при наведении",
|
||
"autoplayOnHoverHelp": "Воспроизводить превью видео только при наведении курсора"
|
||
},
|
||
"autoOrganizeExclusions": {
|
||
"label": "Исключения автосортировки",
|
||
"placeholder": "Пример: curated/*, */backups/*; *_temp.safetensors",
|
||
"help": "Пропускать перемещение файлов, соответствующих этим шаблонам. Разделяйте несколько шаблонов запятыми или точками с запятой.",
|
||
"validation": {
|
||
"noPatterns": "Введите хотя бы один шаблон, разделенный запятыми или точками с запятой.",
|
||
"saveFailed": "Не удалось сохранить исключения: {message}"
|
||
}
|
||
},
|
||
"metadataRefreshSkipPaths": {
|
||
"label": "Пути для пропуска обновления метаданных",
|
||
"placeholder": "Пример: temp, archived/old, test_models",
|
||
"help": "Пропускать модели в этих каталогах при массовом обновлении метаданных («Получить все метаданные»). Введите пути к папкам относительно корневого каталога моделей, разделённые запятой.",
|
||
"validation": {
|
||
"noPaths": "Введите хотя бы один путь, разделённый запятыми.",
|
||
"saveFailed": "Не удалось сохранить пути для пропуска: {message}"
|
||
}
|
||
},
|
||
"layoutSettings": {
|
||
"displayDensity": "Плотность отображения",
|
||
"displayDensityOptions": {
|
||
"default": "По умолчанию",
|
||
"medium": "Средняя",
|
||
"compact": "Компактная"
|
||
},
|
||
"displayDensityHelp": "Выберите количество карточек для отображения в ряду:",
|
||
"displayDensityDetails": {
|
||
"default": "5 (1080p), 6 (2K), 8 (4K)",
|
||
"medium": "6 (1080p), 7 (2K), 9 (4K)",
|
||
"compact": "7 (1080p), 8 (2K), 10 (4K)"
|
||
},
|
||
"displayDensityWarning": "Предупреждение: Высокая плотность может вызвать проблемы с производительностью на системах с ограниченными ресурсами.",
|
||
"showFolderSidebar": "Показывать боковую панель папок",
|
||
"showFolderSidebarHelp": "Включает или выключает боковую панель навигации по папкам на страницах моделей. При отключении панель и область наведения скрыты.",
|
||
"cardInfoDisplay": "Отображение информации карточки",
|
||
"cardInfoDisplayOptions": {
|
||
"always": "Всегда видимо",
|
||
"hover": "Показать при наведении"
|
||
},
|
||
"cardInfoDisplayHelp": "Выберите когда отображать информацию о модели и кнопки действий",
|
||
"modelCardFooterAction": "Действие кнопки карточки модели",
|
||
"modelCardFooterActionOptions": {
|
||
"exampleImages": "Открыть примеры изображений",
|
||
"replacePreview": "Заменить превью"
|
||
},
|
||
"modelCardFooterActionHelp": "Выберите, что делает кнопка в правом нижнем углу карточки",
|
||
"modelNameDisplay": "Отображение названия модели",
|
||
"modelNameDisplayOptions": {
|
||
"modelName": "Название модели",
|
||
"fileName": "Имя файла"
|
||
},
|
||
"modelNameDisplayHelp": "Выберите, что отображать в нижней части карточки модели"
|
||
},
|
||
"folderSettings": {
|
||
"activeLibrary": "Активная библиотека",
|
||
"activeLibraryHelp": "Переключайтесь между настроенными библиотеками, чтобы обновить папки по умолчанию. Изменение выбора перезагружает страницу.",
|
||
"loadingLibraries": "Загрузка библиотек...",
|
||
"noLibraries": "Библиотеки не настроены",
|
||
"defaultLoraRoot": "Корневая папка LoRA",
|
||
"defaultLoraRootHelp": "Установить корневую папку LoRA по умолчанию для загрузок, импорта и перемещений",
|
||
"defaultCheckpointRoot": "Корневая папка Checkpoint",
|
||
"defaultCheckpointRootHelp": "Установить корневую папку checkpoint по умолчанию для загрузок, импорта и перемещений",
|
||
"defaultUnetRoot": "Корневая папка Diffusion Model",
|
||
"defaultUnetRootHelp": "Установить корневую папку Diffusion Model (UNET) по умолчанию для загрузок, импорта и перемещений",
|
||
"defaultEmbeddingRoot": "Корневая папка Embedding",
|
||
"defaultEmbeddingRootHelp": "Установить корневую папку embedding по умолчанию для загрузок, импорта и перемещений",
|
||
"noDefault": "Не задано"
|
||
},
|
||
"extraFolderPaths": {
|
||
"title": "Дополнительные пути к папкам",
|
||
"help": "Добавьте дополнительные папки моделей за пределами стандартных путей ComfyUI. Эти пути хранятся отдельно и сканируются вместе с папками по умолчанию.",
|
||
"description": "Настройте дополнительные папки для сканирования моделей. Эти пути специфичны для LoRA Manager и будут объединены с путями по умолчанию ComfyUI.",
|
||
"modelTypes": {
|
||
"lora": "Пути LoRA",
|
||
"checkpoint": "Пути Checkpoint",
|
||
"unet": "Пути моделей диффузии",
|
||
"embedding": "Пути Embedding"
|
||
},
|
||
"pathPlaceholder": "/путь/к/дополнительным/моделям",
|
||
"saveSuccess": "Дополнительные пути к папкам обновлены.",
|
||
"saveError": "Не удалось обновить дополнительные пути к папкам: {message}",
|
||
"validation": {
|
||
"duplicatePath": "Этот путь уже настроен"
|
||
}
|
||
},
|
||
"priorityTags": {
|
||
"title": "Приоритетные теги",
|
||
"description": "Настройте порядок приоритетов тегов для каждого типа моделей (например, character, concept, style(toon|toon_style)).",
|
||
"placeholder": "character, concept, style(toon|toon_style)",
|
||
"helpLinkLabel": "Открыть справку по приоритетным тегам",
|
||
"modelTypes": {
|
||
"lora": "LoRA",
|
||
"checkpoint": "Чекпойнт",
|
||
"embedding": "Эмбеддинг"
|
||
},
|
||
"saveSuccess": "Приоритетные теги обновлены.",
|
||
"saveError": "Не удалось обновить приоритетные теги.",
|
||
"loadingSuggestions": "Загрузка подсказок...",
|
||
"validation": {
|
||
"missingClosingParen": "В записи {index} отсутствует закрывающая скобка.",
|
||
"missingCanonical": "Запись {index} должна содержать каноническое имя тега.",
|
||
"duplicateCanonical": "Канонический тег \"{tag}\" встречается более одного раза.",
|
||
"unknown": "Недопустимая конфигурация приоритетных тегов."
|
||
}
|
||
},
|
||
"downloadPathTemplates": {
|
||
"title": "Шаблоны путей загрузки",
|
||
"help": "Настройте структуру папок для разных типов моделей при загрузке с Civitai.",
|
||
"availablePlaceholders": "Доступные заполнители:",
|
||
"templateOptions": {
|
||
"flatStructure": "Плоская структура",
|
||
"byBaseModel": "По базовой модели",
|
||
"byAuthor": "По автору",
|
||
"byFirstTag": "По первому тегу",
|
||
"baseModelFirstTag": "Базовая модель + Первый тег",
|
||
"baseModelAuthor": "Базовая модель + Автор",
|
||
"authorFirstTag": "Автор + Первый тег",
|
||
"baseModelAuthorFirstTag": "Базовая модель + Автор + Первый тег",
|
||
"customTemplate": "Пользовательский шаблон"
|
||
},
|
||
"customTemplatePlaceholder": "Введите пользовательский шаблон (например, {base_model}/{author}/{first_tag})",
|
||
"modelTypes": {
|
||
"lora": "LoRA",
|
||
"checkpoint": "Checkpoint",
|
||
"embedding": "Embedding"
|
||
},
|
||
"baseModelPathMappings": "Сопоставления путей базовых моделей",
|
||
"baseModelPathMappingsHelp": "Настройте имена папок для конкретных базовых моделей (например, \"Flux.1 D\" → \"flux\")",
|
||
"addMapping": "Добавить сопоставление",
|
||
"selectBaseModel": "Выбрать базовую модель",
|
||
"customPathPlaceholder": "Пользовательский путь (например, flux)",
|
||
"removeMapping": "Удалить сопоставление",
|
||
"validation": {
|
||
"validFlat": "Действительный (плоская структура)",
|
||
"invalidChars": "Обнаружены недопустимые символы",
|
||
"doubleSlashes": "Двойные слеши не разрешены",
|
||
"leadingTrailingSlash": "Не может начинаться или заканчиваться слешем",
|
||
"invalidPlaceholder": "Недопустимый заполнитель: {placeholder}",
|
||
"validTemplate": "Действительный шаблон"
|
||
}
|
||
},
|
||
"exampleImages": {
|
||
"downloadLocation": "Место загрузки",
|
||
"downloadLocationPlaceholder": "Введите путь к папке для примеров изображений",
|
||
"downloadLocationHelp": "Введите путь к папке, где будут сохраняться примеры изображений с Civitai",
|
||
"autoDownload": "Автозагрузка примеров изображений",
|
||
"autoDownloadHelp": "Автоматически загружать примеры изображений для моделей, у которых их нет (требует настройки места загрузки)",
|
||
"optimizeImages": "Оптимизировать загруженные изображения",
|
||
"optimizeImagesHelp": "Оптимизировать примеры изображений для уменьшения размера файла и улучшения скорости загрузки (метаданные будут сохранены)",
|
||
"download": "Загрузить",
|
||
"restartRequired": "Требует перезапуска"
|
||
},
|
||
"updateFlagStrategy": {
|
||
"label": "Стратегия меток обновлений",
|
||
"help": "Выберите, отображать ли значки обновления только когда новая версия имеет тот же базовый модель, что и локальные файлы, или всегда при наличии любого нового релиза для этой модели.",
|
||
"options": {
|
||
"sameBase": "Совпадение обновлений по базовой модели",
|
||
"any": "Отмечать любые доступные обновления"
|
||
}
|
||
},
|
||
"hideEarlyAccessUpdates": {
|
||
"label": "Скрыть обновления раннего доступа",
|
||
"help": "Только обновления раннего доступа"
|
||
},
|
||
"misc": {
|
||
"includeTriggerWords": "Включать триггерные слова в синтаксис LoRA",
|
||
"includeTriggerWordsHelp": "Включать обученные триггерные слова при копировании синтаксиса LoRA в буфер обмена"
|
||
},
|
||
"metadataArchive": {
|
||
"enableArchiveDb": "Включить архив метаданных",
|
||
"enableArchiveDbHelp": "Использовать локальную базу данных для доступа к метаданным моделей, удалённых с Civitai.",
|
||
"status": "Статус",
|
||
"statusAvailable": "Доступно",
|
||
"statusUnavailable": "Недоступно",
|
||
"enabled": "Включено",
|
||
"management": "Управление базой данных",
|
||
"managementHelp": "Скачать или удалить базу данных архива метаданных",
|
||
"downloadButton": "Скачать базу данных",
|
||
"downloadingButton": "Скачивание...",
|
||
"downloadedButton": "Скачано",
|
||
"removeButton": "Удалить базу данных",
|
||
"removingButton": "Удаление...",
|
||
"downloadSuccess": "База данных архива метаданных успешно загружена",
|
||
"downloadError": "Не удалось загрузить базу данных архива метаданных",
|
||
"removeSuccess": "База данных архива метаданных успешно удалена",
|
||
"removeError": "Не удалось удалить базу данных архива метаданных",
|
||
"removeConfirm": "Вы уверены, что хотите удалить базу данных архива метаданных? Это удалит локальный файл базы данных, и для использования этой функции потребуется повторная загрузка.",
|
||
"preparing": "Подготовка к загрузке...",
|
||
"connecting": "Подключение к серверу загрузки...",
|
||
"completed": "Завершено",
|
||
"downloadComplete": "Загрузка успешно завершена"
|
||
},
|
||
"proxySettings": {
|
||
"enableProxy": "Включить прокси на уровне приложения",
|
||
"enableProxyHelp": "Включить пользовательские настройки прокси для этого приложения, переопределяя системные настройки прокси",
|
||
"proxyType": "Тип прокси",
|
||
"proxyTypeHelp": "Выберите тип прокси-сервера (HTTP, HTTPS, SOCKS4, SOCKS5)",
|
||
"proxyHost": "Хост прокси",
|
||
"proxyHostPlaceholder": "proxy.example.com",
|
||
"proxyHostHelp": "Имя хоста или IP-адрес вашего прокси-сервера",
|
||
"proxyPort": "Порт прокси",
|
||
"proxyPortPlaceholder": "8080",
|
||
"proxyPortHelp": "Номер порта вашего прокси-сервера",
|
||
"proxyUsername": "Имя пользователя (необязательно)",
|
||
"proxyUsernamePlaceholder": "имя пользователя",
|
||
"proxyUsernameHelp": "Имя пользователя для аутентификации на прокси (если требуется)",
|
||
"proxyPassword": "Пароль (необязательно)",
|
||
"proxyPasswordPlaceholder": "пароль",
|
||
"proxyPasswordHelp": "Пароль для аутентификации на прокси (если требуется)"
|
||
}
|
||
},
|
||
"loras": {
|
||
"controls": {
|
||
"sort": {
|
||
"title": "Сортировать модели по...",
|
||
"name": "Имени",
|
||
"nameAsc": "А - Я",
|
||
"nameDesc": "Я - А",
|
||
"date": "Дате добавления",
|
||
"dateDesc": "Новейшим",
|
||
"dateAsc": "Старейшим",
|
||
"size": "Размеру файла",
|
||
"sizeDesc": "Наибольшим",
|
||
"sizeAsc": "Наименьшим",
|
||
"usage": "Число использований",
|
||
"usageDesc": "Больше",
|
||
"usageAsc": "Меньше"
|
||
},
|
||
"refresh": {
|
||
"title": "Обновить список моделей",
|
||
"quick": "Синхронизировать изменения",
|
||
"quickTooltip": "Находит новые или отсутствующие файлы моделей, чтобы список оставался актуальным.",
|
||
"full": "Перестроить кэш",
|
||
"fullTooltip": "Перечитывает все данные моделей из файлов метаданных — используйте, если библиотека выглядит устаревшей или после ручных правок."
|
||
},
|
||
"fetch": {
|
||
"title": "Получить метаданные с Civitai",
|
||
"action": "Получить"
|
||
},
|
||
"download": {
|
||
"title": "Загрузить по URL",
|
||
"action": "Загрузить"
|
||
},
|
||
"bulk": {
|
||
"title": "Массовые операции",
|
||
"action": "Массово"
|
||
},
|
||
"duplicates": {
|
||
"title": "Найти дубликаты",
|
||
"action": "Дубликаты"
|
||
},
|
||
"favorites": {
|
||
"title": "Показать только избранное",
|
||
"action": "Избранное"
|
||
},
|
||
"updates": {
|
||
"title": "Показывать только модели с доступными обновлениями",
|
||
"action": "Обновления",
|
||
"menuLabel": "Показать параметры обновления",
|
||
"check": "Проверить обновления",
|
||
"checkTooltip": "Проверка может занять время."
|
||
}
|
||
},
|
||
"bulkOperations": {
|
||
"selected": "Выбрано {count}",
|
||
"selectedSuffix": "выбрано",
|
||
"viewSelected": "Просмотреть выбранные",
|
||
"addTags": "Добавить теги ко всем",
|
||
"setBaseModel": "Установить базовую модель для всех",
|
||
"setContentRating": "Установить рейтинг контента для всех",
|
||
"copyAll": "Копировать весь синтаксис",
|
||
"refreshAll": "Обновить все метаданные",
|
||
"checkUpdates": "Проверить обновления для выбранных",
|
||
"moveAll": "Переместить все в папку",
|
||
"autoOrganize": "Автоматически организовать выбранные",
|
||
"skipMetadataRefresh": "Пропустить обновление метаданных для выбранных",
|
||
"resumeMetadataRefresh": "Возобновить обновление метаданных для выбранных",
|
||
"deleteAll": "Удалить все модели",
|
||
"clear": "Очистить выбор",
|
||
"skipMetadataRefreshCount": "Пропустить({count} моделей)",
|
||
"resumeMetadataRefreshCount": "Возобновить({count} моделей)",
|
||
"autoOrganizeProgress": {
|
||
"initializing": "Инициализация автоматической организации...",
|
||
"starting": "Запуск автоматической организации для {type}...",
|
||
"processing": "Обработка ({processed}/{total}) — {success} перемещено, {skipped} пропущено, {failures} не удалось",
|
||
"cleaning": "Очистка пустых директорий...",
|
||
"completed": "Завершено: {success} перемещено, {skipped} пропущено, {failures} не удалось",
|
||
"complete": "Автоматическая организация завершена",
|
||
"error": "Ошибка: {error}"
|
||
}
|
||
},
|
||
"contextMenu": {
|
||
"refreshMetadata": "Обновить данные Civitai",
|
||
"checkUpdates": "Проверить обновления",
|
||
"relinkCivitai": "Пересвязать с Civitai",
|
||
"copySyntax": "Копировать синтаксис LoRA",
|
||
"copyFilename": "Копировать имя файла модели",
|
||
"copyRecipeSyntax": "Копировать синтаксис рецепта",
|
||
"sendToWorkflowAppend": "Отправить в Workflow (Добавить)",
|
||
"sendToWorkflowReplace": "Отправить в Workflow (Заменить)",
|
||
"openExamples": "Открыть папку примеров",
|
||
"downloadExamples": "Загрузить примеры изображений",
|
||
"replacePreview": "Заменить превью",
|
||
"setContentRating": "Установить рейтинг контента",
|
||
"moveToFolder": "Переместить в папку",
|
||
"repairMetadata": "Восстановить метаданные",
|
||
"excludeModel": "Исключить модель",
|
||
"deleteModel": "Удалить модель",
|
||
"shareRecipe": "Поделиться рецептом",
|
||
"viewAllLoras": "Посмотреть все LoRAs",
|
||
"downloadMissingLoras": "Загрузить отсутствующие LoRAs",
|
||
"deleteRecipe": "Удалить рецепт"
|
||
}
|
||
},
|
||
"recipes": {
|
||
"title": "Рецепты LoRA",
|
||
"actions": {
|
||
"sendCheckpoint": "Отправить в ComfyUI"
|
||
},
|
||
"controls": {
|
||
"import": {
|
||
"action": "Импортировать",
|
||
"title": "Импортировать рецепт из изображения или URL",
|
||
"urlLocalPath": "URL / Локальный путь",
|
||
"uploadImage": "Загрузить изображение",
|
||
"urlSectionDescription": "Введите URL изображения Civitai или локальный путь к файлу для импорта в качестве рецепта.",
|
||
"imageUrlOrPath": "URL изображения или путь к файлу:",
|
||
"urlPlaceholder": "https://civitai.com/images/... или C:/path/to/image.png",
|
||
"fetchImage": "Получить изображение",
|
||
"uploadSectionDescription": "Загрузите изображение с метаданными LoRA для импорта в качестве рецепта.",
|
||
"selectImage": "Выбрать изображение",
|
||
"recipeName": "Название рецепта",
|
||
"recipeNamePlaceholder": "Введите название рецепта",
|
||
"tagsOptional": "Теги (необязательно)",
|
||
"addTagPlaceholder": "Добавить тег",
|
||
"addTag": "Добавить",
|
||
"noTagsAdded": "Теги не добавлены",
|
||
"lorasInRecipe": "LoRAs в этом рецепте",
|
||
"downloadLocationPreview": "Предпросмотр места загрузки:",
|
||
"useDefaultPath": "Использовать путь по умолчанию",
|
||
"useDefaultPathTooltip": "При включении файлы автоматически организуются с использованием настроенных шаблонов путей",
|
||
"selectLoraRoot": "Выберите корневую папку LoRA",
|
||
"targetFolderPath": "Путь к целевой папке:",
|
||
"folderPathPlaceholder": "Введите путь к папке или выберите из дерева ниже...",
|
||
"createNewFolder": "Создать новую папку",
|
||
"root": "Корень",
|
||
"browseFolders": "Обзор папок:",
|
||
"downloadAndSaveRecipe": "Скачать и сохранить рецепт",
|
||
"downloadMissingLoras": "Скачать отсутствующие LoRAs",
|
||
"saveRecipe": "Сохранить рецепт",
|
||
"loraCountInfo": "({existing}/{total} в библиотеке)",
|
||
"processingInput": "Обработка ввода...",
|
||
"analyzingMetadata": "Анализ метаданных изображения...",
|
||
"downloadingLoras": "Загрузка LoRAs...",
|
||
"savingRecipe": "Сохранение рецепта...",
|
||
"startingDownload": "Начало загрузки LoRA {current}/{total}",
|
||
"deletedFromCivitai": "Удалено с Civitai",
|
||
"inLibrary": "В библиотеке",
|
||
"notInLibrary": "Не в библиотеке",
|
||
"earlyAccessRequired": "Для загрузки этой LoRA требуется платный ранний доступ.",
|
||
"earlyAccessEnds": "Ранний доступ заканчивается {date}.",
|
||
"earlyAccess": "Ранний доступ",
|
||
"verifyEarlyAccess": "Убедитесь, что вы приобрели ранний доступ перед загрузкой.",
|
||
"duplicateRecipesFound": "Найдено {count} идентичных рецептов в вашей библиотеке",
|
||
"duplicateRecipesDescription": "Эти рецепты содержат одинаковые LoRAs с идентичными весами.",
|
||
"showDuplicates": "Показать дубликаты",
|
||
"hideDuplicates": "Скрыть дубликаты",
|
||
"loraCount": "{count} LoRAs",
|
||
"recipePreviewAlt": "Предпросмотр рецепта",
|
||
"loraPreviewAlt": "Предпросмотр LoRA",
|
||
"errors": {
|
||
"selectImageFile": "Пожалуйста, выберите файл изображения",
|
||
"enterUrlOrPath": "Пожалуйста, введите URL или путь к файлу",
|
||
"selectLoraRoot": "Пожалуйста, выберите корневую папку LoRA"
|
||
}
|
||
},
|
||
"sort": {
|
||
"title": "Сортировка рецептов...",
|
||
"name": "Имя",
|
||
"nameAsc": "А - Я",
|
||
"nameDesc": "Я - А",
|
||
"date": "Дата",
|
||
"dateDesc": "Сначала новые",
|
||
"dateAsc": "Сначала старые",
|
||
"lorasCount": "Кол-во LoRA",
|
||
"lorasCountDesc": "Больше всего",
|
||
"lorasCountAsc": "Меньше всего"
|
||
},
|
||
"refresh": {
|
||
"title": "Обновить список рецептов",
|
||
"quick": "Синхронизировать изменения",
|
||
"quickTooltip": "Синхронизировать изменения - быстрое обновление без перестроения кэша",
|
||
"full": "Перестроить кэш",
|
||
"fullTooltip": "Перестроить кэш - полное повторное сканирование всех файлов рецептов"
|
||
},
|
||
"filteredByLora": "Фильтр по LoRA",
|
||
"favorites": {
|
||
"title": "Только избранные",
|
||
"action": "Избранное"
|
||
}
|
||
},
|
||
"duplicates": {
|
||
"found": "Найдено {count} групп дубликатов",
|
||
"keepLatest": "Оставить последние версии",
|
||
"deleteSelected": "Удалить выбранные"
|
||
},
|
||
"contextMenu": {
|
||
"copyRecipe": {
|
||
"missingId": "Невозможно скопировать рецепт: отсутствует ID рецепта",
|
||
"failed": "Не удалось скопировать синтаксис рецепта"
|
||
},
|
||
"sendRecipe": {
|
||
"missingId": "Невозможно отправить рецепт: отсутствует ID рецепта",
|
||
"failed": "Не удалось отправить рецепт в workflow"
|
||
},
|
||
"viewLoras": {
|
||
"missingId": "Невозможно просмотреть LoRAs: отсутствует ID рецепта",
|
||
"noLorasFound": "В этом рецепте не найдено LoRAs",
|
||
"loadError": "Ошибка загрузки LoRAs рецепта: {message}"
|
||
},
|
||
"downloadMissing": {
|
||
"missingId": "Невозможно загрузить LoRAs: отсутствует ID рецепта",
|
||
"noMissingLoras": "Нет отсутствующих LoRAs для загрузки",
|
||
"getInfoFailed": "Не удалось получить информацию для отсутствующих LoRAs",
|
||
"prepareError": "Ошибка подготовки LoRAs для загрузки: {message}"
|
||
},
|
||
"repair": {
|
||
"starting": "Восстановление метаданных рецепта...",
|
||
"success": "Метаданные рецепта успешно восстановлены",
|
||
"skipped": "Рецепт уже последней версии, восстановление не требуется",
|
||
"failed": "Не удалось восстановить рецепт: {message}",
|
||
"missingId": "Не удалось восстановить рецепт: отсутствует ID рецепта"
|
||
}
|
||
},
|
||
"batchImport": {
|
||
"title": "[TODO: Translate] Batch Import Recipes",
|
||
"action": "[TODO: Translate] Batch Import",
|
||
"urlList": "[TODO: Translate] URL List",
|
||
"directory": "[TODO: Translate] Directory",
|
||
"urlDescription": "[TODO: Translate] Enter image URLs or local file paths (one per line). Each will be imported as a recipe.",
|
||
"directoryDescription": "[TODO: Translate] Enter a directory path to import all images from that folder.",
|
||
"urlsLabel": "[TODO: Translate] Image URLs or Local Paths",
|
||
"urlsPlaceholder": "[TODO: Translate] https://civitai.com/images/...\nhttps://civitai.com/images/...\nC:/path/to/image.png\n...",
|
||
"urlsHint": "[TODO: Translate] Enter one URL or path per line",
|
||
"directoryPath": "[TODO: Translate] Directory Path",
|
||
"directoryPlaceholder": "[TODO: Translate] /path/to/images/folder",
|
||
"browse": "[TODO: Translate] Browse",
|
||
"recursive": "[TODO: Translate] Include subdirectories",
|
||
"tagsOptional": "[TODO: Translate] Tags (optional, applied to all recipes)",
|
||
"tagsPlaceholder": "[TODO: Translate] Enter tags separated by commas",
|
||
"tagsHint": "[TODO: Translate] Tags will be added to all imported recipes",
|
||
"skipNoMetadata": "[TODO: Translate] Skip images without metadata",
|
||
"skipNoMetadataHelp": "[TODO: Translate] Images without LoRA metadata will be skipped automatically.",
|
||
"start": "[TODO: Translate] Start Import",
|
||
"startImport": "[TODO: Translate] Start Import",
|
||
"importing": "[TODO: Translate] Importing...",
|
||
"progress": "[TODO: Translate] Progress",
|
||
"total": "[TODO: Translate] Total",
|
||
"success": "[TODO: Translate] Success",
|
||
"failed": "[TODO: Translate] Failed",
|
||
"skipped": "[TODO: Translate] Skipped",
|
||
"current": "[TODO: Translate] Current",
|
||
"currentItem": "[TODO: Translate] Current",
|
||
"preparing": "[TODO: Translate] Preparing...",
|
||
"cancel": "[TODO: Translate] Cancel",
|
||
"cancelImport": "[TODO: Translate] Cancel",
|
||
"cancelled": "[TODO: Translate] Import cancelled",
|
||
"completed": "[TODO: Translate] Import completed",
|
||
"completedWithErrors": "[TODO: Translate] Completed with errors",
|
||
"completedSuccess": "[TODO: Translate] Successfully imported {count} recipe(s)",
|
||
"successCount": "[TODO: Translate] Successful",
|
||
"failedCount": "[TODO: Translate] Failed",
|
||
"skippedCount": "[TODO: Translate] Skipped",
|
||
"totalProcessed": "[TODO: Translate] Total processed",
|
||
"viewDetails": "[TODO: Translate] View Details",
|
||
"newImport": "[TODO: Translate] New Import",
|
||
"manualPathEntry": "[TODO: Translate] Please enter the directory path manually. File browser is not available in this browser.",
|
||
"batchImportDirectorySelected": "[TODO: Translate] Directory selected: {name}. You may need to enter the full path manually.",
|
||
"batchImportManualEntryRequired": "[TODO: Translate] File browser not available. Please enter the directory path manually.",
|
||
"backToParent": "[TODO: Translate] Back to parent directory",
|
||
"folders": "[TODO: Translate] Folders",
|
||
"folderCount": "[TODO: Translate] {count} folders",
|
||
"imageFiles": "[TODO: Translate] Image Files",
|
||
"images": "[TODO: Translate] images",
|
||
"imageCount": "[TODO: Translate] {count} images",
|
||
"selectFolder": "[TODO: Translate] Select This Folder",
|
||
"errors": {
|
||
"enterUrls": "[TODO: Translate] Please enter at least one URL or path",
|
||
"enterDirectory": "[TODO: Translate] Please enter a directory path",
|
||
"startFailed": "[TODO: Translate] Failed to start import: {message}"
|
||
}
|
||
}
|
||
},
|
||
"checkpoints": {
|
||
"title": "Модели Checkpoint",
|
||
"modelTypes": {
|
||
"checkpoint": "Checkpoint",
|
||
"diffusion_model": "Diffusion Model"
|
||
},
|
||
"contextMenu": {
|
||
"moveToOtherTypeFolder": "Переместить в папку {otherType}"
|
||
}
|
||
},
|
||
"embeddings": {
|
||
"title": "Модели Embedding"
|
||
},
|
||
"sidebar": {
|
||
"modelRoot": "Корень",
|
||
"collapseAll": "Свернуть все папки",
|
||
"pinSidebar": "Закрепить боковую панель",
|
||
"unpinSidebar": "Открепить боковую панель",
|
||
"switchToListView": "Переключить на вид списка",
|
||
"switchToTreeView": "Переключить на древовидный вид",
|
||
"recursiveOn": "Искать во вложенных папках",
|
||
"recursiveOff": "Искать только в текущей папке",
|
||
"recursiveUnavailable": "Рекурсивный поиск доступен только в режиме дерева",
|
||
"collapseAllDisabled": "Недоступно в виде списка",
|
||
"dragDrop": {
|
||
"unableToResolveRoot": "Не удалось определить путь назначения для перемещения.",
|
||
"moveUnsupported": "Перемещение этого элемента не поддерживается.",
|
||
"createFolderHint": "Отпустите, чтобы создать новую папку",
|
||
"newFolderName": "Имя новой папки",
|
||
"folderNameHint": "Нажмите Enter для подтверждения, Escape для отмены",
|
||
"emptyFolderName": "Пожалуйста, введите имя папки",
|
||
"invalidFolderName": "Имя папки содержит недопустимые символы",
|
||
"noDragState": "Ожидающая операция перетаскивания не найдена"
|
||
},
|
||
"empty": {
|
||
"noFolders": "Папки не найдены",
|
||
"dragHint": "Перетащите элементы сюда, чтобы создать папки"
|
||
}
|
||
},
|
||
"statistics": {
|
||
"title": "Статистика",
|
||
"tabs": {
|
||
"overview": "Обзор",
|
||
"usage": "Анализ использования",
|
||
"collection": "Коллекция",
|
||
"storage": "Хранение",
|
||
"insights": "Аналитика"
|
||
},
|
||
"usage": {
|
||
"mostUsedLoras": "Наиболее используемые LoRAs",
|
||
"mostUsedCheckpoints": "Наиболее используемые Checkpoints",
|
||
"mostUsedEmbeddings": "Наиболее используемые Embeddings"
|
||
},
|
||
"collection": {
|
||
"popularTags": "Популярные теги",
|
||
"modelTypes": "Типы моделей",
|
||
"collectionAnalysis": "Анализ коллекции"
|
||
},
|
||
"storage": {
|
||
"storageUsage": "Использование хранилища",
|
||
"largestModels": "Самые большие модели",
|
||
"storageEfficiency": "Эффективность хранения против использования"
|
||
},
|
||
"insights": {
|
||
"smartInsights": "Умная аналитика",
|
||
"recommendations": "Рекомендации"
|
||
},
|
||
"charts": {
|
||
"collectionOverview": "Обзор коллекции",
|
||
"baseModelDistribution": "Распределение базовых моделей",
|
||
"usageTrends": "Тенденции использования (за последние 30 дней)",
|
||
"usageDistribution": "Распределение использования"
|
||
}
|
||
},
|
||
"modals": {
|
||
"exclude": {
|
||
"confirm": "Исключить"
|
||
},
|
||
"download": {
|
||
"title": "Скачать модель по URL",
|
||
"titleWithType": "Скачать {type} по URL",
|
||
"url": "Civitai URL",
|
||
"civitaiUrl": "Civitai URL:",
|
||
"placeholder": "https://civitai.com/models/...",
|
||
"locationPreview": "Предпросмотр места загрузки",
|
||
"useDefaultPath": "Использовать путь по умолчанию",
|
||
"useDefaultPathTooltip": "При включении файлы автоматически организуются с использованием настроенных шаблонов путей",
|
||
"selectRootDirectory": "Выберите корневую папку",
|
||
"selectModelRoot": "Выберите корень моделей:",
|
||
"selectTypeRoot": "Выберите корень {type}:",
|
||
"targetFolderPath": "Путь к целевой папке:",
|
||
"browseFolders": "Обзор папок:",
|
||
"createNewFolder": "Создать новую папку",
|
||
"pathPlaceholder": "Введите путь к папке или выберите из дерева ниже...",
|
||
"root": "Корень",
|
||
"download": "Скачать",
|
||
"fetchingVersions": "Получение версий модели...",
|
||
"versionPreview": "Предпросмотр версии",
|
||
"earlyAccess": "Ранний доступ",
|
||
"earlyAccessTooltip": "Требуется ранний доступ",
|
||
"inLibrary": "В библиотеке",
|
||
"alreadyInLibrary": "Уже в библиотеке",
|
||
"autoOrganizedPath": "[Автоматически организовано по шаблону пути]",
|
||
"errors": {
|
||
"invalidUrl": "Неверный формат URL Civitai",
|
||
"noVersions": "Нет доступных версий для этой модели"
|
||
},
|
||
"status": {
|
||
"preparing": "Подготовка загрузки...",
|
||
"downloadedPreview": "Превью изображение загружено",
|
||
"downloadingFile": "Загрузка файла {type}",
|
||
"finalizing": "Завершение загрузки..."
|
||
},
|
||
"progress": {
|
||
"currentFile": "Текущий файл:",
|
||
"downloading": "Скачивается: {name}",
|
||
"transferred": "Скачано: {downloaded} / {total}",
|
||
"transferredSimple": "Скачано: {downloaded}",
|
||
"transferredUnknown": "Скачано: --",
|
||
"speed": "Скорость: {speed}"
|
||
}
|
||
},
|
||
"move": {
|
||
"title": "Переместить модели"
|
||
},
|
||
"contentRating": {
|
||
"title": "Установить рейтинг контента",
|
||
"current": "Текущий",
|
||
"multiple": "Несколько значений",
|
||
"levels": {
|
||
"pg": "PG",
|
||
"pg13": "PG13",
|
||
"r": "R",
|
||
"x": "X",
|
||
"xxx": "XXX"
|
||
}
|
||
},
|
||
"deleteModel": {
|
||
"title": "Удалить модель",
|
||
"message": "Вы уверены, что хотите удалить эту модель и все связанные файлы?"
|
||
},
|
||
"excludeModel": {
|
||
"title": "Исключить модель",
|
||
"message": "Вы уверены, что хотите исключить эту модель? Исключенные модели не будут отображаться в поиске или списках моделей."
|
||
},
|
||
"deleteDuplicateRecipes": {
|
||
"title": "Удалить дублирующиеся рецепты",
|
||
"message": "Вы уверены, что хотите удалить выбранные дублирующиеся рецепты?",
|
||
"countMessage": "рецептов будут удалены навсегда."
|
||
},
|
||
"deleteDuplicateModels": {
|
||
"title": "Удалить дублирующиеся модели",
|
||
"message": "Вы уверены, что хотите удалить выбранные дублирующиеся модели?",
|
||
"countMessage": "моделей будут удалены навсегда."
|
||
},
|
||
"clearCache": {
|
||
"title": "Очистить файлы кэша",
|
||
"message": "Вы уверены, что хотите очистить все файлы кэша?",
|
||
"description": "Это удалит все кэшированные данные моделей. Системе потребуется пересобрать кэш при следующем запуске, что может занять некоторое время в зависимости от размера вашей коллекции моделей.",
|
||
"action": "Очистить кэш"
|
||
},
|
||
"bulkDelete": {
|
||
"title": "Удалить несколько моделей",
|
||
"message": "Вы уверены, что хотите удалить все выбранные модели и связанные с ними файлы?",
|
||
"countMessage": "моделей будут удалены навсегда.",
|
||
"action": "Удалить все"
|
||
},
|
||
"checkUpdates": {
|
||
"title": "Проверить обновления для всех {typePlural}?",
|
||
"message": "Будут проверены обновления для всех {typePlural} в вашей библиотеке. Для больших коллекций это может занять немного больше времени.",
|
||
"tip": "Хотите проверять по частям? Переключитесь в массовый режим, выберите нужные модели и используйте \"Проверить обновления для выбранных\".",
|
||
"action": "Проверить всё"
|
||
},
|
||
"bulkAddTags": {
|
||
"title": "Добавить теги к нескольким моделям",
|
||
"description": "Добавить теги к",
|
||
"models": "моделям",
|
||
"tagsToAdd": "Теги для добавления",
|
||
"placeholder": "Введите тег и нажмите Enter...",
|
||
"appendTags": "Добавить теги",
|
||
"replaceTags": "Заменить теги",
|
||
"saveChanges": "Сохранить изменения"
|
||
},
|
||
"bulkBaseModel": {
|
||
"title": "Установить базовую модель для нескольких моделей",
|
||
"description": "Установить базовую модель для",
|
||
"models": "моделей",
|
||
"selectBaseModel": "Выбрать базовую модель",
|
||
"save": "Обновить базовую модель",
|
||
"cancel": "Отмена"
|
||
},
|
||
"exampleAccess": {
|
||
"title": "Локальные примеры изображений",
|
||
"message": "Локальные примеры изображений для этой модели не найдены. Варианты просмотра:",
|
||
"downloadOption": {
|
||
"title": "Скачать с Civitai",
|
||
"description": "Сохранить удаленные примеры локально для использования офлайн и более быстрой загрузки"
|
||
},
|
||
"importOption": {
|
||
"title": "Импортировать свои",
|
||
"description": "Добавить собственные примеры для этой модели"
|
||
},
|
||
"footerNote": "Удаленные примеры все еще можно просматривать в деталях модели даже без локальных копий"
|
||
},
|
||
"moveModel": {
|
||
"targetLocationPreview": "Предпросмотр целевого расположения:",
|
||
"selectModelRoot": "Выберите корень моделей:",
|
||
"targetFolderPath": "Путь к целевой папке:",
|
||
"browseFolders": "Обзор папок:",
|
||
"createNewFolder": "Создать новую папку",
|
||
"pathPlaceholder": "Введите путь к папке или выберите из дерева ниже...",
|
||
"root": "Корень"
|
||
},
|
||
"relinkCivitai": {
|
||
"title": "Пересвязать с Civitai",
|
||
"warning": "Предупреждение:",
|
||
"warningText": "Это потенциально разрушительная операция. Пересвязывание:",
|
||
"warningList": {
|
||
"overrideMetadata": "Перезапишет существующие метаданные",
|
||
"modifyHash": "Потенциально изменит хеш модели",
|
||
"unintendedConsequences": "Может иметь другие непредвиденные последствия"
|
||
},
|
||
"proceedText": "Продолжайте только если вы уверены, что это то, что вам нужно.",
|
||
"urlLabel": "URL модели Civitai:",
|
||
"urlPlaceholder": "https://civitai.com/models/649516/model-name?modelVersionId=726676",
|
||
"helpText": {
|
||
"title": "Вставьте любой URL модели Civitai. Поддерживаемые форматы:",
|
||
"format1": "https://civitai.com/models/649516",
|
||
"format2": "https://civitai.com/models/649516?modelVersionId=726676",
|
||
"format3": "https://civitai.com/models/649516/model-name?modelVersionId=726676",
|
||
"note": "Примечание: Если modelVersionId не указан, будет использована последняя версия."
|
||
},
|
||
"confirmAction": "Подтвердить пересвязывание"
|
||
},
|
||
"model": {
|
||
"actions": {
|
||
"editModelName": "Редактировать название модели",
|
||
"editFileName": "Редактировать имя файла",
|
||
"editBaseModel": "Редактировать базовую модель",
|
||
"viewOnCivitai": "Посмотреть на Civitai",
|
||
"viewOnCivitaiText": "Посмотреть на Civitai",
|
||
"viewCreatorProfile": "Посмотреть профиль создателя",
|
||
"openFileLocation": "Открыть расположение файла"
|
||
},
|
||
"openFileLocation": {
|
||
"success": "Расположение файла успешно открыто",
|
||
"failed": "Не удалось открыть расположение файла",
|
||
"copied": "Путь скопирован в буфер обмена: {{path}}",
|
||
"clipboardFallback": "Путь: {{path}}"
|
||
},
|
||
"metadata": {
|
||
"version": "Версия",
|
||
"fileName": "Имя файла",
|
||
"location": "Расположение",
|
||
"baseModel": "Базовая модель",
|
||
"size": "Размер",
|
||
"unknown": "Неизвестно",
|
||
"usageTips": "Советы по использованию",
|
||
"additionalNotes": "Дополнительные заметки",
|
||
"notesHint": "Нажмите Enter для сохранения, Shift+Enter для новой строки",
|
||
"addNotesPlaceholder": "Добавьте ваши заметки здесь...",
|
||
"aboutThisVersion": "Об этой версии"
|
||
},
|
||
"notes": {
|
||
"saved": "Заметки успешно сохранены",
|
||
"saveFailed": "Не удалось сохранить заметки"
|
||
},
|
||
"usageTips": {
|
||
"addPresetParameter": "Добавить предустановленный параметр...",
|
||
"strengthMin": "Мин. сила",
|
||
"strengthMax": "Макс. сила",
|
||
"strengthRange": "Диапазон силы",
|
||
"strength": "Сила",
|
||
"clipStrength": "Сила клипа",
|
||
"clipSkip": "Clip Skip",
|
||
"valuePlaceholder": "Значение",
|
||
"add": "Добавить",
|
||
"invalidRange": "Неверный формат диапазона. Используйте x.x-y.y"
|
||
},
|
||
"triggerWords": {
|
||
"label": "Триггерные слова",
|
||
"noTriggerWordsNeeded": "Триггерные слова не нужны",
|
||
"edit": "Редактировать триггерные слова",
|
||
"cancel": "Отменить редактирование",
|
||
"save": "Сохранить изменения",
|
||
"addPlaceholder": "Введите для добавления или нажмите на предложения ниже",
|
||
"copyWord": "Копировать триггерное слово",
|
||
"deleteWord": "Удалить триггерное слово",
|
||
"suggestions": {
|
||
"noSuggestions": "Предложения недоступны",
|
||
"noTrainedWords": "В этой модели не найдено обученных слов или токенов классов. Вы можете вручную ввести триггерные слова.",
|
||
"classToken": "Токен класса",
|
||
"classTokenDescription": "Добавьте в ваш промпт для лучших результатов",
|
||
"wordSuggestions": "Предложения слов",
|
||
"wordsFound": "найдено {count} слов",
|
||
"loading": "Загрузка предложений..."
|
||
}
|
||
},
|
||
"description": {
|
||
"noDescription": "Описание модели недоступно",
|
||
"failedToLoad": "Не удалось загрузить описание модели",
|
||
"editTitle": "Редактировать описание модели",
|
||
"validation": {
|
||
"cannotBeEmpty": "Описание не может быть пустым"
|
||
},
|
||
"messages": {
|
||
"updated": "Описание модели обновлено",
|
||
"updateFailed": "Не удалось обновить описание модели"
|
||
}
|
||
},
|
||
"tabs": {
|
||
"examples": "Примеры",
|
||
"description": "Описание модели",
|
||
"recipes": "Рецепты",
|
||
"versions": "Версии"
|
||
},
|
||
"navigation": {
|
||
"label": "Навигация по моделям",
|
||
"previousWithShortcut": "Предыдущая модель (←)",
|
||
"nextWithShortcut": "Следующая модель (→)",
|
||
"noPrevious": "Предыдущая модель отсутствует",
|
||
"noNext": "Следующая модель отсутствует"
|
||
},
|
||
"license": {
|
||
"noImageSell": "No selling generated content",
|
||
"noRentCivit": "No Civitai generation",
|
||
"noRent": "No generation services",
|
||
"noSell": "No selling models",
|
||
"creditRequired": "Требуется указание авторства",
|
||
"noDerivatives": "Запрет на совместное использование производных работ",
|
||
"noReLicense": "Требуются те же права",
|
||
"restrictionsLabel": "Лицензионные ограничения"
|
||
},
|
||
"loading": {
|
||
"exampleImages": "Загрузка примеров изображений...",
|
||
"description": "Загрузка описания модели...",
|
||
"recipes": "Загрузка рецептов...",
|
||
"examples": "Загрузка примеров...",
|
||
"versions": "Загрузка версий..."
|
||
},
|
||
"versions": {
|
||
"heading": "Версии модели",
|
||
"copy": "Управляйте всеми версиями этой модели в одном месте.",
|
||
"media": {
|
||
"placeholder": "Нет превью"
|
||
},
|
||
"labels": {
|
||
"unnamed": "Версия без названия",
|
||
"noDetails": "Дополнительная информация отсутствует",
|
||
"earlyAccess": "EA"
|
||
},
|
||
"eaTime": {
|
||
"endingSoon": "скоро заканчивается",
|
||
"hours": "через {count}ч",
|
||
"days": "через {count}д"
|
||
},
|
||
"badges": {
|
||
"current": "Текущая версия",
|
||
"inLibrary": "В библиотеке",
|
||
"newer": "Более новая версия",
|
||
"earlyAccess": "Ранний доступ",
|
||
"ignored": "Игнорируется"
|
||
},
|
||
"actions": {
|
||
"download": "Скачать",
|
||
"delete": "Удалить",
|
||
"ignore": "Игнорировать",
|
||
"unignore": "Перестать игнорировать",
|
||
"earlyAccessTooltip": "Требуется покупка раннего доступа",
|
||
"resumeModelUpdates": "Возобновить обновления для этой модели",
|
||
"ignoreModelUpdates": "Игнорировать обновления для этой модели",
|
||
"viewLocalVersions": "Показать все локальные версии",
|
||
"viewLocalTooltip": "Скоро появится"
|
||
},
|
||
"filters": {
|
||
"label": "Фильтр по базе",
|
||
"state": {
|
||
"showAll": "Все версии",
|
||
"showSameBase": "Тот же базовый"
|
||
},
|
||
"tooltip": {
|
||
"showAllVersions": "Переключиться на отображение всех версий",
|
||
"showSameBaseVersions": "Переключиться на отображение только версий с тем же базовым"
|
||
},
|
||
"empty": "Нет версий, соответствующих текущему фильтру базовой модели."
|
||
},
|
||
"empty": "Для этой модели пока нет истории версий.",
|
||
"error": "Не удалось загрузить версии.",
|
||
"missingModelId": "У этой модели отсутствует идентификатор модели Civitai.",
|
||
"confirm": {
|
||
"delete": "Удалить эту версию из библиотеки?"
|
||
},
|
||
"toast": {
|
||
"modelIgnored": "Обновления для этой модели игнорируются",
|
||
"modelResumed": "Отслеживание обновлений возобновлено",
|
||
"versionIgnored": "Обновления для этой версии игнорируются",
|
||
"versionUnignored": "Версия снова активна",
|
||
"versionDeleted": "Версия удалена"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"modelTags": {
|
||
"messages": {
|
||
"updated": "Теги успешно обновлены",
|
||
"updateFailed": "Не удалось обновить теги"
|
||
},
|
||
"validation": {
|
||
"maxLength": "Тег не должен превышать 30 символов",
|
||
"maxCount": "Максимум 30 тегов разрешено",
|
||
"duplicate": "Этот тег уже существует"
|
||
}
|
||
},
|
||
"keyboard": {
|
||
"navigation": "Навигация с клавиатуры:",
|
||
"shortcuts": {
|
||
"pageUp": "Прокрутить на страницу вверх",
|
||
"pageDown": "Прокрутить на страницу вниз",
|
||
"home": "Перейти к началу",
|
||
"end": "Перейти к концу"
|
||
}
|
||
},
|
||
"initialization": {
|
||
"title": "Инициализация",
|
||
"message": "Подготовка вашего рабочего пространства...",
|
||
"status": "Инициализация...",
|
||
"estimatingTime": "Расчет времени...",
|
||
"loras": {
|
||
"title": "Инициализация LoRA Manager",
|
||
"message": "Сканирование и построение кэша LoRA. Это может занять несколько минут..."
|
||
},
|
||
"checkpoints": {
|
||
"title": "Инициализация Checkpoint Manager",
|
||
"message": "Сканирование и построение кэша checkpoint. Это может занять несколько минут..."
|
||
},
|
||
"embeddings": {
|
||
"title": "Инициализация Embedding Manager",
|
||
"message": "Сканирование и построение кэша embedding. Это может занять несколько минут..."
|
||
},
|
||
"recipes": {
|
||
"title": "Инициализация Recipe Manager",
|
||
"message": "Загрузка и обработка рецептов. Это может занять несколько минут..."
|
||
},
|
||
"statistics": {
|
||
"title": "Инициализация статистики",
|
||
"message": "Обработка данных моделей для статистики. Это может занять несколько минут..."
|
||
},
|
||
"tips": {
|
||
"title": "Советы и хитрости",
|
||
"civitai": {
|
||
"title": "Интеграция с Civitai",
|
||
"description": "Подключите ваш аккаунт Civitai: Перейдите в Аватар профиля → Настройки → API ключи → Добавить API ключ, затем вставьте его в настройки Lora Manager.",
|
||
"alt": "Настройка API Civitai"
|
||
},
|
||
"download": {
|
||
"title": "Легкая загрузка",
|
||
"description": "Используйте URL Civitai для быстрой загрузки и установки новых моделей.",
|
||
"alt": "Загрузка с Civitai"
|
||
},
|
||
"recipes": {
|
||
"title": "Сохранение рецептов",
|
||
"description": "Создавайте рецепты для сохранения ваших любимых комбинаций моделей для будущего использования.",
|
||
"alt": "Рецепты"
|
||
},
|
||
"filter": {
|
||
"title": "Быстрая фильтрация",
|
||
"description": "Фильтруйте модели по тегам или типу базовой модели, используя кнопку фильтра в заголовке.",
|
||
"alt": "Фильтрация моделей"
|
||
},
|
||
"search": {
|
||
"title": "Быстрый поиск",
|
||
"description": "Нажмите Ctrl+F (Cmd+F на Mac) для быстрого поиска в текущем представлении.",
|
||
"alt": "Быстрый поиск"
|
||
}
|
||
}
|
||
},
|
||
"duplicates": {
|
||
"found": "Найдено {count} групп дубликатов",
|
||
"showNotification": "Показать уведомление о дубликатах",
|
||
"deleteSelected": "Удалить выбранные",
|
||
"exitMode": "Выйти из режима",
|
||
"help": {
|
||
"identicalHashes": "Идентичные хеши означают идентичные файлы моделей, даже если у них разные названия или превью.",
|
||
"keepOne": "Оставьте только одну версию (предпочтительно с лучшими метаданными/превью) и безопасно удалите остальные."
|
||
}
|
||
},
|
||
"uiHelpers": {
|
||
"clipboard": {
|
||
"copied": "Скопировано в буфер обмена",
|
||
"copyFailed": "Копирование не удалось"
|
||
},
|
||
"lora": {
|
||
"syntaxCopied": "Синтаксис LoRA скопирован в буфер обмена",
|
||
"syntaxCopiedNoTriggerWords": "Синтаксис LoRA скопирован в буфер обмена (триггерные слова не найдены)",
|
||
"syntaxCopiedWithTriggerWords": "Синтаксис LoRA с триггерными словами скопирован в буфер обмена",
|
||
"syntaxCopiedWithTriggerWordGroups": "Синтаксис LoRA с группами триггерных слов скопирован в буфер обмена"
|
||
},
|
||
"workflow": {
|
||
"noSupportedNodes": "В workflow не найдены поддерживаемые целевые узлы",
|
||
"communicationFailed": "Не удалось установить связь с ComfyUI",
|
||
"loraAdded": "LoRA добавлена в workflow",
|
||
"loraReplaced": "LoRA заменена в workflow",
|
||
"loraFailedToSend": "Не удалось отправить LoRA в workflow",
|
||
"recipeAdded": "Рецепт добавлен в workflow",
|
||
"recipeReplaced": "Рецепт заменён в workflow",
|
||
"recipeFailedToSend": "Не удалось отправить рецепт в workflow",
|
||
"noMatchingNodes": "В текущем workflow нет совместимых узлов",
|
||
"noTargetNodeSelected": "Целевой узел не выбран"
|
||
},
|
||
"nodeSelector": {
|
||
"recipe": "Рецепт",
|
||
"lora": "LoRA",
|
||
"replace": "Заменить",
|
||
"append": "Добавить",
|
||
"selectTargetNode": "Выберите целевой узел",
|
||
"sendToAll": "Отправить во все"
|
||
},
|
||
"exampleImages": {
|
||
"opened": "Папка с примерами изображений открыта",
|
||
"openingFolder": "Открытие папки с примерами изображений",
|
||
"failedToOpen": "Не удалось открыть папку с примерами изображений",
|
||
"setupRequired": "Хранилище примеров изображений",
|
||
"setupDescription": "Чтобы добавить собственные примеры изображений, сначала нужно установить место загрузки.",
|
||
"setupUsage": "Этот путь используется как для загруженных, так и для пользовательских примеров изображений.",
|
||
"openSettings": "Открыть настройки"
|
||
}
|
||
},
|
||
"help": {
|
||
"title": "Справка и учебные материалы",
|
||
"tabs": {
|
||
"gettingStarted": "Начало работы",
|
||
"updateVlogs": "Видео обновлений",
|
||
"documentation": "Документация"
|
||
},
|
||
"gettingStarted": {
|
||
"title": "Начало работы с LoRA Manager"
|
||
},
|
||
"updateVlogs": {
|
||
"title": "Последние обновления",
|
||
"watchOnYouTube": "Смотреть на YouTube",
|
||
"playlistTitle": "Плейлист обновлений LoRA Manager",
|
||
"playlistDescription": "Смотрите все видео обновлений, демонстрирующие новейшие функции и улучшения."
|
||
},
|
||
"documentation": {
|
||
"title": "Документация",
|
||
"general": "Общие",
|
||
"troubleshooting": "Устранение неполадок",
|
||
"modelManagement": "Управление моделями",
|
||
"recipes": "Рецепты",
|
||
"settings": "Настройки и конфигурация",
|
||
"extensions": "Расширения",
|
||
"newBadge": "НОВОЕ"
|
||
}
|
||
},
|
||
"update": {
|
||
"title": "Проверить обновления",
|
||
"notificationsTitle": "Центр уведомлений",
|
||
"tabs": {
|
||
"updates": "Обновления",
|
||
"messages": "Сообщения"
|
||
},
|
||
"updateAvailable": "Доступно обновление",
|
||
"noChangelogAvailable": "Подробный список изменений недоступен. Проверьте GitHub для получения дополнительной информации.",
|
||
"currentVersion": "Текущая версия",
|
||
"newVersion": "Новая версия",
|
||
"commit": "Коммит",
|
||
"viewOnGitHub": "Посмотреть на GitHub",
|
||
"updateNow": "Обновить сейчас",
|
||
"preparingUpdate": "Подготовка обновления...",
|
||
"changelog": "Список изменений",
|
||
"checkingUpdates": "Проверка обновлений...",
|
||
"checkingMessage": "Пожалуйста, подождите, пока мы проверяем последнюю версию.",
|
||
"showNotifications": "Показывать уведомления об обновлениях",
|
||
"latestBadge": "Последний",
|
||
"updateProgress": {
|
||
"preparing": "Подготовка обновления...",
|
||
"installing": "Установка обновления...",
|
||
"completed": "Обновление успешно завершено!",
|
||
"failed": "Обновление не удалось: {error}"
|
||
},
|
||
"status": {
|
||
"updating": "Обновление...",
|
||
"updated": "Обновлено!",
|
||
"updateFailed": "Обновление не удалось"
|
||
},
|
||
"completion": {
|
||
"successMessage": "Успешно обновлено до {version}!",
|
||
"restartMessage": "Пожалуйста, перезапустите ComfyUI или LoRA Manager для применения обновления.",
|
||
"reloadMessage": "Обязательно перезагрузите ваш браузер как для LoRA Manager, так и для ComfyUI."
|
||
},
|
||
"nightly": {
|
||
"warning": "Предупреждение: Ночные сборки могут содержать экспериментальные функции и могут быть нестабильными.",
|
||
"enable": "Включить ночные обновления"
|
||
},
|
||
"banners": {
|
||
"recent": "Недавние уведомления",
|
||
"empty": "Недавних баннеров нет.",
|
||
"shown": "Показано {time}",
|
||
"dismissed": "Закрыто {time}",
|
||
"active": "Активно"
|
||
}
|
||
},
|
||
"support": {
|
||
"title": "Поддержать проект",
|
||
"message": "Если вы находите LoRA Manager полезным, я буду очень признателен за вашу поддержку! 🙌",
|
||
"feedback": {
|
||
"title": "Оставить отзыв",
|
||
"description": "Ваш отзыв помогает формировать будущие обновления! Поделитесь своими мыслями:"
|
||
},
|
||
"links": {
|
||
"submitGithubIssue": "Создать issue на GitHub",
|
||
"joinDiscord": "Присоединиться к Discord",
|
||
"youtubeChannel": "YouTube канал",
|
||
"civitaiProfile": "Профиль на Civitai",
|
||
"supportKofi": "Поддержать на Ko-fi",
|
||
"supportPatreon": "Поддержать на Patreon"
|
||
},
|
||
"sections": {
|
||
"followUpdates": "Следить за обновлениями",
|
||
"buyMeCoffee": "Купите мне кофе",
|
||
"coffeeDescription": "Если вы хотите поддержать мою работу напрямую:",
|
||
"becomePatron": "Стать покровителем",
|
||
"patronDescription": "Поддержите постоянную разработку ежемесячными взносами:",
|
||
"wechatSupport": "Поддержка через WeChat",
|
||
"wechatDescription": "Для пользователей в Китае вы можете поддержать через WeChat:",
|
||
"showWechatQR": "Показать QR-код WeChat",
|
||
"hideWechatQR": "Скрыть QR-код WeChat"
|
||
},
|
||
"footer": "Спасибо за использование LoRA Manager! ❤️",
|
||
"supporters": {
|
||
"title": "Спасибо всем сторонникам",
|
||
"subtitle": "Спасибо {count} сторонникам, которые сделали этот проект возможным",
|
||
"specialThanks": "Особая благодарность",
|
||
"allSupporters": "Все сторонники",
|
||
"totalCount": "Всего {count} сторонников"
|
||
}
|
||
},
|
||
"toast": {
|
||
"general": {
|
||
"cannotInteractStandalone": "Невозможно взаимодействовать с ComfyUI в автономном режиме",
|
||
"failedWorkflowInfo": "Не удалось получить информацию о workflow",
|
||
"pageInitFailed": "Не удалось инициализировать страницу {pageType}. Пожалуйста, перезагрузите.",
|
||
"statisticsLoadFailed": "Не удалось загрузить данные статистики"
|
||
},
|
||
"loras": {
|
||
"copyOnlyForLoras": "Копирование синтаксиса доступно только для LoRAs",
|
||
"noLorasSelected": "LoRAs не выбраны",
|
||
"missingDataForLoras": "Отсутствуют данные для {count} LoRAs",
|
||
"noValidLorasToCopy": "Нет валидных LoRAs для копирования",
|
||
"sendOnlyForLoras": "Отправка в workflow доступна только для LoRAs",
|
||
"noValidLorasToSend": "Нет валидных LoRAs для отправки",
|
||
"downloadSuccessful": "LoRAs успешно загружены",
|
||
"allDownloadSuccessful": "Все {count} LoRAs успешно загружены",
|
||
"downloadPartialSuccess": "Загружено {completed} из {total} LoRAs",
|
||
"downloadPartialWithAccess": "Загружено {completed} из {total} LoRAs. {accessFailures} не удалось из-за ограничений доступа. Проверьте ваш API ключ в настройках или статус раннего доступа.",
|
||
"pleaseSelectVersion": "Пожалуйста, выберите версию",
|
||
"versionExists": "Эта версия уже существует в вашей библиотеке",
|
||
"downloadCompleted": "Загрузка успешно завершена",
|
||
"autoOrganizeSuccess": "Автоматическая организация успешно завершена для {count} {type}",
|
||
"autoOrganizePartialSuccess": "Автоматическая организация завершена: перемещено {success}, не удалось {failures} из {total} моделей",
|
||
"autoOrganizeFailed": "Ошибка автоматической организации: {error}",
|
||
"noModelsSelected": "Модели не выбраны"
|
||
},
|
||
"recipes": {
|
||
"fetchFailed": "Не удалось получить рецепты: {message}",
|
||
"reloadFailed": "Не удалось перезагрузить {modelType}s: {message}",
|
||
"loadFailed": "Не удалось загрузить {modelType}s: {message}",
|
||
"refreshComplete": "Обновление завершено",
|
||
"refreshFailed": "Не удалось обновить рецепты: {message}",
|
||
"syncComplete": "Синхронизация завершена",
|
||
"syncFailed": "Не удалось синхронизировать рецепты: {message}",
|
||
"updateFailed": "Не удалось обновить рецепт: {error}",
|
||
"updateError": "Ошибка обновления рецепта: {message}",
|
||
"nameSaved": "Рецепт \"{name}\" успешно сохранен",
|
||
"nameUpdated": "Название рецепта успешно обновлено",
|
||
"tagsUpdated": "Теги рецепта успешно обновлены",
|
||
"sourceUrlUpdated": "Исходный URL успешно обновлен",
|
||
"noRecipeId": "ID рецепта недоступен",
|
||
"copyFailed": "Ошибка копирования синтаксиса рецепта: {message}",
|
||
"noMissingLoras": "Нет отсутствующих LoRAs для загрузки",
|
||
"missingLorasInfoFailed": "Не удалось получить информацию для отсутствующих LoRAs",
|
||
"preparingForDownloadFailed": "Ошибка подготовки LoRAs для загрузки",
|
||
"enterLoraName": "Пожалуйста, введите название LoRA или синтаксис",
|
||
"reconnectedSuccessfully": "LoRA успешно переподключена",
|
||
"reconnectFailed": "Ошибка переподключения LoRA: {message}",
|
||
"cannotSend": "Невозможно отправить рецепт: отсутствует ID рецепта",
|
||
"sendFailed": "Не удалось отправить рецепт в workflow",
|
||
"sendError": "Ошибка отправки рецепта в workflow",
|
||
"missingCheckpointPath": "Путь к чекпойнту недоступен",
|
||
"missingCheckpointInfo": "Отсутствуют данные о чекпойнте",
|
||
"downloadCheckpointFailed": "Не удалось скачать чекпойнт: {message}",
|
||
"cannotDelete": "Невозможно удалить рецепт: отсутствует ID рецепта",
|
||
"deleteConfirmationError": "Ошибка отображения подтверждения удаления",
|
||
"deletedSuccessfully": "Рецепт успешно удален",
|
||
"deleteFailed": "Ошибка удаления рецепта: {message}",
|
||
"cannotShare": "Невозможно поделиться рецептом: отсутствует ID рецепта",
|
||
"preparingForSharing": "Подготовка рецепта для общего доступа...",
|
||
"downloadStarted": "Загрузка рецепта начата",
|
||
"shareError": "Ошибка при предоставлении общего доступа к рецепту: {message}",
|
||
"sharePreparationError": "Ошибка подготовки рецепта для общего доступа",
|
||
"selectImageFirst": "Пожалуйста, сначала выберите изображение",
|
||
"enterRecipeName": "Пожалуйста, введите название рецепта",
|
||
"processingError": "Ошибка обработки: {message}",
|
||
"folderBrowserError": "Ошибка загрузки браузера папок: {message}",
|
||
"recipeSaveFailed": "Не удалось сохранить рецепт: {error}",
|
||
"importFailed": "Импорт не удался: {message}",
|
||
"folderTreeFailed": "Не удалось загрузить дерево папок",
|
||
"folderTreeError": "Ошибка загрузки дерева папок",
|
||
"batchImportFailed": "[TODO: Translate] Failed to start batch import: {message}",
|
||
"batchImportCancelling": "[TODO: Translate] Cancelling batch import...",
|
||
"batchImportCancelFailed": "[TODO: Translate] Failed to cancel batch import: {message}",
|
||
"batchImportNoUrls": "[TODO: Translate] Please enter at least one URL or file path",
|
||
"batchImportNoDirectory": "[TODO: Translate] Please enter a directory path",
|
||
"batchImportBrowseFailed": "[TODO: Translate] Failed to browse directory: {message}",
|
||
"batchImportDirectorySelected": "[TODO: Translate] Directory selected: {path}"
|
||
},
|
||
"models": {
|
||
"noModelsSelected": "Модели не выбраны",
|
||
"deletedSuccessfully": "Успешно удалено {count} {type}(ей)",
|
||
"deleteFailed": "Ошибка: {error}",
|
||
"deleteFailedGeneral": "Не удалось удалить модели",
|
||
"selectedAdditional": "Выбрано дополнительно {count} {type}(ей)",
|
||
"marqueeSelectionComplete": "Выбрано {count} {type} с помощью выделения рамкой",
|
||
"refreshMetadataFailed": "Не удалось обновить метаданные",
|
||
"nameCannotBeEmpty": "Название модели не может быть пустым",
|
||
"nameUpdatedSuccessfully": "Название модели успешно обновлено",
|
||
"nameUpdateFailed": "Не удалось обновить название модели",
|
||
"baseModelUpdated": "Базовая модель успешно обновлена",
|
||
"baseModelUpdateFailed": "Не удалось обновить базовую модель",
|
||
"baseModelNotSelected": "Пожалуйста, выберите базовую модель",
|
||
"bulkBaseModelUpdating": "Обновление базовой модели для {count} моделей...",
|
||
"bulkBaseModelUpdateSuccess": "Базовая модель успешно обновлена для {count} моделей",
|
||
"bulkBaseModelUpdatePartial": "Обновлено {success} моделей, не удалось обновить {failed} моделей",
|
||
"bulkBaseModelUpdateFailed": "Не удалось обновить базовую модель для выбранных моделей",
|
||
"skipMetadataRefreshUpdating": "Обновление флага обновления метаданных для {count} модели(ей)...",
|
||
"skipMetadataRefreshSet": "Обновление метаданных пропущено для {count} модели(ей)",
|
||
"skipMetadataRefreshCleared": "Обновление метаданных возобновлено для {count} модели(ей)",
|
||
"skipMetadataRefreshPartial": "{success} модели(ей) обновлено, {failed} не удалось",
|
||
"skipMetadataRefreshFailed": "Не удалось обновить флаг обновления метаданных для выбранных моделей",
|
||
"bulkContentRatingUpdating": "Обновление рейтинга контента для {count} модель(ей)...",
|
||
"bulkContentRatingSet": "Рейтинг контента установлен на {level} для {count} модель(ей)",
|
||
"bulkContentRatingPartial": "Рейтинг контента {level} установлен для {success} модель(ей), {failed} не удалось",
|
||
"bulkContentRatingFailed": "Не удалось обновить рейтинг контента для выбранных моделей",
|
||
"bulkUpdatesChecking": "Проверка обновлений для выбранных {type}...",
|
||
"bulkUpdatesSuccess": "Доступны обновления для {count} выбранных {type}",
|
||
"bulkUpdatesNone": "Обновления для выбранных {type} не найдены",
|
||
"bulkUpdatesMissing": "Выбранные {type} не привязаны к обновлениям Civitai",
|
||
"bulkUpdatesPartialMissing": "Пропущено {missing} выбранных {type} без привязки Civitai",
|
||
"bulkUpdatesFailed": "Не удалось проверить обновления для выбранных {type}: {message}",
|
||
"invalidCharactersRemoved": "Недопустимые символы удалены из имени файла",
|
||
"filenameCannotBeEmpty": "Имя файла не может быть пустым",
|
||
"renameFailed": "Не удалось переименовать файл: {message}",
|
||
"moveFailed": "Не удалось переместить модель(и): {message}",
|
||
"pleaseSelectRoot": "Пожалуйста, выберите корневую папку {type}",
|
||
"nameTooLong": "Название модели ограничено 100 символами",
|
||
"verificationAlreadyDone": "Эта группа уже была проверена",
|
||
"verificationCompleteMismatch": "Проверка завершена. {count} файл(ов) имеют разные фактические хеши.",
|
||
"verificationCompleteSuccess": "Проверка завершена. Все файлы подтверждены как дубликаты.",
|
||
"verificationFailed": "Не удалось проверить хеши: {message}",
|
||
"noTagsToAdd": "Нет тегов для добавления",
|
||
"bulkTagsUpdating": "Обновление тегов для {count} модел(ей)...",
|
||
"tagsAddedSuccessfully": "Успешно добавлено {tagCount} тег(ов) к {count} {type}(ам)",
|
||
"tagsReplacedSuccessfully": "Успешно заменены теги для {count} {type}(ов) на {tagCount} тег(ов)",
|
||
"tagsAddFailed": "Не удалось добавить теги к {count} модель(ям)",
|
||
"tagsReplaceFailed": "Не удалось заменить теги для {count} модель(ей)",
|
||
"bulkTagsAddFailed": "Не удалось добавить теги к моделям",
|
||
"bulkTagsReplaceFailed": "Не удалось заменить теги для моделей"
|
||
},
|
||
"search": {
|
||
"atLeastOneOption": "Должен быть выбран хотя бы один вариант поиска"
|
||
},
|
||
"settings": {
|
||
"loraRootsFailed": "Не удалось загрузить корни LoRA: {message}",
|
||
"checkpointRootsFailed": "Не удалось загрузить корни checkpoint: {message}",
|
||
"unetRootsFailed": "Не удалось загрузить корни Diffusion Model: {message}",
|
||
"embeddingRootsFailed": "Не удалось загрузить корни embedding: {message}",
|
||
"mappingsUpdated": "Сопоставления путей базовых моделей обновлены ({count} сопоставлени{plural})",
|
||
"mappingsCleared": "Сопоставления путей базовых моделей очищены",
|
||
"mappingSaveFailed": "Не удалось сохранить сопоставления базовых моделей: {message}",
|
||
"downloadTemplatesUpdated": "Шаблоны путей загрузки обновлены",
|
||
"downloadTemplatesFailed": "Не удалось сохранить шаблоны путей загрузки: {message}",
|
||
"settingsUpdated": "Настройки обновлены: {setting}",
|
||
"compactModeToggled": "Компактный режим {state}",
|
||
"settingSaveFailed": "Не удалось сохранить настройку: {message}",
|
||
"displayDensitySet": "Плотность отображения установлена на {density}",
|
||
"libraryLoadFailed": "Failed to load libraries: {message}",
|
||
"libraryActivateFailed": "Failed to activate library: {message}",
|
||
"languageChangeFailed": "Не удалось изменить язык: {message}",
|
||
"cacheCleared": "Файлы кэша успешно очищены. Кэш будет пересобран при следующем действии.",
|
||
"cacheClearFailed": "Не удалось очистить кэш: {error}",
|
||
"cacheClearError": "Ошибка очистки кэша: {message}"
|
||
},
|
||
"filters": {
|
||
"applied": "{message}",
|
||
"cleared": "Фильтры очищены",
|
||
"noCustomFilterToClear": "Нет пользовательского фильтра для очистки",
|
||
"noActiveFilters": "Нет активных фильтров для сохранения"
|
||
},
|
||
"presets": {
|
||
"created": "Пресет \"{name}\" создан",
|
||
"deleted": "Пресет \"{name}\" удален",
|
||
"applied": "Пресет \"{name}\" применен",
|
||
"overwritten": "Пресет \"{name}\" перезаписан",
|
||
"restored": "Пресеты по умолчанию восстановлены"
|
||
},
|
||
"error": {
|
||
"presetNameEmpty": "Имя пресета не может быть пустым",
|
||
"presetNameTooLong": "Имя пресета должно содержать не более {max} символов",
|
||
"presetNameInvalidChars": "Имя пресета содержит недопустимые символы",
|
||
"presetNameExists": "Пресет с таким именем уже существует",
|
||
"maxPresetsReached": "Допустимо максимум {max} пресетов. Удалите один, чтобы добавить больше.",
|
||
"presetNotFound": "Пресет не найден",
|
||
"invalidPreset": "Недопустимые данные пресета",
|
||
"deletePresetFailed": "Не удалось удалить пресет",
|
||
"applyPresetFailed": "Не удалось применить пресет"
|
||
},
|
||
"downloads": {
|
||
"imagesCompleted": "Примеры изображений {action} завершены",
|
||
"imagesFailed": "Примеры изображений {action} не удались",
|
||
"loadError": "Ошибка загрузки downloads: {message}",
|
||
"downloadError": "Ошибка загрузки: {message}"
|
||
},
|
||
"import": {
|
||
"folderTreeFailed": "Не удалось загрузить дерево папок",
|
||
"folderTreeError": "Ошибка загрузки дерева папок",
|
||
"imagesImported": "Примеры изображений успешно импортированы",
|
||
"imagesPartial": "{success} изображ. импортировано, {failed} не удалось",
|
||
"importFailed": "Не удалось импортировать примеры изображений: {message}"
|
||
},
|
||
"triggerWords": {
|
||
"loadFailed": "Не удалось загрузить обученные слова",
|
||
"tooLong": "Триггерное слово не должно превышать 100 слов",
|
||
"tooMany": "Максимум 30 триггерных слов разрешено",
|
||
"alreadyExists": "Это триггерное слово уже существует",
|
||
"updateSuccess": "Триггерные слова успешно обновлены",
|
||
"updateFailed": "Не удалось обновить триггерные слова",
|
||
"copyFailed": "Копирование не удалось"
|
||
},
|
||
"virtual": {
|
||
"loadFailed": "Не удалось загрузить элементы",
|
||
"loadMoreFailed": "Не удалось загрузить больше элементов",
|
||
"loadPositionFailed": "Не удалось загрузить элементы в этой позиции"
|
||
},
|
||
"bulk": {
|
||
"unableToSelectAll": "Невозможно выбрать все элементы"
|
||
},
|
||
"duplicates": {
|
||
"findFailed": "Не удалось найти дубликаты: {message}",
|
||
"noDuplicatesFound": "Дубликаты {type} не найдены",
|
||
"noItemsSelected": "Не выбрано {type} для удаления",
|
||
"deleteError": "Ошибка: {message}",
|
||
"deleteSuccess": "Успешно удалено {count} {type}",
|
||
"deleteFailed": "Не удалось удалить {type}: {message}"
|
||
},
|
||
"controls": {
|
||
"reloadFailed": "Не удалось перезагрузить {pageType}: {message}",
|
||
"refreshFailed": "Не удалось {action} {pageType}: {message}",
|
||
"fetchMetadataFailed": "Не удалось получить метаданные: {message}",
|
||
"clearFilterFailed": "Не удалось очистить пользовательский фильтр: {message}"
|
||
},
|
||
"contextMenu": {
|
||
"contentRatingSet": "Рейтинг контента установлен на {level}",
|
||
"contentRatingFailed": "Не удалось установить рейтинг контента: {message}",
|
||
"relinkSuccess": "Модель успешно пересвязана с Civitai",
|
||
"relinkFailed": "Ошибка: {message}",
|
||
"fetchMetadataFirst": "Пожалуйста, сначала получите метаданные с CivitAI",
|
||
"noCivitaiInfo": "Информация CivitAI недоступна",
|
||
"missingHash": "Хеш модели недоступен"
|
||
},
|
||
"exampleImages": {
|
||
"pathUpdated": "Путь к примерам изображений успешно обновлен",
|
||
"pathUpdateFailed": "Не удалось обновить путь к примерам изображений: {message}",
|
||
"downloadInProgress": "Загрузка уже в процессе",
|
||
"enterLocationFirst": "Пожалуйста, сначала введите место загрузки",
|
||
"downloadStarted": "Загрузка примеров изображений начата",
|
||
"downloadStartFailed": "Не удалось начать загрузку: {error}",
|
||
"downloadPaused": "Загрузка приостановлена",
|
||
"pauseFailed": "Не удалось приостановить загрузку: {error}",
|
||
"downloadResumed": "Загрузка возобновлена",
|
||
"resumeFailed": "Не удалось возобновить загрузку: {error}",
|
||
"downloadStopped": "Загрузка отменена",
|
||
"stopFailed": "Не удалось отменить загрузку: {error}",
|
||
"deleted": "Пример изображения удален",
|
||
"deleteFailed": "Не удалось удалить пример изображения",
|
||
"setPreviewFailed": "Не удалось установить превью изображение"
|
||
},
|
||
"api": {
|
||
"fetchFailed": "Не удалось получить {type}s: {message}",
|
||
"reloadFailed": "Не удалось перезагрузить {type}s: {message}",
|
||
"deleteSuccess": "{type} успешно удален",
|
||
"deleteFailed": "Не удалось удалить {type}: {message}",
|
||
"excludeSuccess": "{type} успешно исключен",
|
||
"excludeFailed": "Не удалось исключить {type}: {message}",
|
||
"fileNameUpdated": "Имя файла успешно обновлено",
|
||
"fileRenameFailed": "Не удалось переименовать файл: {error}",
|
||
"previewUpdated": "Превью успешно обновлено",
|
||
"previewUploadFailed": "Не удалось загрузить превью изображение",
|
||
"refreshComplete": "{action} завершено",
|
||
"refreshFailed": "Не удалось {action} {type}s",
|
||
"metadataRefreshed": "Метаданные успешно обновлены",
|
||
"metadataRefreshFailed": "Не удалось обновить метаданные: {message}",
|
||
"metadataUpdateComplete": "Обновление метаданных завершено",
|
||
"operationCancelled": "Операция отменена пользователем",
|
||
"operationCancelledPartial": "Операция отменена. Обработано {success} элементов.",
|
||
"metadataFetchFailed": "Не удалось получить метаданные: {message}",
|
||
"bulkMetadataCompleteAll": "Успешно обновлены все {count} {type}s",
|
||
"bulkMetadataCompletePartial": "Обновлено {success} из {total} {type}s",
|
||
"bulkMetadataCompleteNone": "Не удалось обновить метаданные ни для одного {type}s",
|
||
"bulkMetadataFailureDetails": "Неудачные обновления:\n{failures}",
|
||
"bulkMetadataFailed": "Не удалось обновить метаданные: {message}",
|
||
"moveNotSupported": "Перемещение {type}s не поддерживается",
|
||
"alreadyInFolder": "{type} уже находится в выбранной папке",
|
||
"moveInfo": "{message}",
|
||
"moveSuccess": "{type} успешно перемещен",
|
||
"bulkMoveNotSupported": "Перемещение {type}s не поддерживается",
|
||
"allAlreadyInFolder": "Все выбранные {type}s уже находятся в целевой папке",
|
||
"bulkMovePartial": "Перемещено {successCount} {type}s, {failureCount} не удалось",
|
||
"bulkMoveFailures": "Неудачные перемещения:\n{failures}",
|
||
"bulkMoveSuccess": "Успешно перемещено {successCount} {type}s",
|
||
"exampleImagesDownloadSuccess": "Примеры изображений успешно загружены!",
|
||
"exampleImagesDownloadFailed": "Не удалось загрузить примеры изображений: {message}",
|
||
"moveFailed": "Failed to move item: {message}"
|
||
}
|
||
},
|
||
"banners": {
|
||
"versionMismatch": {
|
||
"title": "Обнаружено обновление приложения",
|
||
"content": "Ваш браузер работает с устаревшей версией LoRA Manager ({storedVersion}). Сервер был обновлен до версии {currentVersion}. Пожалуйста, обновите страницу для обеспечения правильной работы.",
|
||
"refreshNow": "Обновить сейчас",
|
||
"refreshingIn": "Обновление через",
|
||
"seconds": "секунд"
|
||
},
|
||
"communitySupport": {
|
||
"title": "Keep LoRA Manager Thriving with Your Support ❤️",
|
||
"content": "LoRA Manager is a passion project maintained full-time by a solo developer. Your support on Ko-fi helps cover development costs, keeps new updates coming, and unlocks a license key for the LM Civitai Extension as a thank-you gift. Every contribution truly makes a difference.",
|
||
"supportCta": "Support on Ko-fi",
|
||
"learnMore": "LM Civitai Extension Tutorial"
|
||
},
|
||
"cacheHealth": {
|
||
"corrupted": {
|
||
"title": "Обнаружено повреждение кэша"
|
||
},
|
||
"degraded": {
|
||
"title": "Обнаружены проблемы с кэшем"
|
||
},
|
||
"content": "{invalid} из {total} записей кэша недействительны ({rate}). Это может привести к отсутствию моделей или ошибкам. Рекомендуется перестроить кэш.",
|
||
"rebuildCache": "Перестроить кэш",
|
||
"dismiss": "Отклонить",
|
||
"rebuilding": "Перестроение кэша...",
|
||
"rebuildFailed": "Не удалось перестроить кэш: {error}",
|
||
"retry": "Повторить"
|
||
}
|
||
}
|
||
}
|