{ "manifest": { "app": { "name": "Миниатюры Spine" } }, "thumb": { "title": "Миниатюры Spine", "noticeIntro": "После импорта ресурсов Spine (.skel / .json + .atlas + текстуры) плагин создаёт предпросмотр скелета для элементов без пользовательской миниатюры.", "noticeSafety": "Обрабатываются только новые элементы. Существующие элементы не сканируются и не изменяются, пользовательские миниатюры никогда не перезаписываются.", "noticeCompound": "Поля имени и типа Eagle для элементов с составными расширениями изменяются только после подтверждения текущих и новых значений. Исходные значения сохраняются и могут быть восстановлены.", "noticeModes": "Анимированный режим использует первую анимацию и экспортирует WebP. Статический всегда использует setup pose.", "noticeDefault": "Автоматическое создание по умолчанию отключено. Включите его ниже при необходимости.", "autoToggle": "Создавать миниатюры при импорте", "clear": "Очистить журнал", "restoreNames": "Восстановить имена/типы", "compoundConfirmTitle": "Подтвердить изменение составного расширения", "compoundConfirmIntro": "Из-за особенностей файлов с составными расширениями Eagle должен изменить поля имени и типа этих элементов, чтобы показывать созданные миниатюры. Исходные значения будут сохранены и доступны для восстановления в плагине.", "compoundOldValue": "Сейчас", "compoundNewValue": "Новое", "compoundSkip": "Пропустить и продолжить", "compoundConfirm": "Применить изменения", "compoundConfirmSelected": "Применить выбранные ({count})", "compoundSkipped": "{label} пропущен: изменение составного расширения не подтверждено", "compoundSourceMismatch": "{label} пропущен: имя Eagle {current} не совпадает с исходным файлом {source}", "compoundCheckFailed": "Не удалось проверить составное расширение {label}: {error}", "compoundNeedsConfirmation": "{label} пропущен: поля изменились после подтверждения; проверьте элемент заново", "compoundBackupUnavailable": "Нельзя изменить составные расширения: исходные значения не удалось сохранить", "compoundRolledBack": "Создание миниатюры не удалось; имя и тип {label} восстановлены", "compoundRollbackFailed": "Создание миниатюры не удалось, а {label} не удалось восстановить автоматически: {error}", "restoreEmpty": "Нет сохранённых изменений имён/типов для восстановления", "restoreTitle": "Выберите элементы для восстановления", "restoreIntro": "Для этих элементов сохранены исходные значения. Все доступные элементы выбраны по умолчанию; изменённые пользователем или недоступные элементы выбрать нельзя.", "restoreCurrent": "Сейчас", "restoreTarget": "Восстановить до", "restoreStatusReady": "Элемент изменён на {fields}", "restoreStatusAlreadyOriginal": "Уже имеет исходное значение; подтверждение только удалит резервную копию", "restoreStatusChanged": "Текущие поля изменены пользователем; элемент будет пропущен", "restoreStatusMissing": "Элемент не найден, восстановление невозможно", "restoreStatusError": "Не удалось прочитать текущие значения, восстановление невозможно", "restoreCancel": "Отмена", "restoreSelected": "Восстановить выбранные ({count})", "restoreComplete": "Восстановление завершено: успешно {success}, пропущено {skipped}, ошибок {failed}.", "restoreFailed": "Не удалось восстановить имена/типы: {error}", "modeLabel": "Режим создания", "modeAnimated": "Анимированный (первая анимация)", "modeStatic": "Статический (setup pose)", "strategyLabel": "Стратегия", "strategySize": "Минимальный файл (медленно)", "strategySpeed": "Максимальная скорость (быстро)", "statusLabel": "Состояние", "statusStarting": "Запуск…", "libraryLabel": "Библиотека", "statsLabel": "Статистика", "filterAll": "Все", "filterOk": "Успешно", "filterFail": "Ошибки", "filterWarn": "Предупреждения", "filterError": "Ошибка", "unknownError": "Неизвестная ошибка", "scriptError": "Ошибка скрипта: {error}", "promiseError": "Необработанная ошибка Promise: {error}", "uncategorized": "Без категории", "reasonQuiet": "после завершения импорта", "reasonFallback": "резервное сканирование", "none": "нет", "complete": "полный", "incomplete": "неполный", "statusLoaded": "Скрипт {version} загружен; ожидание событий Eagle…", "statusEagleMissing": "API Eagle недоступен", "statusListening": "Наблюдение", "statusListenFailed": "Ошибка наблюдения", "statusAutoOff": "Наблюдение (автосоздание выключено)", "statusNoLibrary": "Путь к библиотеке недоступен", "statusPairing": "Сопоставление новых ресурсов…", "statusPairingProgress": "Сопоставление {current}/{total}", "statusRendering": "Рендеринг кадра {current}/{total} (в очереди {queued})", "statusGenerating": "Создание миниатюр… осталось {queued}", "statusPaused": "Пауза (продолжите или отмените в окне прогресса)", "statusAutoSkipped": "Автосоздание выключено; этот пакет пропущен", "statusStartFailed": "Ошибка запуска: {error}", "stats": "Пакеты {batches} · Добавлено {added} · Spine {spine} · Полные {complete} · Создано {generated} · Пропущено {skipped} · Ошибок {failed}", "modulesMissing": "Локальные модули не загружены: {modules}", "moduleLoadError": "Локальные модули не загружены. Проверьте порядок скриптов в index.html: {modules}", "version": "Версия кода плагина {version}", "pluginCreated": "Плагин создан: {name}", "settingsReadFailed": "Не удалось прочитать настройки; используются значения по умолчанию (автосоздание выключено): {error}", "settingsSaveFailed": "Не удалось сохранить настройки: {error}", "autoEnabled": "Автосоздание включено. Для новых импортированных ресурсов Spine будут созданы миниатюры.", "autoDisabled": "Автосоздание выключено; очередь ожидания очищена.", "modeStaticLog": "Режим создания: статический (всегда setup pose, PNG)", "modeAnimatedLog": "Режим создания: анимированный (первая анимация в WebP; setup pose без анимации)", "strategySpeedLog": "Стратегия: максимальная скорость (примерный выбор, только один-два наименьших профиля)", "strategySizeLog": "Стратегия: минимальный файл (все десять профилей и выбор наименьшего)", "missingItem": "{label} пропущен: элемент не найден в Eagle", "suffixFixed": "Составное расширение исправлено для {label} → {name}", "suffixFailed": "Не удалось исправить составное расширение {label}: {error}", "existingThumbnail": "{label} пропущен: уже есть пользовательская миниатюра", "thumbnailRejected": "Eagle отклонил эту миниатюру", "generated": "{label} создан | {details} | Spine {version}", "generateFailed": "Ошибка создания {label}: {error}", "cancelled": "Создание отменено: отброшено ожидающих {dropped}. Завершено {done} (успешно {generated}, ошибок {failed}, пропущено {skipped})", "batchFailed": "Ошибка обработки пакета импорта: {error}", "batchFinished": "Пакет завершён: добавлено {added}, в библиотеке {total} ({reason})", "recheck": "Повторная проверка ранее неполных ресурсов: {count}", "noSpine": "В этом пакете нет ресурсов Spine", "incompletePending": "Неполных ресурсов: {count}; они будут проверены после следующих импортов", "incompleteIgnored": "Неполных ресурсов: {count}; в этом пакете они не обрабатываются", "itemSummary": " {name} | {path} | {state} | скелет {skeleton} | atlas {atlas} | страниц {pages} (не хватает {missing})", "autoSkipped": "Автосоздание выключено; пропущено ресурсов в пакете: {count}", "queued": "Добавлено в очередь: {added}; ожидают {queued}{state}", "queuedRunning": " (обработка)", "libraryInfoNoPath": "library.info() не вернул путь: {info}", "libraryInfoFailed": "Ошибка вызова library.info(): {error}", "switchingLibrary": "Переключение библиотеки: {path}", "noCreateEvent": "Событие создания не получено; выполняется прямой запуск", "watching": "Наблюдение за {path} (существующие элементы {count} считаются историей)", "watchReadFailed": "Не удалось прочитать каталог ресурсов: {error}", "watchMissingDir": "Каталог ресурсов не существует: {path}", "watchFailed": "Не удалось начать наблюдение: {error}", "fixSuffixAction": "Исправление составного расширения {label}", "renderAction": "Рендеринг {label}", "setThumbnailAction": "Установка миниатюры {label}", "thumbnailDetailsAnimated": "Анимация {size}@{fps}fps/q{quality}/{kb}KB (цель {target}KB)/{frames} кадров/анимация {animation}/{strategy}{limit}", "thumbnailDetailsStatic": "Статическая {width}×{height}/{kb}KB{fallback}", "bestSpeed": "максимальная скорость", "bestSize": "минимальный файл", "fallbackNote": " ({text})", "fallbackNoAnimation": "в скелете нет анимаций", "fallbackAnimatedFailed": "ошибка анимированного создания: {error}", "limitNote": " (даже минимальный профиль превышает целевой размер; увеличьте размер миниатюры)", "runSummary": "Успешно {generated}, ошибок {failed}, пропущено {skipped}, время {seconds} с." }, "progress": { "title": "Миниатюры Spine", "generating": "Создание анимированных миниатюр…", "waiting": "Ожидание запуска…", "confirmPrompt": "Отменить этот запуск?", "resume": "Продолжить", "cancel": "Подтвердить отмену", "stop": "Остановить", "confirm": "Готово", "generatedConfirm": "Создано миниатюр: {done}. Отменить запуск?", "complete": "Завершено", "completed": "Завершено {done} / {total} ({percent}%)" } }