Files
ComfyUI-Lora-Manager/locales/ru.json
Will Miao ee466113d5 feat: implement batch import recipe functionality (frontend + backend fixes)
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
2026-03-16 09:41:58 +08:00

1746 lines
119 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

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

{
"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": "Повторить"
}
}
}