修正
This commit is contained in:
1 parent
e7f800aa8d
commit
d0112e0016
36 files changed
+79
-115
No files matched your search
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Spine-Vorschaubilder",
|
||||
"noticeIntro": "Nach dem Import von Spine-Assets (.skel / .json + .atlas + Texturen) erstellt dieses Plugin eine Skelettvorschau für Elemente ohne eigenes Vorschaubild.",
|
||||
"noticeSafety": "Nur neu importierte Elemente werden verarbeitet. Vorhandene Elemente werden weder durchsucht noch geändert, und eigene Vorschaubilder werden nie überschrieben.",
|
||||
"noticeCompound": "Bei Elementen mit zusammengesetzter Endung werden die Felder Name und Typ in Eagle erst nach Bestätigung der aktuellen und neuen Werte geändert. Die Originalwerte werden gespeichert und können wiederhergestellt werden.",
|
||||
"noticeModes": "Animiert verwendet die erste Animation und exportiert WebP. Statisch verwendet immer die Setup-Pose.",
|
||||
"noticeDefault": "Die automatische Erstellung ist standardmäßig ausgeschaltet. Aktiviere sie bei Bedarf unten.",
|
||||
"noticeIntro": "Funktion: Nach dem Import von Spine-Assets (.skel / .json + .atlas + Texturen) erstellt dieses Plugin eine Skelettvorschau für Elemente, die noch kein Vorschaubild haben.",
|
||||
"noticeSafety": "1. Die automatische Erstellung ist standardmäßig ausgeschaltet und muss unten manuell aktiviert werden. Nur in diesem Lauf neu importierte Elemente werden verarbeitet; bereits festgelegte eigene Vorschaubilder werden nie überschrieben.",
|
||||
"noticeCompound": "2. Bei Elementen mit zusammengesetzter Endung werden die Felder Name und Typ in Eagle erst nach Bestätigung der aktuellen und neuen Werte geändert. Die Originalwerte werden gespeichert und können wiederhergestellt werden.",
|
||||
"autoToggle": "Beim Import Vorschaubilder erstellen",
|
||||
"clear": "Protokoll leeren",
|
||||
"restoreNames": "Namen/Typen wiederherstellen",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Spine Thumbnails",
|
||||
"noticeIntro": "After importing Spine assets (.skel / .json + .atlas + textures), this plugin creates a skeleton preview for items that do not yet have a custom thumbnail.",
|
||||
"noticeSafety": "Only newly imported items are processed. Existing items are not scanned or changed, and custom thumbnails are never overwritten.",
|
||||
"noticeCompound": "Items with compound suffixes have Eagle name/type fields adjusted only after the current and new values are confirmed. Original values are saved and can be restored.",
|
||||
"noticeModes": "Animated uses the first animation and exports WebP. Still always uses the setup pose.",
|
||||
"noticeDefault": "Automatic generation is off by default. Enable it below when needed.",
|
||||
"noticeIntro": "Feature: After importing Spine assets (.skel / .json + .atlas + textures), this plugin generates a skeleton preview for items that do not yet have a thumbnail.",
|
||||
"noticeSafety": "1. Automatic generation is off by default and must be enabled below. It only processes items newly imported in this run and never overwrites custom thumbnails that are already set.",
|
||||
"noticeCompound": "2. For items with compound suffixes, Eagle name/type fields are adjusted only after the current and new values are confirmed. Original values are saved and can be restored.",
|
||||
"autoToggle": "Generate thumbnails on import",
|
||||
"clear": "Clear log",
|
||||
"restoreNames": "Restore names/types",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Miniaturas de Spine",
|
||||
"noticeIntro": "Después de importar recursos de Spine (.skel / .json + .atlas + texturas), este complemento crea una vista previa del esqueleto para los elementos que aún no tienen una miniatura personalizada.",
|
||||
"noticeSafety": "Solo se procesan los elementos recién importados. No se buscan ni modifican elementos existentes y nunca se sobrescriben las miniaturas personalizadas.",
|
||||
"noticeCompound": "Los campos de nombre y tipo de Eagle solo se ajustan después de confirmar los valores actuales y nuevos de los elementos con extensión compuesta. Los valores originales se guardan y pueden restaurarse.",
|
||||
"noticeModes": "Animado usa la primera animación y exporta WebP. Estático siempre usa la pose de configuración.",
|
||||
"noticeDefault": "La generación automática está desactivada de forma predeterminada. Actívala abajo cuando la necesites.",
|
||||
"noticeIntro": "Función: después de importar recursos de Spine (.skel / .json + .atlas + texturas), este complemento genera una vista previa del esqueleto para los elementos que aún no tienen una miniatura.",
|
||||
"noticeSafety": "1. La generación automática está desactivada de forma predeterminada y debe activarse abajo manualmente. Solo procesa los elementos recién importados en esta ejecución y nunca sobrescribe miniaturas personalizadas ya configuradas.",
|
||||
"noticeCompound": "2. En los elementos con extensión compuesta, los campos de nombre y tipo de Eagle solo se ajustan después de confirmar los valores actuales y nuevos. Los valores originales se guardan y pueden restaurarse.",
|
||||
"autoToggle": "Generar miniaturas al importar",
|
||||
"clear": "Borrar registro",
|
||||
"restoreNames": "Restaurar nombres/tipos",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Spineサムネイル",
|
||||
"noticeIntro": "Spine アセット(.skel / .json + .atlas + テクスチャ)を読み込んだ後、カスタムサムネイルがないアイテムにスケルトンプレビューを生成します。",
|
||||
"noticeSafety": "今回新しく読み込んだアイテムだけを処理し、既存アイテムの走査や変更、カスタムサムネイルの上書きは行いません。",
|
||||
"noticeCompound": "複合拡張子の項目は、現在値と新しい値を確認した場合にのみ Eagle の名前/種類フィールドを変更します。元の値は保存され、復元できます。",
|
||||
"noticeModes": "アニメーションは最初のアニメーションを WebP に変換します。静止画は常に setup pose を使用します。",
|
||||
"noticeDefault": "自動生成は既定でオフです。必要なときに下で有効にしてください。",
|
||||
"noticeIntro": "機能:Spine アセット(.skel / .json + .atlas + テクスチャ)を読み込むと、サムネイル未設定のアイテムにスケルトンプレビューを生成します。",
|
||||
"noticeSafety": "1. 自動生成は既定でオフで、下で手動で有効にする必要があります。今回新しく読み込んだアイテムだけを処理し、既に設定されたカスタムサムネイルは上書きしません。",
|
||||
"noticeCompound": "2. 複合拡張子の項目は、現在値と新しい値を確認した場合にのみ Eagle の名前/種類フィールドを変更します。元の値は保存され、復元できます。",
|
||||
"autoToggle": "読み込み時にサムネイルを自動生成",
|
||||
"clear": "ログを消去",
|
||||
"restoreNames": "名前/種類を復元",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Spine 썸네일",
|
||||
"noticeIntro": "Spine 에셋(.skel / .json + .atlas + 텍스처)을 가져온 뒤 사용자 지정 썸네일이 없는 항목에 스켈레톤 미리보기를 생성합니다.",
|
||||
"noticeSafety": "이번에 새로 가져온 항목만 처리합니다. 기존 항목을 검색하거나 수정하지 않으며 사용자 지정 썸네일을 덮어쓰지 않습니다.",
|
||||
"noticeCompound": "복합 확장자 항목은 현재 값과 새 값을 확인한 경우에만 Eagle 이름/유형 필드를 변경합니다. 원래 값은 저장되며 복원할 수 있습니다.",
|
||||
"noticeModes": "애니메이션은 첫 번째 애니메이션을 WebP로 만듭니다. 정지 이미지는 항상 setup pose를 사용합니다.",
|
||||
"noticeDefault": "자동 생성은 기본적으로 꺼져 있습니다. 필요할 때 아래에서 켜세요.",
|
||||
"noticeIntro": "기능: Spine 에셋(.skel / .json + .atlas + 텍스처)을 가져오면 썸네일이 아직 설정되지 않은 항목에 스켈레톤 미리보기를 생성합니다.",
|
||||
"noticeSafety": "1. 자동 생성은 기본적으로 꺼져 있으며 아래에서 직접 켜야 합니다. 이번에 새로 가져온 항목만 처리하고 이미 설정된 사용자 지정 썸네일은 덮어쓰지 않습니다.",
|
||||
"noticeCompound": "2. 복합 확장자 항목은 현재 값과 새 값을 확인한 경우에만 Eagle 이름/유형 필드를 변경합니다. 원래 값은 저장되며 복원할 수 있습니다.",
|
||||
"autoToggle": "가져올 때 썸네일 자동 생성",
|
||||
"clear": "로그 지우기",
|
||||
"restoreNames": "이름/유형 복원",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Миниатюры Spine",
|
||||
"noticeIntro": "После импорта ресурсов Spine (.skel / .json + .atlas + текстуры) плагин создаёт предпросмотр скелета для элементов без пользовательской миниатюры.",
|
||||
"noticeSafety": "Обрабатываются только новые элементы. Существующие элементы не сканируются и не изменяются, пользовательские миниатюры никогда не перезаписываются.",
|
||||
"noticeCompound": "Поля имени и типа Eagle для элементов с составными расширениями изменяются только после подтверждения текущих и новых значений. Исходные значения сохраняются и могут быть восстановлены.",
|
||||
"noticeModes": "Анимированный режим использует первую анимацию и экспортирует WebP. Статический всегда использует setup pose.",
|
||||
"noticeDefault": "Автоматическое создание по умолчанию отключено. Включите его ниже при необходимости.",
|
||||
"noticeIntro": "Функция: после импорта ресурсов Spine (.skel / .json + .atlas + текстуры) плагин создаёт предпросмотр скелета для элементов, у которых ещё нет миниатюры.",
|
||||
"noticeSafety": "1. Автоматическое создание по умолчанию отключено и должно быть включено вручную ниже. Обрабатываются только элементы, импортированные в текущем запуске; уже заданные пользовательские миниатюры не перезаписываются.",
|
||||
"noticeCompound": "2. Поля имени и типа Eagle для элементов с составными расширениями изменяются только после подтверждения текущих и новых значений. Исходные значения сохраняются и могут быть восстановлены.",
|
||||
"autoToggle": "Создавать миниатюры при импорте",
|
||||
"clear": "Очистить журнал",
|
||||
"restoreNames": "Восстановить имена/типы",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Spine缩略图",
|
||||
"noticeIntro": "导入 Spine 资产(.skel / .json + .atlas + 贴图)后,本插件会为还没设置缩略图的素材生成一张骨骼预览图。",
|
||||
"noticeSafety": "它只处理本次新导入的素材,不扫描、不修改历史素材,也不会覆盖你已经设置过的自定义缩略图。",
|
||||
"noticeCompound": "复合后缀素材只有在确认原值和新值后,才会调整 Eagle 的名称/类型字段;原值会保存并可恢复。",
|
||||
"noticeModes": "动态取骨骼里的第一个动画压成 WebP;静帧始终使用 setup pose。",
|
||||
"noticeDefault": "自动生成默认关闭,需要你在下面手动启用。",
|
||||
"noticeIntro": "功能:导入 Spine 资产(.skel / .json + .atlas + 贴图)后,本插件会为还没设置缩略图的素材生成一张骨骼预览图。",
|
||||
"noticeSafety": "1. 自动生成默认关闭,需要你在下面手动启用。它只处理本次新导入的素材,不会覆盖已经设置过的自定义缩略图。",
|
||||
"noticeCompound": "2. 复合后缀素材只有在确认原值和新值后,才会调整 Eagle 的名称/类型字段;原值会保存并可恢复。",
|
||||
"autoToggle": "导入时自动生成缩略图",
|
||||
"clear": "清空日志",
|
||||
"restoreNames": "恢复名称/类型",
|
||||
|
||||
@@ -6,11 +6,9 @@
|
||||
},
|
||||
"thumb": {
|
||||
"title": "Spine縮圖",
|
||||
"noticeIntro": "匯入 Spine 資產(.skel / .json + .atlas + 貼圖)後,此外掛會為尚未設定縮圖的素材產生骨骼預覽圖。",
|
||||
"noticeSafety": "只處理本次新匯入的素材,不掃描或修改歷史素材,也不會覆寫你已設定的自訂縮圖。",
|
||||
"noticeCompound": "複合副檔名素材只有在確認原始值和新值後,才會調整 Eagle 的名稱/類型欄位;原始值會保存並可還原。",
|
||||
"noticeModes": "動態會取第一個動畫並壓成 WebP;靜態一律使用 setup pose。",
|
||||
"noticeDefault": "自動產生預設為關閉,需要時請在下方手動啟用。",
|
||||
"noticeIntro": "功能:匯入 Spine 資產(.skel / .json + .atlas + 貼圖)後,此外掛會為尚未設定縮圖的素材產生一張骨骼預覽圖。",
|
||||
"noticeSafety": "1. 自動產生預設為關閉,需要時請在下方手動啟用。只處理本次新匯入的素材,不會覆寫已設定的自訂縮圖。",
|
||||
"noticeCompound": "2. 複合副檔名素材只有在確認原始值和新值後,才會調整 Eagle 的名稱/類型欄位;原始值會保存並可還原。",
|
||||
"autoToggle": "匯入時自動產生縮圖",
|
||||
"clear": "清除記錄",
|
||||
"restoreNames": "還原名稱/類型",
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--text);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; font-size: 13px; }
|
||||
body { display: flex; flex-direction: column; gap: 9px; padding: 14px; box-sizing: border-box; }
|
||||
h1 { font-size: 15px; margin: 0; font-weight: 600; text-align: center; }
|
||||
.notice { color: var(--dim); line-height: 1.6; background: var(--panel);
|
||||
border: 1px solid var(--border); border-radius: 6px; padding: 9px 11px; }
|
||||
.notice p { margin: 0 0 6px; }
|
||||
@@ -22,6 +21,9 @@
|
||||
/* 窗口窄的时候整组换行,而不是把标签压成一列一个字符。 */
|
||||
.toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
|
||||
.toolbar-group { display: flex; flex-wrap: wrap; gap: 8px; flex: 0 0 auto; }
|
||||
.toolbar-group.primary { flex: 1 1 auto; flex-wrap: nowrap; min-width: 0; }
|
||||
.toolbar-actions { display: flex; flex: 0 0 auto; gap: 8px; }
|
||||
.toolbar-group.primary .toggle-row { min-width: 220px; }
|
||||
#clear, #restoreNames { background: var(--panel); color: var(--text); border: 1px solid var(--border);
|
||||
border-radius: 6px; padding: 9px 12px; font: inherit; cursor: pointer; white-space: nowrap; }
|
||||
#clear:hover, #restoreNames:hover { border-color: var(--accent); color: var(--accent); }
|
||||
@@ -89,19 +91,18 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 data-i18n="thumb.title">Spine缩略图</h1>
|
||||
<div class="notice">
|
||||
<p data-i18n="thumb.noticeIntro">导入 Spine 资产(.skel / .json + .atlas + 贴图)后,本插件会为还没设置缩略图的素材生成一张骨骼预览图。</p>
|
||||
<p data-i18n="thumb.noticeSafety">它只处理本次新导入的素材,不扫描、不修改历史素材,也不会覆盖你已经设置过的自定义缩略图。</p>
|
||||
<p data-i18n="thumb.noticeCompound">复合后缀素材只有在确认原值和新值后,才会调整 Eagle 的名称/类型字段;原值会保存并可恢复。</p>
|
||||
<p data-i18n="thumb.noticeModes">动态取骨骼里的第一个动画压成 WebP;静帧始终使用 setup pose。</p>
|
||||
<p data-i18n="thumb.noticeDefault">自动生成默认关闭,需要你在下面手动启用。</p>
|
||||
<p data-i18n="thumb.noticeIntro">功能:导入 Spine 资产(.skel / .json + .atlas + 贴图)后,本插件会为还没设置缩略图的素材生成一张骨骼预览图。</p>
|
||||
<p data-i18n="thumb.noticeSafety">1. 自动生成默认关闭,需要你在下面手动启用。它只处理本次新导入的素材,不会覆盖已经设置过的自定义缩略图。</p>
|
||||
<p data-i18n="thumb.noticeCompound">2. 复合后缀素材只有在确认原值和新值后,才会调整 Eagle 的名称/类型字段;原值会保存并可恢复。</p>
|
||||
</div>
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-group">
|
||||
<div class="toolbar-group primary">
|
||||
<label class="toggle-row"><input type="checkbox" id="toggle"><span data-i18n="thumb.autoToggle">导入时自动生成缩略图</span></label>
|
||||
<button id="clear" type="button" data-i18n="thumb.clear">清空日志</button>
|
||||
<div class="toolbar-actions">
|
||||
<button id="clear" type="button" data-i18n="thumb.clear">清空日志</button>
|
||||
<button id="restoreNames" type="button" data-i18n="thumb.restoreNames">恢复名称/类型</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toolbar-group">
|
||||
<label class="mode-row"><span data-i18n="thumb.modeLabel">生成方式</span>
|
||||
|
||||
@@ -87,7 +87,6 @@ function createLibraryWatcher(options) {
|
||||
return false;
|
||||
}
|
||||
known = listItemDirs();
|
||||
onLog(t('thumb.watching', { path: imagesDir, count: known.size }));
|
||||
try {
|
||||
watcher = fs.watch(imagesDir, { persistent: true }, () => scheduleFlush());
|
||||
} catch (error) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
// 每次改动递增。Eagle 里的 service 插件是启动时加载并常驻的,改完代码必须重新加载插件
|
||||
// 才会生效;状态栏会显示这个版本号,方便确认加载的到底是不是最新代码。
|
||||
const VERSION = 'v73';
|
||||
const VERSION = 'v79';
|
||||
const SHOW_DEV_VERSION = false;
|
||||
|
||||
const path = require('path');
|
||||
@@ -736,7 +736,7 @@ async function start() {
|
||||
libraryPath = resolved;
|
||||
imagesDir = path.join(resolved, 'images');
|
||||
folderPaths = null; // 换库了,文件夹树重新读
|
||||
libraryEl.textContent = resolved;
|
||||
libraryEl.textContent = path.basename(resolved);
|
||||
setStatus(libraryWatcher.start(resolved) ? t('thumb.statusListening') : t('thumb.statusListenFailed'));
|
||||
}
|
||||
|
||||
@@ -906,9 +906,6 @@ if (typeof eagle === 'undefined') {
|
||||
window.SpinePluginPath = (plugin && plugin.path) || window.SpinePluginRoot;
|
||||
if (i18n) i18n.setLocale(eagle.app && eagle.app.locale);
|
||||
logVersion();
|
||||
log(t('thumb.pluginCreated', {
|
||||
name: (plugin && plugin.manifest && plugin.manifest.name) || t('thumb.title'),
|
||||
}));
|
||||
await initializeCompatStore();
|
||||
try {
|
||||
await loadSettings();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"id": "8f3a2c14-7d5e-4b91-a4c8-2e6f0b7d1935",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"platform": "all",
|
||||
"arch": "all",
|
||||
"name": "{{manifest.app.name}}",
|
||||
|
||||
Reference in new issue
Block a user