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 .stl, .obj o .3mf o ",
"ui.wireframe": "Malla de alambre",
"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…",
"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 trabajo comercial (p. ej., texturizado de STLs para clientes o productos).",
"license.item2": "La atribución es apreciada pero no obligatoria al usar esta herramienta tal cual.",
"license.item3": "¿Quieres apoyar esta herramienta? Compra en CNCKitchen.STORE o dona en PayPal.",
"license.item4": "Esta herramienta se proporciona tal cual sin ninguna garantía de ningún tipo. Úsala bajo tu propio riesgo.",
"license.item5": "No se proporciona soporte. 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 texturizer@cnckitchen.com.",
"license.item6": "El autor no será responsable de daños, 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 contact@cnckitchen.com.",
"license.item8": "Código fuente disponible en GitHub.",
"imprint.btn": "Aviso legal y privacidad",
"imprint.title": "Aviso legal y política de privacidad",
"imprint.sectionImprint": "Aviso legal (Impressum)",
"imprint.info": "CNC Kitchen Stefan Hermann Bahnhofstr. 2 88145 Hergatz Alemania",
"imprint.contact": "Correo: contact@cnckitchen.com Teléfono: +49 175 2011824 El número de teléfono es exclusivamente para consultas legales/comerciales — no para soporte.",
"imprint.odr": "Plataforma de resolución de litigios en línea de la UE: https://ec.europa.eu/consumers/odr",
"imprint.sectionPrivacy": "Política de privacidad (Datenschutzerklärung)",
"imprint.privacyIntro": "Responsable (Verantwortlicher gem. Art. 4 Abs. 7 DSGVO): Stefan Hermann, Bahnhofstr. 2, 88145 Hergatz, Alemania.",
"imprint.privacyHosting": "Este sitio web está alojado en GitHub Pages (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 Declaración de privacidad de GitHub.",
"imprint.privacyLocal": "Esta herramienta almacena las preferencias del usuario (idioma, tema) en el localStorage de tu navegador. Estos datos nunca salen de tu dispositivo ni se transmiten a ningún servidor.",
"imprint.privacyNoCookies": "Este sitio web no 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 acceso, rectificación, supresión, limitación del tratamiento, portabilidad de datos y derecho a presentar una reclamación ante una autoridad de control.",
"sponsor.title": "¡Gracias por usar BumpMesh de CNC Kitchen!",
"sponsor.body": "Esta herramienta es proporcionada completamente gratis por CNC Kitchen. 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 CNCKitchen.STORE o dona en PayPal",
"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."
};