{ "manifest": { "app": { "name": "Miniaturas de Spine" } }, "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.", "autoToggle": "Generar miniaturas al importar", "clear": "Borrar registro", "restoreNames": "Restaurar nombres/tipos", "compoundConfirmTitle": "Confirmar cambio de extensión compuesta", "compoundConfirmIntro": "Debido a la naturaleza especial de los archivos con extensión compuesta, Eagle debe ajustar los campos de nombre y tipo de estos elementos para mostrar las miniaturas generadas. Los valores originales se guardarán y podrán restaurarse desde este complemento.", "compoundOldValue": "Actual", "compoundNewValue": "Nuevo", "compoundSkip": "Omitir y continuar", "compoundConfirm": "Aplicar cambios", "compoundConfirmSelected": "Aplicar seleccionados ({count})", "compoundSkipped": "Se omitió {label}: no se aprobó el cambio de extensión compuesta", "compoundSourceMismatch": "Se omitió {label}: el nombre de Eagle {current} no coincide con el archivo de origen {source}", "compoundCheckFailed": "No se pudo comprobar la extensión compuesta de {label}: {error}", "compoundNeedsConfirmation": "Se omitió {label}: los campos cambiaron después de confirmar; vuelve a revisarlo", "compoundBackupUnavailable": "No se pueden cambiar extensiones compuestas porque no se pudieron guardar los valores originales", "compoundRolledBack": "La generación falló; se restauraron el nombre y el tipo de {label}", "compoundRollbackFailed": "La generación falló y no se pudo restaurar {label} automáticamente: {error}", "restoreEmpty": "No hay cambios de nombre/tipo guardados para restaurar", "restoreTitle": "Seleccionar elementos para restaurar", "restoreIntro": "Estos elementos tienen valores originales guardados. Los elementos restaurables se seleccionan todos de forma predeterminada; los modificados por el usuario o ilegibles no se pueden seleccionar.", "restoreCurrent": "Actual", "restoreTarget": "Restaurar a", "restoreStatusReady": "El elemento se modificó a {fields}", "restoreStatusAlreadyOriginal": "Ya tiene el valor original; al confirmar solo se eliminará la copia de seguridad", "restoreStatusChanged": "Los campos actuales fueron modificados por el usuario y se omitirán", "restoreStatusMissing": "El elemento no existe y no se puede restaurar", "restoreStatusError": "No se pudieron leer los valores actuales y no se puede restaurar", "restoreCancel": "Cancelar", "restoreSelected": "Restaurar seleccionados ({count})", "restoreComplete": "Restauración completada: {success} correctos, {skipped} omitidos, {failed} fallidos.", "restoreFailed": "No se pudieron restaurar nombres/tipos: {error}", "modeLabel": "Modo de generación", "modeAnimated": "Animado (primera animación)", "modeStatic": "Estático (pose de configuración)", "strategyLabel": "Estrategia", "strategySize": "Archivo más pequeño (lento)", "strategySpeed": "Más rápido (rápido)", "statusLabel": "Estado", "statusStarting": "Iniciando…", "libraryLabel": "Biblioteca", "statsLabel": "Estadísticas", "filterAll": "Todo", "filterOk": "Correcto", "filterFail": "Fallido", "filterWarn": "Aviso", "filterError": "Error", "unknownError": "Error desconocido", "scriptError": "Error de script: {error}", "promiseError": "Error de Promise no controlado: {error}", "uncategorized": "Sin categoría", "reasonQuiet": "fin de actividad", "reasonFallback": "exploración de respaldo", "none": "ninguno", "complete": "completo", "incomplete": "incompleto", "statusLoaded": "Script {version} cargado; esperando eventos de Eagle…", "statusEagleMissing": "API de Eagle no disponible", "statusListening": "Supervisando", "statusListenFailed": "Error de supervisión", "statusAutoOff": "Supervisando (generación automática desactivada)", "statusNoLibrary": "Ruta de la biblioteca no disponible", "statusPairing": "Emparejando recursos nuevos…", "statusPairingProgress": "Emparejando {current}/{total}", "statusRendering": "Renderizando fotograma {current}/{total} ({queued} en cola)", "statusGenerating": "Generando miniaturas… quedan {queued}", "statusPaused": "En pausa (continúa o cancela en la ventana de progreso)", "statusAutoSkipped": "La generación automática está desactivada; se omitió este lote", "statusStartFailed": "Error al iniciar: {error}", "stats": "Lotes {batches} · Añadidos {added} · Spine {spine} · Completos {complete} · Generados {generated} · Omitidos {skipped} · Fallidos {failed}", "modulesMissing": "Módulos locales no cargados: {modules}", "moduleLoadError": "No se cargaron los módulos locales. Revisa el orden de scripts en index.html: {modules}", "version": "Versión del código del complemento {version}", "pluginCreated": "Complemento creado: {name}", "settingsReadFailed": "No se pudieron leer los ajustes; se usarán los valores predeterminados (generación automática desactivada): {error}", "settingsSaveFailed": "No se pudieron guardar los ajustes: {error}", "autoEnabled": "Generación automática activada. Los nuevos recursos de Spine importados recibirán miniaturas.", "autoDisabled": "Generación automática desactivada; se vació la cola pendiente.", "modeStaticLog": "Modo de generación: estático (siempre pose de configuración, PNG)", "modeAnimatedLog": "Modo de generación: animado (primera animación como WebP; pose de configuración si no hay animación)", "strategySpeedLog": "Estrategia: más rápida (estimación y solo los perfiles más pequeños)", "strategySizeLog": "Estrategia: archivo más pequeño (genera los diez perfiles y conserva el menor)", "missingItem": "Se omitió {label}: elemento no encontrado en Eagle", "suffixFixed": "Extensión compuesta corregida para {label} → {name}", "suffixFailed": "No se pudo corregir la extensión compuesta de {label}: {error}", "existingThumbnail": "Se omitió {label}: ya existe una miniatura personalizada", "thumbnailRejected": "Eagle rechazó esta miniatura", "generated": "{label} generado | {details} | Spine {version}", "generateFailed": "Error al generar {label}: {error}", "cancelled": "Generación cancelada: se descartaron {dropped} pendientes. Completados {done} (correctos {generated}, fallidos {failed}, omitidos {skipped})", "batchFailed": "Error al procesar el lote importado: {error}", "batchFinished": "Lote finalizado: {added} añadidos, {total} en la biblioteca ({reason})", "recheck": "Revisando de nuevo {count} recursos previamente incompletos", "noSpine": "No hay recursos de Spine en este lote", "incompletePending": "{count} recursos están incompletos y se revisarán tras importaciones posteriores", "incompleteIgnored": "{count} recursos están incompletos y no se procesaron en este lote", "itemSummary": " {name} | {path} | {state} | esqueleto {skeleton} | atlas {atlas} | páginas {pages} (faltan {missing})", "autoSkipped": "La generación automática está desactivada; se omitieron {count} recursos de este lote", "queued": "{added} añadidos a la cola; {queued} esperando{state}", "queuedRunning": " (procesando)", "libraryInfoNoPath": "library.info() no devolvió una ruta: {info}", "libraryInfoFailed": "Error de library.info(): {error}", "switchingLibrary": "Cambiando de biblioteca: {path}", "noCreateEvent": "No se recibió el evento de creación; intentando iniciar directamente", "watching": "Supervisando {path} ({count} elementos existentes tratados como historial)", "watchReadFailed": "No se pudo leer el directorio de recursos: {error}", "watchMissingDir": "No existe el directorio de recursos: {path}", "watchFailed": "No se pudo iniciar la supervisión: {error}", "fixSuffixAction": "Corrigiendo extensión compuesta de {label}", "renderAction": "Renderizando {label}", "setThumbnailAction": "Estableciendo miniatura de {label}", "thumbnailDetailsAnimated": "Animado {size}@{fps}fps/q{quality}/{kb}KB (objetivo {target}KB)/{frames} fotogramas/animación {animation}/{strategy}{limit}", "thumbnailDetailsStatic": "Estático {width}×{height}/{kb}KB{fallback}", "bestSpeed": "más rápido", "bestSize": "archivo más pequeño", "fallbackNote": " ({text})", "fallbackNoAnimation": "el esqueleto no tiene animaciones", "fallbackAnimatedFailed": "falló la generación animada: {error}", "limitNote": " (incluso el perfil más pequeño supera el objetivo; considera aumentar el tamaño de la miniatura)", "runSummary": "{generated} correctos, {failed} fallidos, {skipped} omitidos en {seconds} segundos." }, "progress": { "title": "Miniaturas de Spine", "generating": "Generando miniaturas animadas…", "waiting": "Esperando para iniciar…", "confirmPrompt": "¿Cancelar esta ejecución?", "resume": "Continuar", "cancel": "Confirmar cancelación", "stop": "Detener", "confirm": "Listo", "generatedConfirm": "Se generaron {done} miniaturas. ¿Cancelar esta ejecución?", "complete": "Completado", "completed": "Completado {done} / {total} ({percent}%)" } }