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." };