export default {
  "theme.dark": "Tema Oscuro",
  "theme.light": "Tema Claro",
  "theme.toggleTitle": "Alternar modo claro / oscuro",
  "theme.toggleAriaLabel": "Alternar modo claro/oscuro",
  "dropHint.text": "Arrastra aquí un archivo <strong>.stl</strong>, <strong>.obj</strong> o <strong>.3mf</strong><br/>o <label for=\"stl-file-input\" class=\"link-label\">haz clic para explorar</label>",
  "ui.wireframe": "Malla de alambre",
  "ui.perspective": "Vista en perspectiva",
  "ui.controlsHint": "Arrastrar izq.: orbitar  ·  Arrastrar der.: desplazar  ·  Rueda: zoom",
  "ui.meshInfo": "{n} triángulos · {mb} MB · {sx} × {sy} × {sz} mm",
  "ui.loadStl": "Cargar modelo…",
  "ui.localProcessingNote": "Todo el procesamiento se realiza localmente en tu navegador — no se suben datos.",
  "sections.displacementMap": "Mapa de desplazamiento",
  "ui.uploadCustomMap": "Subir mapa personalizado",
  "ui.noMapSelected": "Ningún mapa seleccionado",
  "sections.projection": "Proyección",
  "labels.mode": "Modo",
  "projection.triplanar": "Triplanar",
  "projection.cubic": "Cúbica (Caja)",
  "projection.cylindrical": "Cilíndrica",
  "projection.spherical": "Esférica",
  "projection.planarXY": "Planar XY",
  "projection.planarXZ": "Planar XZ",
  "projection.planarYZ": "Planar YZ",
  "sections.transform": "Transformación",
  "labels.scaleU": "Escala U",
  "labels.scaleV": "Escala V",
  "labels.offsetU": "Desplazamiento U",
  "labels.offsetV": "Desplazamiento V",
  "labels.rotation": "Rotación",
  "tooltips.proportionalScaling": "Escalado proporcional (U = V)",
  "tooltips.proportionalScalingAria": "Escalado proporcional (U = V)",
  "sections.displacement": "Profundidad de textura",
  "labels.amplitude": "Amplitud",
  "labels.seamBlend": "Fusión de costuras ⓘ",
  "tooltips.seamBlend": "Suaviza la costura donde se unen las caras de proyección. Efectivo para los modos Cúbico y Cilíndrico.",
  "labels.transitionSmoothing": "Suavizado de transición ⓘ",
  "tooltips.transitionSmoothing": "Ancho de la zona de fusión cerca de los bordes de la costura. Valores bajos mantienen las transiciones pegadas a la costura; valores altos difuminan una banda más amplia.",
  "labels.textureSmoothing": "Suavizado de textura ⓘ",
  "tooltips.textureSmoothing": "Aplica un desenfoque gaussiano al mapa de desplazamiento. Valores más altos producen detalles de superficie más suaves y graduales. 0 = desactivado.",
  "labels.capAngle": "Ángulo de tapa ⓘ",
  "tooltips.capAngle": "Ángulo (en grados) desde la vertical en el que se activa la proyección de tapa superior/inferior. Valores más pequeños limitan la proyección a caras casi planas.",
  "sections.masking": "Enmascaramiento",
  "sections.maskAngles": "Por ángulo ⓘ",
  "tooltips.maskAngles": "0° = sin enmascaramiento. Las superficies dentro de este ángulo respecto a la horizontal no serán texturizadas.",
  "labels.bottomFaces": "Caras inferiores",
  "tooltips.bottomFaces": "Eliminar textura en superficies orientadas hacia abajo dentro de este ángulo respecto a la horizontal",
  "labels.topFaces": "Caras superiores",
  "tooltips.topFaces": "Eliminar textura en superficies orientadas hacia arriba dentro de este ángulo respecto a la horizontal",
  "sections.surfaceMasking": "Por superficie ⓘ",
  "sections.surfaceSelection": "Selección de superficies",
  "tooltips.surfaceMasking": "Enmascarar superficies para controlar qué áreas reciben desplazamiento.",
  "tooltips.surfaceSelection": "Las superficies seleccionadas aparecen en verde y serán las únicas en recibir desplazamiento durante la exportación.",
  "excl.modeExclude": "Excluir",
  "excl.modeExcludeTitle": "Modo Excluir: las superficies pintadas no recibirán desplazamiento de textura",
  "excl.modeIncludeOnly": "Solo incluir",
  "excl.modeIncludeOnlyTitle": "Modo Solo incluir: solo las superficies pintadas recibirán desplazamiento de textura",
  "excl.toolBrush": "Pincel",
  "excl.toolBrushTitle": "Pincel: pintar triángulos para excluir",
  "excl.toolFill": "Relleno",
  "excl.toolFillTitle": "Relleno: rellenar superficie hasta un ángulo umbral",
  "excl.shiftHint": "Mantén Shift para borrar",
  "labels.type": "Tipo",
  "brushType.single": "Individual",
  "brushType.circle": "Círculo",
  "labels.size": "Tamaño",
  "labels.maxAngle": "Ángulo máx.",
  "tooltips.maxAngle": "Ángulo diedro máximo entre triángulos adyacentes que el relleno puede cruzar",
  "ui.clearAll": "Borrar todo",
  "excl.initExcluded": "0 caras enmascaradas",
  "excl.faceExcluded": "{n} cara enmascarada",
  "excl.facesExcluded": "{n} caras enmascaradas",
  "excl.faceSelected": "{n} cara seleccionada",
  "excl.facesSelected": "{n} caras seleccionadas",
  "excl.hintExclude": "Las superficies enmascaradas aparecen en naranja y no recibirán desplazamiento durante la exportación.",
  "excl.hintInclude": "Las superficies seleccionadas aparecen en verde y serán las únicas en recibir desplazamiento durante la exportación.",
  "precision.label": "Precisión (Beta) ⓘ",
  "precision.labelTitle": "Subdivide la malla en segundo plano para que el pincel seleccione con mayor granularidad",
  "precision.outdated": "⚠ Desactualizado",
  "precision.refreshTitle": "Resubdividir la malla para ajustarla al tamaño actual del pincel",
  "precision.triCount": "{n} △",
  "precision.refining": "Refinando…",
  "precision.warningBody": "Estimados ~{n} triángulos. Esto puede ralentizar el navegador. ¿Continuar?",
  "labels.boundaryFalloff": "Suavizar máscara ⓘ",
  "tooltips.boundaryFalloff": "Reduce gradualmente el desplazamiento a cero cerca de los bordes enmascarados, evitando superposiciones de triángulos entre zonas texturizadas y no texturizadas.",
  "labels.symmetricDisplacement": "Desplazamiento simétrico ⓘ",
  "tooltips.symmetricDisplacement": "Cuando está activado, el gris al 50% = sin desplazamiento; el blanco empuja hacia fuera, el negro empuja hacia dentro. Mantiene el volumen de la pieza aproximadamente constante.",
  "labels.displacementPreview": "Vista previa 3D ⓘ",
  "tooltips.displacementPreview": "Subdivide la malla y desplaza los vértices en tiempo real para evaluar la profundidad real. Uso intensivo de GPU en modelos complejos.",
  "ui.placeOnFace": "Colocar en cara",
  "ui.placeOnFaceTitle": "Haz clic en una cara para orientarla hacia abajo sobre la cama de impresión",
  "progress.subdividingPreview": "Preparando vista previa…",
  "warnings.amplitudeOverlap": "⚠ La amplitud supera el 10% de la dimensión más pequeña del modelo — pueden ocurrir superposiciones de geometría en el STL exportado.",
  "sections.export": "Exportar ⓘ",
  "tooltips.export": "Menor longitud de arista = mayor detalle de desplazamiento. La salida se reduce al límite de triángulos.",
  "labels.resolution": "Resolución",
  "tooltips.resolution": "Las aristas más largas que este valor se subdividirán durante la exportación",
  "labels.outputTriangles": "Triángulos de salida",
  "tooltips.outputTriangles": "La malla se subdivide completamente primero y luego se reduce a esta cantidad",
  "warnings.safetyCapHit": "⚠ Se alcanzó el límite de seguridad de 20M de triángulos durante la subdivisión — el resultado puede ser más grueso que la longitud de arista solicitada.",
  "ui.exportStl": "Exportar STL",
  "progress.subdividing": "Subdividiendo malla…",
  "progress.refining": "Refinando: {cur} triángulos, arista más larga {edge}",
  "progress.applyingDisplacement": "Aplicando desplazamiento a {n} triángulos…",
  "progress.displacingVertices": "Desplazando vértices…",
  "progress.decimatingTo": "Simplificando {from} → {to} triángulos…",
  "progress.decimating": "Simplificando: {cur} → {to} triángulos",
  "progress.writingStl": "Escribiendo STL…",
  "progress.done": "¡Listo!",
  "progress.processing": "Procesando…",
  "license.btn": "Licencia y condiciones",
  "license.title": "Licencia y condiciones",
  "license.item1": "Uso gratuito para cualquier propósito, incluyendo <strong>trabajo comercial</strong> (p. ej., texturizado de STLs para clientes o productos).",
  "license.item2": "La atribución es <strong>apreciada</strong> pero <strong>no obligatoria</strong> al usar esta herramienta tal cual.",
  "license.item3": "¿Quieres apoyar esta herramienta? Compra en <a href=\"https://geni.us/CNCStoreTexture\" target=\"_blank\" rel=\"noopener\">CNCKitchen.STORE</a> o dona en <a href=\"https://www.paypal.me/CNCKitchen\" target=\"_blank\" rel=\"noopener\">PayPal</a>.",
  "license.item4": "Esta herramienta se proporciona <strong>tal cual</strong> sin <strong>ninguna garantía</strong> de ningún tipo. Úsala bajo tu propio riesgo.",
  "license.item5": "<strong>No se proporciona soporte</strong>. El autor no tiene obligación de corregir errores, responder preguntas ni actualizar esta herramienta. Dicho esto, los informes de errores y solicitudes de funciones son siempre bienvenidos en <a href=\"mailto:texturizer@cnckitchen.com\">texturizer@cnckitchen.com</a>.",
  "license.item6": "El autor no será responsable de <strong>daños</strong>, pérdida de datos o problemas derivados del uso de esta herramienta.",
  "license.item7": "¿Quieres licenciar o integrar esta herramienta para tu negocio o sitio web? Contáctanos en <a href=\"mailto:contact@cnckitchen.com\">contact@cnckitchen.com</a>.",
  "license.item8": "Código fuente disponible en <a href=\"https://github.com/CNCKitchen/stlTexturizer\" target=\"_blank\" rel=\"noopener\">GitHub</a>.",
  "imprint.btn": "Aviso legal y privacidad",
  "imprint.title": "Aviso legal y política de privacidad",
  "imprint.sectionImprint": "Aviso legal (Impressum)",
  "imprint.info": "CNC Kitchen<br>Stefan Hermann<br>Bahnhofstr. 2<br>88145 Hergatz<br>Alemania",
  "imprint.contact": "Correo: <a href=\"mailto:contact@cnckitchen.com\">contact@cnckitchen.com</a><br>Teléfono: +49 175 2011824<br><em>El número de teléfono es exclusivamente para consultas legales/comerciales — no para soporte.</em>",
  "imprint.odr": "Plataforma de resolución de litigios en línea de la UE: <a href=\"https://ec.europa.eu/consumers/odr\" target=\"_blank\" rel=\"noopener\">https://ec.europa.eu/consumers/odr</a>",
  "imprint.sectionPrivacy": "Política de privacidad (Datenschutzerklärung)",
  "imprint.privacyIntro": "<strong>Responsable</strong> (Verantwortlicher gem. Art. 4 Abs. 7 DSGVO): Stefan Hermann, Bahnhofstr. 2, 88145 Hergatz, Alemania.",
  "imprint.privacyHosting": "Este sitio web está alojado en <strong>GitHub Pages</strong> (GitHub Inc. / Microsoft Corp., 88 Colin P Kelly Jr St, San Francisco, CA 94107, EE.UU.). Al visitar este sitio, GitHub puede procesar tu dirección IP en los registros del servidor. Base legal: Art. 6(1)(f) RGPD (interés legítimo en proporcionar el sitio web). Ver <a href=\"https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement\" target=\"_blank\" rel=\"noopener\">Declaración de privacidad de GitHub</a>.",
  "imprint.privacyLocal": "Esta herramienta almacena las preferencias del usuario (idioma, tema) en el <strong>localStorage</strong> de tu navegador. Estos datos nunca salen de tu dispositivo ni se transmiten a ningún servidor.",
  "imprint.privacyNoCookies": "Este sitio web <strong>no</strong> utiliza cookies, herramientas de análisis ni tecnologías de rastreo.",
  "imprint.privacyExternal": "Este sitio contiene enlaces a sitios web externos (p. ej., CNCKitchen.STORE, PayPal). Estos sitios tienen sus propias políticas de privacidad, sobre las cuales no tenemos control.",
  "imprint.privacyRights": "Según el RGPD, tienes derecho a <strong>acceso, rectificación, supresión, limitación del tratamiento, portabilidad de datos</strong> y derecho a <strong>presentar una reclamación</strong> ante una autoridad de control.",
  "sponsor.title": "¡Gracias por usar BumpMesh de CNC Kitchen!",
  "sponsor.body": "Esta herramienta es proporcionada <strong>completamente gratis</strong> por CNC Kitchen.<br>Mientras se procesa tu STL, ¿por qué no echas un vistazo a la tienda que nos ayuda a seguir creando cosas geniales para ti?",
  "sponsor.visitStore": "🛒 Visitar CNCKitchen.STORE",
  "sponsor.donate": "💙 Donar en PayPal",
  "sponsor.dontShow": "No mostrar de nuevo",
  "sponsor.closeAndContinue": "Cerrar y continuar",
  "cta.store": "¿Quieres apoyar esta herramienta? Compra en <a href=\"https://geni.us/CNCStoreTexture\" target=\"_blank\" rel=\"noopener noreferrer\">CNCKitchen.STORE</a> o dona en <a href=\"https://www.paypal.me/CNCKitchen\" target=\"_blank\" rel=\"noopener noreferrer\">PayPal</a>",
  "cta.storeDismiss": "Cerrar",
  "alerts.loadFailed": "No se pudo cargar el modelo: {msg}",
  "alerts.exportFailed": "Error en la exportación: {msg}",
  "alerts.fileTooLarge": "Archivo demasiado grande ({size} MB). Máximo: {max} MB."
};
