{
  "_meta": {
    "code": "es",
    "name": "Español",
    "direction": "ltr",
    "author": "STL Gallery Team",
    "version": "1.0.0"
  },
  "alert.new_tag_prompt": "Nombre de la nueva etiqueta:",
  "auto_tag.add_category": "Añadir categoría/etiqueta",
  "auto_tag.applied": "{count} archivos etiquetados",
  "auto_tag.apply": "Aplicar",
  "auto_tag.cancel": "Cancelar",
  "auto_tag.click_remove": "Clic para eliminar",
  "auto_tag.count": "{count} sugerencias",
  "auto_tag.error": "Error al cargar sugerencias.",
  "auto_tag.filter_all": "Todos",
  "auto_tag.loading": "Analizando archivos…",
  "auto_tag.no_suggestions": "Sin sugerencias — todos los archivos ya están etiquetados o no pudieron ser reconocidos.",
  "auto_tag.none_selected": "No se seleccionaron sugerencias.",
  "auto_tag.select_all": "Todos",
  "auto_tag.select_none": "Ninguno",
  "auto_tag.selected_label": "seleccionados",
  "auto_tag.sidebar_categories": "Categorías",
  "auto_tag.sidebar_confidence": "Confianza",
  "auto_tag.title": "Auto-etiquetado",
  "card.analyze_tooltip": "Analizar",
  "confirm.cancel": "Cancelar",
  "confirm.non_mesh_title": "Archivo {ext}",
  "confirm.non_mesh_msg": "STL Gallery no puede mostrar este archivo directamente. ¿Deseas abrirlo en el software asociado?",
  "confirm.non_mesh_open": "Abrir software",
  "confirm.delete_category": "¿Eliminar categoría \"{name}\"?",
  "confirm.delete_category_full": "¿Realmente deseas eliminar la categoría \"{name}\"?\n\nLa categoría se eliminará de todos los archivos.",
  "confirm.delete_tag": "¿Eliminar etiqueta \"{name}\"?",
  "confirm.delete_tag_full": "¿Realmente deseas eliminar la etiqueta \"{name}\"?\n\nLa etiqueta se eliminará de todos los archivos.",
  "confirm.remove_btn": "Eliminar",
  "confirm.remove_folder": "¿Eliminar carpeta de la biblioteca?\n\n{path}\n\nSe eliminarán todos los archivos indexados y las miniaturas.",
  "confirm.remove_folder_msg": "{path}\n\nSe eliminarán todos los archivos indexados y las miniaturas.",
  "confirm.remove_folder_title": "Eliminar carpeta",
  "confirm.remove_subfolder": "¿Eliminar todos los archivos de la subcarpeta?\n\n{name}\n\nSe eliminarán los archivos indexados y las miniaturas. La carpeta se mantendrá.",
  "confirm.remove_subfolder_msg": "{name}\n\nSe eliminarán los archivos indexados y las miniaturas. La carpeta se mantendrá.",
  "confirm.remove_subfolder_title": "Eliminar subcarpeta",
  "confirm.restart_server": "¿Realmente deseas reiniciar el servidor?\n\nLa página se recargará automáticamente después del reinicio.",
  "confirm.untag_all_category": "¿Quitar todos los archivos de la categoria \"{name}\"?\n\nLa categoria permanecera.",
  "confirm.untag_all_tag": "¿Quitar todos los archivos de la etiqueta \"{name}\"?\n\nLa etiqueta permanecera.",
  "ctx.auto_tag": "Sugerir auto-etiqueta",
  "ctx.link_gcode": "Vincular GCode",
  "ctx.link_gcode_reverse": "Vincular a modelo",
  "gcode.match.detected": "GCode detectado",
  "ctx.categories_header": "CATEGORÍAS",
  "ctx.clear_all_categories": "📂 Quitar todas las categorias",
  "ctx.clear_all_tags": "🏷 Quitar todas las etiquetas",
  "ctx.complete_3mf": "📦 3MF completo",
  "ctx.configure_slicer": "⚙️ Configurar slicer",
  "ctx.delete_file": "🗑 Eliminar",
  "ctx.download": "📥 Descargar",
  "ctx.find_similar": "Buscar similares",
  "ctx.folder.pin": "Fijar carpeta",
  "ctx.folder.regen_thumbs": "🖼 Regenerar miniaturas",
  "ctx.folder.reindex": "🔄 Reindexar",
  "ctx.folder.remove_files": "🗑 Eliminar archivos",
  "ctx.folder.remove_from_list": "🗑 Eliminar de la lista",
  "ctx.folder.rescan": "🔄 Reescanear",
  "ctx.folder.unpin": "Desfijar",
  "ctx.group.open_explorer": "📂 Abrir en gestor de archivos",
  "ctx.group.pin": "Fijar carpeta",
  "ctx.group.regen_thumbs": "🖼 Regenerar miniaturas",
  "ctx.group.rescan": "🔄 Reescanear",
  "ctx.group.unpin": "Desfijar",
  "ctx.mark_seen": "✓ Marcar como visto",
  "ctx.new_files.mark_all_seen": "✓ Marcar todo como visto",
  "ctx.new_tag": "+ Nueva etiqueta...",
  "ctx.open_explorer": "📂 Abrir en explorador",
  "ctx.rating_label": "Valoración:",
  "ctx.regen_thumb": "🔄 Regenerar miniatura",
  "ctx.remove_favorite": "★ Quitar favorito",
  "ctx.selection": "🔹 Selección: {name}",
  "ctx.send_to": "Enviar a {name}",
  "ctx.send_to_slicer": "🖨 Enviar al slicer",
  "ctx.set_favorite": "☆ Marcar como favorito",
  "ctx.tag_cat.delete": "🗑 Eliminar",
  "ctx.tag_cat.edit": "✏️ Editar",
  "ctx.tag_cat.regen_thumbs": "🔄 Regenerar miniaturas",
  "ctx.tag_cat.untag_all": "🏷 Quitar todos los archivos",
  "ctx.tag_cat.keywords_label": "Search terms:",
  "ctx.tag_cat.no_keywords": "No search terms defined",
  "ctx.tag_cat.auto_scan": "🔍 Run auto-scan",
  "ctx.tags_header": "ETIQUETAS",
  "dashboard.chart.week_short": "S {nr}",
  "dashboard.dup.duplicate_files": "Archivos duplicados ({size} desperdiciado)",
  "dashboard.dup.groups": "Grupos de duplicados",
  "dashboard.dup.none_found": "No se encontraron duplicados",
  "dashboard.dup.open_manager": "Abrir gestor de duplicados →",
  "dashboard.empty.chartjs_unavailable": "Chart.js no disponible",
  "dashboard.empty.loading": "Cargando…",
  "dashboard.empty.no_categories": "No hay categorías asignadas",
  "dashboard.empty.no_prints": "Aún no hay impresiones",
  "dashboard.empty.no_tags": "No hay etiquetas disponibles",
  "dashboard.empty.no_time_data": "Aún no hay datos temporales",
  "dashboard.fmt.billion": "Md",
  "dashboard.fmt.million": "M",
  "dashboard.fmt.million_short": "M",
  "dashboard.fmt.thousand_short": "K",
  "dashboard.header": "📊 Dashboard",
  "dashboard.kpi.favorites": "Favoritos",
  "dashboard.kpi.favorites_pct": "Favoritos ({pct}%)",
  "dashboard.kpi.files": "Archivos",
  "dashboard.kpi.format_ratio": "STL / 3MF / OBJ",
  "dashboard.kpi.total_size": "Tamaño total",
  "dashboard.kpi.total_triangles": "Total de triángulos",
  "dashboard.rating.no_files": "Sin archivos",
  "dashboard.rating.unrated": "{count} archivos sin valoración",
  "dashboard.tile.categories": "📂 Categorías",
  "dashboard.tile.duplicates": "🔍 Duplicados",
  "dashboard.tile.format_distribution": "🍩 Distribución de formatos",
  "dashboard.tile.material_ranking": "🧵 Ranking de materiales",
  "dashboard.tile.most_printed": "🏆 Top 5 más impresos",
  "dashboard.tile.print_timeline": "🖨️ Línea temporal de impresiones (meses)",
  "dashboard.tile.ratings": "⭐ Valoraciones",
  "dashboard.tile.recently_added": "📈 Añadidos recientemente (semanas)",
  "dashboard.tile.tag_cloud": "🏷️ Nube de etiquetas",
  "dashboard.tile.triangle_details": "🔺 Detalles de triángulos",
  "dashboard.tile.triangle_histogram": "📊 Histograma de triángulos",
  "dashboard.tri.average": "Promedio",
  "dashboard.tri.fewest": "Mínimo",
  "dashboard.tri.most": "Máximo",
  "dashboard.tri.total": "Total",
  "error.folder_not_found": "Carpeta principal no encontrada",
  "error.generic": "Error: {message}",
  "error.http": "Error {status}",
  "error.scan_failed": "Error al indexar: {status}",
  "error.slicer_failed": "No se pudo iniciar el slicer",
  "error.subfolder_scan_failed": "Error al escanear: {status}",
  "error.tag_exists": "La etiqueta ya existe",
  "format.object_single": "Objeto {index}",
  "format.objects": "Objetos",
  "gallery.all_objects": "Todos ({count} objetos)",
  "gallery.corrupt_file": "⚠ corrupto",
  "gallery.empty": "No se encontraron archivos STL.",
  "gallery.file_count": "{count} archivos",
  "gallery.indexing": "Indexando...",
  "gallery.jump_to_singles": "⬇ Ir a archivos individuales",
  "gallery.loading": "Cargando archivos...",
  "gallery.mesh_warning": "Problemas de malla detectados",
  "gallery.new_ribbon": "NUEVO",
  "gallery.object_nav_next": "Objeto siguiente",
  "gallery.object_nav_prev": "Objeto anterior",
  "gallery.plugin.open_app": "Abrir {app}",
  "gallery.plugin.open_slicer": "Abrir Slicer",
  "gallery.scroll_top": "Ir arriba",
  "gcode_archive.details": "Detalles",
  "gcode_archive.empty": "Aún no hay impresiones archivadas. Envía un archivo al slicer y sube el .gcode.3mf en el panel de registro de impresión.",
  "gcode_archive.reprint": "🔄 Reimprimir",
  "gcode_archive.title": "🖨 Reimprimir trabajos",
  "header.dashboard": "Dashboard",
  "header.debug_monitor": "Monitor de depuración",
  "header.file_count": "{count} archivos",
  "header.home": "Ir al inicio",
  "header.refresh": "Actualizar",
  "header.rescan": "Reescanear",
  "header.settings": "Ajustes",
  "header.theme_toggle": "Cambiar tema",
  "header.to_gallery": "Ir a la galería",
  "modal.add_category.edit_title": "✏️ Editar categoría",
  "modal.add_category.icon_btn_title": "Elegir icono",
  "modal.add_category.name_placeholder": "Nombre de la categoría",
  "modal.add_category.no_results": "Sin resultados",
  "modal.add_category.search_placeholder": "Buscar...",
  "modal.add_category.tab_emoji": "😀 Emoji",
  "modal.add_category.tab_tech": "🔧 Técnico",
  "modal.add_category.title": "➕ Añadir categoría",
  "modal.add_category.iconify_search_placeholder": "Search icons...",
  "modal.add_category.iconify_searching": "Searching...",
  "modal.add_category.iconify_offline": "No internet connection",
  "modal.add_category.iconify_error": "Search failed",
  "modal.add_category.emoji_fallback_link": "Choose emoji →",
  "modal.add_category.iconify_back_link": "← Online search",
  "modal.add_category.keywords_label": "Search terms (for auto-scan)",
  "modal.add_category.keyword_placeholder": "Enter search term...",
  "modal.add_category.keyword_hint": "Enter to add · × to remove",
  "modal.add_tag.edit_title": "🏷 Renombrar etiqueta",
  "modal.add_tag.name_placeholder": "Nombre de la etiqueta",
  "modal.add_tag.title": "🏷 Añadir etiqueta",
  "modal.delete_confirm.cancel": "Cancelar",
  "modal.delete_confirm.checkbox": "No mostrar este mensaje de nuevo",
  "modal.delete_confirm.delete": "Eliminar",
  "modal.delete_confirm.msg": "¿Deseas mover este archivo a la papelera?",
  "modal.delete_confirm.title": "Eliminar archivo",
  "modal.duplicate_finder.all_cleaned_msg": "¡Buen trabajo! 🎉",
  "modal.duplicate_finder.all_cleaned_title": "¡Todos los duplicados limpiados!",
  "modal.duplicate_finder.duplicate_files": "archivos duplicados",
  "modal.duplicate_finder.error": "Error al cargar los duplicados.",
  "modal.duplicate_finder.groups": "Grupos",
  "modal.duplicate_finder.loading": "Buscando duplicados...",
  "modal.duplicate_finder.move_to_trash": "Mover a la papelera",
  "modal.duplicate_finder.no_duplicates_msg": "¡Todos los archivos de tu biblioteca son únicos! 🎉",
  "modal.duplicate_finder.no_duplicates_title": "No se encontraron duplicados",
  "modal.duplicate_finder.refresh": "🔄 Actualizar",
  "modal.duplicate_finder.refresh_title": "Comprobar de nuevo",
  "modal.duplicate_finder.sort_count": "Cantidad",
  "modal.duplicate_finder.sort_date": "Fecha (más antiguo)",
  "modal.duplicate_finder.sort_name": "Nombre",
  "modal.duplicate_finder.sort_size": "Tamaño",
  "modal.duplicate_finder.title": "🔍 Buscar duplicados",
  "modal.duplicate_finder.trash_btn": "🗑️ Papelera",
  "modal.duplicate_finder.wasted_space": "~ {size} de espacio desperdiciado",
  "modal.duplicate_trash.confirm_empty": "⚠️ ¿Eliminar permanentemente todos los archivos de la papelera?",
  "modal.duplicate_trash.delete_all": "🗑️ Eliminar todo permanentemente",
  "modal.duplicate_trash.delete_permanent": "Eliminar permanentemente",
  "modal.duplicate_trash.empty_msg": "No se encontraron duplicados eliminados.",
  "modal.duplicate_trash.empty_title": "La papelera está vacía",
  "modal.duplicate_trash.error": "Error al cargar.",
  "modal.duplicate_trash.files": "Archivos",
  "modal.duplicate_trash.loading": "Cargando...",
  "modal.duplicate_trash.moved_at": "Movido: {date} · {size}",
  "modal.duplicate_trash.restore": "Restaurar",
  "modal.duplicate_trash.space_used": "{size} usado",
  "modal.duplicate_trash.title": "🗑️ Duplicados eliminados",
  "modal.file_browser.add_btn": "Añadir",
  "modal.file_browser.add_count_btn": "Añadir {count} carpetas",
  "modal.file_browser.already_added": "✓ Añadida",
  "modal.file_browser.breadcrumb_root": "Equipo",
  "modal.file_browser.browse_label": "Explorar carpetas",
  "modal.file_browser.loading": "Cargando...",
  "modal.file_browser.no_subfolders": "Sin subcarpetas",
  "modal.file_browser.path_placeholder": "Introduce una ruta o navega arriba...",
  "modal.file_browser.quick_access": "Acceso rápido",
  "modal.file_browser.title": "📁 Seleccionar carpeta",
  "modal.manual_path.description": "Introduce la ruta completa a tu carpeta de STL.<br>También puede ser una unidad de red.",
  "modal.manual_path.placeholder": "/home/usuario/Modelos-3D o ruta de red",
  "modal.manual_path.title": "⌨ Introducir ruta",
  "modal.missing_folder.checking": "Comprobando...",
  "modal.missing_folder.ignore": "Ignorar",
  "modal.missing_folder.info": "Los archivos indexados y las miniaturas siguen disponibles, pero la carpeta ya no existe o se ha movido.",
  "modal.missing_folder.intro": "No se pudo encontrar la siguiente carpeta:",
  "modal.missing_folder.not_found_again": "La carpeta sigue sin encontrarse. Por favor, verifica que la ruta sea correcta y accesible.",
  "modal.missing_folder.remove_files": "🗑 Limpiar archivos",
  "modal.missing_folder.remove_folder": "🗑 Eliminar carpeta",
  "modal.missing_folder.removing": "Eliminando...",
  "modal.missing_folder.retry": "🔄 Reintentar",
  "modal.missing_folder.scan_error": "Error al escanear: HTTP {status}",
  "modal.missing_folder.title": "⚠️ Carpeta no encontrada",
  "modal.scan_wait.discovering": "{count} archivos encontrados…",
  "modal.scan_wait.progress": "{done} / {total} archivos procesados",
  "modal.scan_wait.text": "El escaneo inicial puede tardar un tiempo en carpetas grandes. Los archivos aparecerán gradualmente en la galería.",
  "modal.scan_wait.title": "⏳ Escaneando",
  "modal.server_down.close": "Cerrar ventana",
  "modal.server_down.reload": "Recargar página",
  "modal.server_down.text": "Se perdió la conexión con el servidor. El servidor (server.py) ya no está en ejecución.",
  "modal.server_down.title": "Servidor inaccesible",
  "modal.settings.title": "⚙️ Ajustes",
  "modal.trash.confirm_empty": "⚠️ ¿Eliminar permanentemente todos los archivos de la papelera?",
  "modal.trash.delete_all": "🗑 Eliminar todo permanentemente",
  "modal.trash.delete_permanent": "Eliminar permanentemente",
  "modal.trash.empty_msg": "No hay archivos eliminados.",
  "modal.trash.empty_title": "La papelera está vacía",
  "modal.trash.error": "Error al cargar.",
  "modal.trash.files": "archivos",
  "modal.trash.loading": "Cargando...",
  "modal.trash.moved_at": "Eliminado: {date} · {size}",
  "modal.trash.restore": "Restaurar",
  "modal.trash.space_used": "{size} usado",
  "modal.trash.title": "🗑 Papelera",
  "print.default_title": "Registrar impresión",
  "print.discard": "Descartar",
  "print.history_title": "Historial de impresiones",
  "print.hours_ago": "hace {n} h",
  "print.just_now": "ahora mismo",
  "print.minutes_ago": "hace {n} min",
  "print.more_pending": "más impresiones",
  "print.prints": "impresiones",
  "print_overlay.bed": "Cama",
  "print_overlay.brim": "Brim",
  "print_overlay.btn.discard": "No guardar",
  "print_overlay.btn.later": "Más tarde",
  "print_overlay.btn.reprint": "🔄 Reimprimir",
  "print_overlay.btn.save": "💾 Archivar GCode y guardar",
  "print_overlay.btn.update": "💾 Actualizar",
  "print_overlay.fil_color": "Color",
  "print_overlay.fil_cost": "Coste",
  "print_overlay.fil_diameter": "Diámetro",
  "print_overlay.fil_profile": "Perfil",
  "print_overlay.fil_type": "Tipo",
  "print_overlay.fil_used": "Usado",
  "print_overlay.fil_weight": "Peso",
  "print_overlay.first_layer": "Primera capa",
  "print_overlay.gcode_version": "Versión de GCode",
  "print_overlay.gcode_version_label": "v{version}",
  "print_overlay.gcode_version_latest": "(actual)",
  "print_overlay.gcode_version_legacy": "Legacy",
  "print_overlay.infill": "Relleno",
  "print_overlay.inner_wall": "Pared interior",
  "print_overlay.ironing": "Planchado",
  "print_overlay.kpi.height": "Altura",
  "print_overlay.kpi.layers": "Capas",
  "print_overlay.kpi.length": "Filamento",
  "print_overlay.kpi.time": "Tiempo de impresión",
  "print_overlay.kpi.weight": "Peso",
  "print_overlay.layer_height": "Altura de capa",
  "print_overlay.notes_placeholder": "Notas de impresión... (calidad, problemas, posprocesado, mejoras)",
  "print_overlay.nozzle": "Boquilla",
  "print_overlay.nozzle_temp": "Temp. boquilla",
  "print_overlay.outer_wall": "Pared exterior",
  "print_overlay.print_profile": "Perfil de impresión",
  "print_overlay.printer": "Impresora",
  "print_overlay.saved": "Trabajo de impresión guardado",
  "print_overlay.status.cancelled": "⏹ Cancelado",
  "print_overlay.status.failed": "❌ Fallido",
  "print_overlay.status.printed": "✅ Impreso con éxito",
  "print_overlay.support": "Soporte",
  "print_overlay.tile.filament": "Filamento",
  "print_overlay.tile.log": "Registrar impresión",
  "print_overlay.tile.plate": "Vista previa de la placa",
  "print_overlay.tile.platform": "Plataforma y hardware",
  "print_overlay.tile.settings": "Ajustes de impresión",
  "print_overlay.tile.speed": "Velocidad",
  "print_overlay.title": "🖨️ Registrar impresión",
  "print_overlay.top_bottom": "Superior / Inferior",
  "print_overlay.upload_hint": "Arrastra un .gcode.3mf aquí<br>o haz clic para subir",
  "print_overlay.uploaded": "GCode analizado y archivado",
  "print_overlay.uploading": "Subiendo GCode...",
  "print_overlay.walls": "Paredes",
  "print_popup.dismiss": "Más tarde",
  "print_popup.hours_placeholder": "Hrs",
  "print_popup.hours_unit": "h",
  "print_popup.material_placeholder": "Material (PLA, PETG...)",
  "print_popup.minutes_placeholder": "Min",
  "print_popup.minutes_unit": "m",
  "print_popup.notes_placeholder": "Notas de impresión...",
  "print_popup.save": "Guardar",
  "print_popup.saving": "Guardando...",
  "print_popup.status.cancelled": "⏹ Cancelado",
  "print_popup.status.failed": "❌ Fallido",
  "print_popup.status.printed": "✅ Impreso",
  "print_popup.title": "🖨 ¿Impreso?",
  "renderer_warn.dismiss": "✕ Entendido",
  "renderer_warn.message": "La indexación es aprox. 20–100× más lenta sin <code>stl_thumb</code>. Por favor, ejecuta <code>build.bat</code> (Windows) o <code>build.sh</code> (Linux) y reinicia el servidor.",
  "restart.failed": "El servidor no responde. Por favor, reinícialo manualmente.",
  "restart.reconnected": "¡El servidor está de vuelta! Recargando página…",
  "restart.title": "El servidor se está reiniciando…",
  "restart.waiting": "Esperando al servidor…",
  "restart.waiting_count": "Esperando al servidor… ({seconds}s)",
  "scan.complete_notification": "¡Escaneo completado!",
  "scan.eta_calculating": "Calculando ETA…",
  "scan.loading_thumbnails": "Cargando miniaturas...",
  "scan.phase_discovery": "Descubriendo archivos...",
  "scan.status": "Indexando: {file} ({done}/{total})",
  "scan.status_queue": "Indexando: {file} ({done}/{total}) (Carpeta {queue_done}/{queue_total})",
  "scan.thumbnail_progress": "Miniaturas: {done}/{total}",
  "settings.auto_tag.auto_run_none": "No se realizaron cambios",
  "settings.auto_tag.auto_run_result": "{count} archivos recibieron un AutoTag",
  "settings.auto_tag.cleanup_result": "{count} archivos eliminados de la categoria",
  "settings.auto_tag.keywords_desc": "Define palabras clave por categoria. Confirmar con Enter, × para eliminar, doble clic para editar. Los archivos con estos terminos en su nombre o ruta se asignaran automaticamente.",
  "settings.auto_tag.keywords_placeholder": "p.ej. gear, bracket, mount...",
  "settings.auto_tag.keywords_remove": "Eliminar",
  "settings.auto_tag.keywords_save": "Guardar palabras clave",
  "settings.auto_tag.keywords_saved": "Palabras clave guardadas",
  "settings.auto_tag.keywords_title": "Asignacion de palabras clave",
  "settings.auto_tag.overwrite": "Incluir archivos ya etiquetados",
  "settings.auto_tag.run": "Ejecutar ahora",
  "settings.auto_tag.suggestions_add": "Asignar a categoria",
  "settings.auto_tag.suggestions_desc": "Terminos frecuentes en tu biblioteca. Haz clic en + para asignar una palabra a una categoria.",
  "settings.auto_tag.suggestions_empty": "No se encontraron sugerencias",
  "settings.auto_tag.suggestions_loading": "Cargando...",
  "settings.auto_tag.suggestions_title": "Sugerencias de nombres de archivo",
  "settings.auto_tag.title": "Auto-etiquetado",
  "settings.btn.cancel": "Cancelar",
  "settings.btn.save": "Guardar",
  "settings.colors.badge_3mf": "Insignia 3MF",
  "settings.colors.badge_obj": "Insignia OBJ",
  "settings.colors.badge_stl": "Insignia STL",
  "settings.colors.model_dark": "Modelo (Oscuro)",
  "settings.colors.model_light": "Modelo (Claro)",
  "settings.colors.title": "🎨 Colores",
  "settings.controls.invert_pan_h": "Invertir desplazamiento H",
  "settings.controls.invert_pan_v": "Invertir desplazamiento V",
  "settings.controls.invert_rot_h": "Invertir rotación H",
  "settings.controls.invert_rot_v": "Invertir rotación V",
  "settings.controls.title": "🔄 Controles del visor 3D",
  "settings.delete.no_confirm_hint": "Mover archivos directamente a la papelera sin diálogo de confirmación",
  "settings.delete.no_confirm_label": "Eliminar sin confirmación",
  "settings.delete.title": "🗑 Eliminar archivos",
  "settings.delete.view_trash_btn": "📂 Ver papelera",
  "settings.dup_trash.description": "Los duplicados movidos aquí se pueden restaurar o eliminar permanentemente.",
  "settings.dup_trash.title": "🗑️ Papelera de duplicados",
  "settings.dup_trash.view_btn": "📂 Ver duplicados eliminados",
  "settings.gallery.default_sort.desc": "Criterio de ordenación al iniciar la galería",
  "settings.gallery.group_default": "Agrupar objetos automáticamente",
  "settings.gallery.default_sort.label": "Ordenación predeterminada",
  "settings.gallery.default_sort_order.date.asc": "Más antiguo primero",
  "settings.gallery.default_sort_order.date.desc": "Más reciente primero",
  "settings.gallery.default_sort_order.label": "Dirección de ordenación",
  "settings.gallery.default_sort_order.name.asc": "A → Z",
  "settings.gallery.default_sort_order.name.desc": "Z → A",
  "settings.gallery.default_sort_order.rating.asc": "Menor primero",
  "settings.gallery.default_sort_order.rating.desc": "Mayor primero",
  "settings.gallery.default_sort_order.size.asc": "Más pequeño primero",
  "settings.gallery.default_sort_order.size.desc": "Más grande primero",
  "settings.gallery.default_sort_order.triangles.asc": "Menos primero",
  "settings.gallery.default_sort_order.triangles.desc": "Más primero",
  "settings.gallery.title": "🖼 Galería y visualización",
  "settings.gallery.ui_scale": "Tamaño de la interfaz",
  "settings.gallery.ui_scale.large": "Grande",
  "settings.gallery.ui_scale.medium": "Mediano",
  "settings.gallery.ui_scale.small": "Pequeño",
  "settings.gallery.ui_scale.standard": "Estándar",
  "settings.gallery.ui_scale.xlarge": "Extra grande",
  "settings.info.auto_tag_overwrite": "Cuando está activado, las etiquetas existentes se reemplazan por las generadas automáticamente. De lo contrario, solo se añaden etiquetas nuevas.",
  "settings.info.badge_color": "Color de la insignia del formato de archivo en la galería.",
  "settings.info.bed_preset": "Selecciona una cama de impresión preconfigurada con las dimensiones de tu impresora.",
  "settings.info.bed_toggle": "Muestra una cama de impresión a escala debajo del modelo 3D en el visor.",
  "settings.info.debug": "Abre un monitor en vivo con registros del escáner, servidor y vigilante en el navegador.",
  "settings.info.default_sort": "Define cómo se ordenan los archivos por defecto en la galería.",
  "settings.info.default_sort_order": "Orden ascendente o descendente.",
  "settings.info.delete_no_confirm": "Los archivos se mueven a la papelera directamente sin diálogo de confirmación.",
  "settings.info.full_3mf": "Analiza todos los archivos 3MF inmediatamente en lugar de cargarlos de forma diferida. Ralentiza significativamente el escaneo.",
  "settings.info.hidden_folders": "Las carpetas que empiezan con punto o guion bajo se omiten durante el escaneo.",
  "settings.info.invert_pan_h": "Invierte la dirección de desplazamiento horizontal en el visor 3D.",
  "settings.info.invert_pan_v": "Invierte la dirección de desplazamiento vertical en el visor 3D.",
  "settings.info.invert_rot_h": "Invierte la dirección de rotación horizontal en el visor 3D.",
  "settings.info.invert_rot_v": "Invierte la dirección de rotación vertical en el visor 3D.",
  "settings.info.language": "Cambia el idioma de toda la interfaz. 'Auto' detecta el idioma del navegador.",
  "settings.info.model_dark": "Color del modelo 3D en el visor con tema oscuro.",
  "settings.info.model_light": "Color del modelo 3D en el visor con tema claro.",
  "settings.info.print_delay": "Después de enviar al slicer, aparece un popup de registro de impresión tras esta demora.",
  "settings.info.group_default": "Cuando está activado, los archivos se agrupan automáticamente por carpeta en cada cambio de vista. El botón de agrupación en la barra de herramientas se puede alternar temporalmente.",
  "settings.info.ratings": "Activa el sistema de valoración de 5 estrellas en la galería y el visor.",
  "settings.info.ui_scale": "Agranda o reduce todos los elementos de la interfaz (tarjetas, texto, botones).",
  "settings.info.watcher_enabled": "Monitoriza automáticamente las carpetas de la biblioteca en busca de archivos nuevos, modificados o eliminados.",
  "settings.info.watcher_interval": "Tiempo entre comprobaciones. Intervalos más cortos detectan cambios más rápido pero consumen más recursos.",
  "settings.info.watcher_notify": "Muestra una notificación del navegador cuando se encuentran archivos nuevos durante el escaneo automático.",
  "settings.info.workers": "Número de procesos paralelos para la generación de miniaturas. Más workers = escaneo más rápido, pero mayor uso de CPU.",
  "settings.language.auto": "Auto (Navegador)",
  "settings.language.desc": "Detección automática del navegador o selección manual",
  "settings.language.label": "🌐 Idioma",
  "settings.performance.debug_hint": "Consolas en vivo del escáner, servidor y vigilante en el navegador",
  "settings.performance.debug_label": "Monitor de depuración",
  "settings.performance.expert_badge": "EXPERTO",
  "settings.performance.full_3mf_hint": "⚠ ¡Ralentiza enormemente el escaneo! Analiza todos los archivos 3MF inmediatamente en lugar de cargarlos de forma diferida. Útil para la detección de similitudes.",
  "settings.performance.full_3mf_label": "Análisis completo de 3MF",
  "settings.performance.restart_btn": "⟳ Reiniciar servidor",
  "settings.performance.restart_hint": "Solo necesario en caso de inestabilidad",
  "settings.performance.title": "⚡ Ajustes avanzados de rendimiento",
  "settings.performance.warning_msg": "Una configuración incorrecta puede afectar gravemente al rendimiento.",
  "settings.performance.warning_title": "¡Solo para usuarios experimentados!",
  "settings.performance.workers_hint": "Número de procesos paralelos del renderizador C durante el escaneo (1–4)",
  "settings.performance.workers_label": "Workers de escaneo",
  "settings.scanner.exclude_add": "Añadir carpeta",
  "settings.scanner.exclude_empty": "No hay carpetas excluidas",
  "settings.scanner.exclude_hint": "Estas carpetas se ignorarán durante el escaneo y la vigilancia de archivos.",
  "settings.scanner.exclude_manage": "Gestionar carpetas",
  "settings.scanner.exclude_modal_done": "Listo",
  "settings.scanner.exclude_modal_title": "Excluir carpetas",
  "settings.scanner.exclude_remove_title": "Clic para eliminar",
  "settings.scanner.exclude_title": "Carpetas excluidas",
  "settings.shortcut.create_btn": "Crear acceso directo",
  "settings.shortcut.description": "Crea un acceso directo en el escritorio para iniciar STL Gallery directamente.",
  "settings.shortcut.title": "Acceso directo de escritorio",
  "settings.sidebar.add_new": "+ Nuevo",
  "settings.sidebar.click_to_rename": "Clic para renombrar",
  "settings.sidebar.edit_label": "Editar",
  "settings.sidebar.edit_title": "Editar (nombre e icono)",
  "settings.sidebar.manage_categories": "📁 Gestionar categorías",
  "settings.sidebar.manage_tags": "🏷 Gestionar etiquetas",
  "settings.sidebar.no_categories": "No hay categorías disponibles",
  "settings.sidebar.no_tags": "No hay etiquetas disponibles",
  "settings.sidebar.ratings_hint": "Mostrar valoraciones con estrellas en la galería y el visor",
  "settings.sidebar.ratings_label": "⭐ Sistema de valoración",
  "settings.sidebar.title": "📋 Barra lateral y funciones",
  "settings.slicer.add_btn": "+ Añadir slicer",
  "settings.slicer.all_added": "Todos los slicers detectados ya están añadidos ✓",
  "settings.slicer.args_hint": "Args: <code>{file}</code> será reemplazado por la ruta del STL",
  "settings.slicer.count": "{count} slicers configurados",
  "settings.slicer.delete_title": "Eliminar",
  "settings.slicer.detect_btn": "🔍 Detectar slicers",
  "settings.slicer.detect_error": "Error en la detección",
  "settings.slicer.detecting": "🔍 Buscando...",
  "settings.slicer.name_placeholder": "Nombre (ej. BambuStudio)",
  "settings.slicer.none_found": "No se encontraron slicers. Añádelos manualmente.",
  "settings.slicer.path_placeholder": "Ruta al .exe",
  "settings.slicer.title": "🖨 Configuración de Slicer",
  "settings.thumbnails.hidden_folders": "📂 Ignorar carpetas ocultas",
  "settings.thumbnails.hidden_folders_hint": "Omitir carpetas con prefijo . o _",
  "settings.thumbnails.scan_hint": "El cambio se aplicará en el próximo escaneo. Puede ser necesario regenerar las miniaturas.",
  "settings.thumbnails.title": "📷 Miniaturas y escáner",
  "settings.ui_scale.label": "Tamaño de la interfaz",
  "settings.viewer.bed_preset": "Preset de impresora",
  "settings.viewer.bed_preset_pick": "— Seleccionar impresora —",
  "settings.viewer.bed_title": "Cama de impresión",
  "settings.viewer.bed_toggle": "Mostrar cama de impresión en el visor",
  "settings.viewer.bed_x": "Ancho (X) mm",
  "settings.viewer.bed_y": "Profundidad (Y) mm",
  "settings.viewer.bed_z": "Altura (Z) mm",
  "settings.watcher.enabled_hint": "Detectar automáticamente archivos nuevos/modificados",
  "settings.watcher.enabled_label": "Vigilar carpetas",
  "settings.watcher.interval.1m": "1 minuto",
  "settings.watcher.interval.30s": "30 segundos",
  "settings.watcher.interval.5m": "5 minutos",
  "settings.watcher.interval.5s": "5 segundos",
  "settings.watcher.interval_hint": "Con qué frecuencia comprueba el vigilante",
  "settings.watcher.interval_label": "Intervalo de escaneo automático",
  "settings.watcher.notify_hint": "Notificación del navegador al completar el escaneo",
  "settings.watcher.notify_label": "🔔 Notificación de escritorio",
  "settings.watcher.print_delay_label": "Retardo del popup (impresión)",
  "settings.watcher.print_delay_unit": "Min",
  "settings.gcode_watch.title": "Vigilancia GCode",
  "settings.gcode_watch.enabled": "Detectar archivos GCode automáticamente",
  "settings.gcode_watch.folders_label": "Carpetas vigiladas",
  "settings.gcode_watch.default_tag": "Estándar",
  "settings.gcode_watch.add_folder": "+ Añadir carpeta",
  "gcode.toast.detected": "GCode detectado",
  "gcode.toast.pending_match": "Cola",
  "gcode.toast.library_match": "coincide con",
  "gcode.toast.no_match": "No se encontró archivo coincidente",
  "gcode.toast.import_button": "Importar",
  "gcode.toast.ignore_button": "Ignorar",
  "gcode.toast.assign_button": "Asignar manualmente",
  "gcode.toast.import_success": "GCode importado",
  "gcode.toast.import_error": "Error al importar GCode",
  "gcode.toast.converting_stl": "STL convertido",
  "gcode.match.title": "GCode detectado",
  "gcode.match.target": "Archivo destino",
  "gcode.match.confirm": "Vincular",
  "gcode.match.cancel": "Cancelar",
  "gcode.match.only_3mf_tooltip": "Solo los modelos 3MF pueden incrustar GCode — guardar como 3MF en el slicer",
  "gcode.picker.title": "Asignar archivo",
  "gcode.picker.search_placeholder": "Buscar nombre de archivo...",
  "gcode.link.title": "Vincular GCode",
  "gcode.link.default_folders": "Carpetas predeterminadas",
  "gcode.link.folder": "Carpeta",
  "gcode.link.no_gcode": "No se encontraron archivos GCode",
  "gcode.link.importing": "Importando GCode...",
  "gcode.link.search_ph": "Buscar…",
  "gcode.link.suggestions": "Sugerencias",
  "gcode.link.all": "Todos (los más nuevos primero)",
  "gcode.link.count": "{n} entradas",
  "gcode.link.type_gcode": "GCODE",
  "gcode.link.type_gcode3mf": "GCODE·3MF",
  "gcode.link.type_3mf": "3MF",
  "gcode.link.title_reverse": "Vincular modelo",
  "gcode.link.empty_hint_reverse": "No hay archivos 3MF en la biblioteca.",
  "gcode.link.empty_hint": "No hay archivos GCode indexados. Coloca GCodes en una carpeta de biblioteca o usa 'Desde archivo…'",
  "gcode.link.no_search_match": "Sin resultados",
  "gcode.link.delete_source": "Mover archivos originales a la papelera",
  "gcode.link.browse_fallback": "Desde archivo…",
  "gcode.link.browse_title": "Seleccionar archivo GCode",
  "gcode.link.back": "Volver a la biblioteca",
  "gcode.link.cancel": "Cancelar",
  "gcode.link.submit": "Vincular",
  "gcode.link.toast_success": "GCode vinculado: {name}",
  "gcode.link.toast_error": "Vinculación fallida",
  "gcode.link.loading": "Cargando…",
  "gcode.link.today": "hoy",
  "gcode.link.yesterday": "ayer",
  "settings.watcher.title": "👁 Monitorización",
  "sidebar.add_category": "Añadir categoría",
  "sidebar.add_folder": "Añadir carpeta",
  "sidebar.add_tag": "Añadir etiqueta",
  "sidebar.all_files": "Todos los archivos",
  "sidebar.categories_header": "Categorías",
  "sidebar.favorites": "Favoritos",
  "sidebar.filter_header": "Filtro",
  "sidebar.folder_not_found": "Carpeta no encontrada",
  "sidebar.folders_header": "Carpetas",
  "sidebar.has_gcode": "Con archivo GCode",
  "sidebar.gcode_files": "Archivos GCode",
  "sidebar.library_header": "Biblioteca",
  "sidebar.material_header": "Filamento",
  "sidebar.new": "Nuevos",
  "sidebar.new_files": "{count} archivos nuevos",
  "sidebar.no_folders": "Sin carpetas",
  "sidebar.no_prints_yet": "Aún no hay impresiones registradas",
  "sidebar.nozzle_header": "Tamaño de boquilla",
  "sidebar.pinned_header": "Carpetas fijadas",
  "sidebar.quick_access": "Acceso rápido",
  "sidebar.imported_objects": "Objetos importados",
  "sidebar.printed": "Impreso",
  "sidebar.printed_header": "Impreso",
  "sidebar.printer_header": "Impresora",
  "sidebar.rating_header": "Valoración",
  "sidebar.right_click_delete_cat": "{name} — Clic derecho para eliminar",
  "sidebar.right_click_delete_tag": "{name} — Clic derecho para eliminar",
  "sidebar.tags_header": "Etiquetas",
  "sidebar.toggle_tooltip": "Mostrar/ocultar barra lateral",
  "sidebar.trash": "Papelera",
  "sidebar.unpin_folder": "Desfijar",
  "toast.file_restored": "Archivo restaurado",
  "trash.restored_with_meta": "Restaurado (+{tags} etiquetas, +{categories} categorías)",
  "toast.file_trashed": "Archivo movido a la papelera",
  "toast.auto_scan_done": "{count} new files assigned to category '{name}'",
  "toast.auto_scan_added": "{count} añadidos",
  "toast.auto_scan_removed": "{count} eliminados",
  "toast.auto_scan_error": "Auto-scan failed",
  "toast.regen_thumbs_started": "{count} archivos en cola para regeneración…",
  "toast.scan_complete": "Escaneo completado — listo para usar",
  "toast.untag_all_done": "Todos los archivos eliminados de \"{name}\"",
  "toolbar.duplicates_btn": "Duplicados",
  "toolbar.duplicates_title": "Buscar duplicados",
  "toolbar.group_btn": "Agrupar",
  "toolbar.group_title": "Alternar agrupación por carpeta",
  "toolbar.search_placeholder": "🔍 Buscar...",
  "toolbar.sidebar_toggle": "Barra lateral",
  "toolbar.sort.date": "Fecha",
  "toolbar.sort.name": "Nombre",
  "toolbar.sort.rating": "Valoración",
  "toolbar.sort.size": "Tamaño",
  "toolbar.sort.triangles": "Triángulos",
  "toolbar.sort_reverse": "Invertir orden",
  "toolbar.trash_btn": "Papelera",
  "toolbar.trash_title": "Papelera",
  "toolbar.view.detail": "Detalle",
  "toolbar.view.grid": "Cuadrícula",
  "toolbar.view.list": "Lista",
  "update.cancel_button": "Cancelar",
  "update.check_button": "Buscar actualizaciones",
  "update.confirm_button": "Actualizar ahora",
  "update.confirm_message": "¿Instalar actualización a v{version}? La aplicación se reiniciará.",
  "update.confirm_title": "Instalar actualización",
  "update.downloading": "Descargando actualización…",
  "update.error": "Actualización fallida. Por favor, descarga manualmente.",
  "update.preparing": "Preparando actualización…",
  "update.restarting": "La aplicación se está reiniciando…",
  "viewer.3mf.image_label": "Imagen {current}/{total} — Haz clic para vista 3D",
  "viewer.3mf.loading_model": "Cargando modelo 3D …",
  "viewer.3mf.no_objects": "No se encontraron objetos 3D en este archivo",
  "viewer.3mf.object_label": "{name}  ({current} / {total})",
  "viewer.3mf.preview_cached": "Vista previa (de caché)",
  "viewer.3mf.preview_label": "Vista previa — Haz clic en › para vista 3D",
  "viewer.bed.too_large": "¡El modelo excede la cama de impresión!",
  "viewer.btn.open_slicer": "🖨 Abrir en Slicer ▾",
  "viewer.ctrl.auto_orient": "Auto-orientar (superficie plana más grande hacia abajo)",
  "viewer.ctrl.cycle_orient": "Rotar orientación",
  "viewer.ctrl.reset_camera": "Restablecer cámara",
  "viewer.ctrl.wireframe": "Malla de alambre",
  "viewer.label.notes": "Notas",
  "viewer.label.notes_placeholder": "Notas...",
  "viewer.label.print_history": "Historial de impresiones",
  "viewer.loading_metadata": "Cargando…",
  "viewer.mesh.degenerate": "Triángulos degenerados",
  "viewer.mesh.flipped": "Normales invertidas",
  "viewer.mesh.non_manifold": "Bordes no manifold",
  "viewer.mesh.ok": "Sin problemas",
  "viewer.mesh.title": "Calidad de la malla",
  "viewer.mismatch.warning": "⚠ ¡Discrepancia de archivo! Esperado: △{expected} hash={expected_hash} — Recibido: △{received} hash={received_hash} ruta={path}",
  "viewer.nav.next_file": "Archivo siguiente (→)",
  "viewer.nav.next_object": "Objeto siguiente",
  "viewer.nav.prev_file": "Archivo anterior (←)",
  "viewer.nav.prev_object": "Objeto anterior",
  "viewer.newx.badge.favorite": "🔖 Favorito",
  "viewer.newx.badge.printed": "🖨 {count}× impreso",
  "viewer.newx.btn_delete": "🗑 Eliminar",
  "viewer.newx.btn_explorer": "📁 Explorador",
  "viewer.newx.btn_favorite": "☆ Favorito",
  "viewer.newx.btn_favorite_active": "🔖 Favorito",
  "viewer.newx.btn_printed": "✅ Impreso",
  "viewer.newx.image_label": "Imagen {index}",
  "viewer.newx.path_hide": "✕ Ocultar ruta",
  "viewer.newx.path_trigger": "📍 Ruta",
  "viewer.newx.rate_label": "Valorar",
  "viewer.newx.stat.dimensions": "Dimensiones (mm)",
  "viewer.newx.stat.format": "Formato",
  "viewer.newx.stat.modified": "Modificado",
  "viewer.newx.stat.objects": "Objetos",
  "viewer.newx.stat.printed": "Impreso",
  "viewer.newx.stat.size": "Tamaño",
  "viewer.newx.stat.triangles": "Triángulos",
  "viewer.object_label": "Objeto {n}",
  "viewer.similar.loading": "Buscando similares…",
  "viewer.similar.none": "No se encontraron modelos similares",
  "viewer.similar.score": "{score}% similar",
  "viewer.similar.title": "Modelos similares",
  "viewer.tag.create_new": "+ Crear \"{name}\"",
  "viewer.tag.new_placeholder": "Nueva etiqueta...",
  "viewer.tmf.and_more": "...y {count} más",
  "viewer.tmf.author_label": "Autor:",
  "viewer.tmf.objects_label": "Objetos:",
  "viewer.tmf.slicer_profile": "Perfil del Slicer:",
  "viewer.tmf.title_label": "Título:",
  "welcome.add_folder": "Añadir carpeta",
  "welcome.btn.manual_path": "Introducir ruta",
  "welcome.btn.manual_path_sub": "Unidades de red y rutas especiales",
  "welcome.btn.open_folder": "Seleccionar carpeta",
  "welcome.btn.open_folder_sub": "Explorar sistema de archivos",
  "welcome.btn.open_gallery": "Abrir galería",
  "welcome.btn.open_gallery_sub": "Explorar todos los archivos indexados",
  "welcome.cc.action.add_folder": "Añadir carpeta",
  "welcome.cc.action.dashboard": "Dashboard",
  "welcome.cc.action.duplicates": "Buscar duplicados",
  "welcome.cc.action.reprint": "Reimprimir trabajos",
  "welcome.cc.action.settings": "Ajustes",
  "welcome.cc.action.trash": "Papelera",
  "welcome.cc.actions_header": "⚡ Acciones rápidas",
  "welcome.cc.activity_empty": "Aún no hay actividad",
  "welcome.cc.activity_header": "🕐 Actividad reciente",
  "welcome.cc.kpi.files": "Archivos",
  "welcome.cc.kpi.folders": "Carpetas",
  "welcome.cc.kpi.prints": "Impresiones",
  "welcome.cc.kpi.size": "Biblioteca",
  "welcome.cc.kpi.tmf": "3MF",
  "welcome.cleaning": "Limpiando...",
  "welcome.folder_missing": "Carpeta no encontrada",
  "welcome.folder_missing_confirm": "La carpeta \"{path}\" ya no existe. ¿Eliminar de la biblioteca?",
  "welcome.folder_removed": "Carpeta eliminada",
  "welcome.folders_header": "Carpetas de la biblioteca",
  "welcome.recent_files": "{count} archivos",
  "welcome.recent_remove": "Eliminar",
  "welcome.shortcut_created": "Acceso directo de escritorio creado",
  "welcome.shortcut_no": "No, gracias",
  "welcome.shortcut_prompt": "¿Crear un acceso directo de escritorio para STL Gallery?",
  "welcome.shortcut_yes": "Sí, por favor",
  "welcome.status.connecting": "Iniciando servidor…",
  "welcome.status.database": "Base de datos",
  "welcome.status.db_files": "{count} archivos",
  "welcome.status.db_init": "Inicializada",
  "welcome.status.loading": "Cargando…",
  "welcome.status.renderer": "Renderizador",
  "welcome.status.renderer_c": "stl_thumb (C) ⚡",
  "welcome.status.renderer_python": "Python/Pillow",
  "welcome.status.slicer": "Slicer",
  "welcome.status.slicer_detected": "{count} detectados: {names}",
  "welcome.status.slicer_none": "Ninguno detectado",
  "welcome.status.thumbnails": "Miniaturas",
  "welcome.status.thumbs_count": "{count} disponibles",
  "welcome.subtitle": "Tu biblioteca de modelos 3D. Gestiona visualmente, etiqueta y explora miles de archivos STL — a toda velocidad.",
  "welcome.theme_toggle": "Cambiar tema",
  "welcome.update_available": "Nueva versión {version} disponible — descargar ahora",
  "welcome.update_current": "La versión está actualizada",
  "welcome.update_error": "Error al verificar actualizaciones",
  "toolbar.select_btn": "Select",
  "toolbar.select_title": "Select files",
  "toast.bulk_cat_success": "{count} models updated",
  "toast.bulk_cat_error": "Error: {message}",
  "bulk.count": "{count} models selected",
  "bulk.count_one": "1 model selected",
  "bulk.categories": "Categories",
  "bulk.select_visible": "Select visible",
  "bulk.clear_selection": "Clear selection",
  "bulk.cancel": "Cancel",
  "bulk.no_selection": "No models selected",
  "bulk.cat_dialog.title": "Assign categories",
  "bulk.cat_dialog.title_n": "Categories for {count} models",
  "bulk.cat_dialog.mode_add": "Add",
  "bulk.cat_dialog.mode_remove": "Remove",
  "bulk.cat_dialog.mode_replace": "Replace",
  "bulk.cat_dialog.clear_all": "Remove all categories",
  "bulk.cat_dialog.clear_confirm": "Really remove all categories from {count} models?",
  "bulk.cat_dialog.apply": "Apply",
  "ctx.bulk_categories": "Assign categories…",
  "ctx.bulk_clear_cats": "Remove all categories",
  "ctx.bulk_deselect": "Deselect all",
  "bulk.favorite": "★ Favorite",
  "bulk.unfavorite": "☆ Unfavorite",
  "toast.bulk_fav_success": "{count} models favorite updated",
  "settings.cat.import_suggestions": "📦 Importar sugerencias",
  "settings.cat.import_suggestions_title": "Importa 30 categorías predefinidas de impresión 3D con palabras clave (se omiten las existentes)",
  "settings.cat.import_confirm": "Se importarán {count} de {total} categorías sugeridas. ¿Continuar?",
  "settings.cat.import_result": "{count} categorías importadas",
  "settings.cat.import_none": "Las {total} categorías sugeridas ya existen",
  "dnd.conflict.title": "Conflictos al mover",
  "dnd.conflict.summary": "{count} de {total} archivos ya existen en el destino",
  "dnd.conflict.target_label": "en »{target}«",
  "dnd.conflict.existing": "Existente",
  "dnd.conflict.incoming": "Nuevo",
  "dnd.conflict.question": "¿Cómo quieres proceder?",
  "dnd.conflict.skip": "Omitir",
  "dnd.conflict.rename": "Mantener ambos (renombrar)",
  "dnd.cancel": "Cancelar",
  "toast.move.success": "{count} archivo(s) movido(s) a '{folder}'",
  "toast.move.partial": "{done} movidos, {skipped} omitidos",
  "toast.move.trash": "{count} archivo(s) a la papelera",
  "toast.move.error": "Movimiento fallido: {reason}",
  "toast.move.same_folder": "Archivo(s) ya están en la carpeta de destino",
  "toast.move.outside_library": "Destino fuera de la biblioteca registrada",
  "toast.move.cancelled": "Cancelado",
  "toast.move.db_failed": "{count} archivo(s) movidos, pero actualización de base de datos falló",
  "toast.move.inconsistent": "Advertencia: estado inconsistente, véase log",
  "toast.select.incomplete": "Selección incompleta — no se pudieron cargar todas las páginas"
}
