Files

146 lines
11 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export default {
"theme.dark": "Dark Theme",
"theme.light": "Light Theme",
"theme.toggleTitle": "Toggle light / dark mode",
"theme.toggleAriaLabel": "Toggle light/dark mode",
"dropHint.text": "Drop an <strong>.stl</strong>, <strong>.obj</strong> or <strong>.3mf</strong> file here<br/>or <label for=\"stl-file-input\" class=\"link-label\">click to browse</label>",
"ui.wireframe": "Wireframe",
"ui.perspective": "Perspective View",
"ui.controlsHint": "Left drag: orbit  ·  Right drag: pan  ·  Scroll: zoom",
"ui.meshInfo": "{n} triangles · {mb} MB · {sx} × {sy} × {sz} mm",
"ui.loadStl": "Load Model…",
"ui.localProcessingNote": "All processing runs locally in your browser — no data is uploaded.",
"sections.displacementMap": "Displacement Map",
"ui.uploadCustomMap": "Upload custom map",
"ui.noMapSelected": "No map selected",
"sections.projection": "Projection",
"labels.mode": "Mode",
"projection.triplanar": "Triplanar",
"projection.cubic": "Cubic (Box)",
"projection.cylindrical": "Cylindrical",
"projection.spherical": "Spherical",
"projection.planarXY": "Planar XY",
"projection.planarXZ": "Planar XZ",
"projection.planarYZ": "Planar YZ",
"sections.transform": "Transform",
"labels.scaleU": "Scale U",
"labels.scaleV": "Scale V",
"labels.offsetU": "Offset U",
"labels.offsetV": "Offset V",
"labels.rotation": "Rotation",
"tooltips.proportionalScaling": "Proportional scaling (U = V)",
"tooltips.proportionalScalingAria": "Proportional scaling (U = V)",
"sections.displacement": "Texture Depth",
"labels.amplitude": "Amplitude",
"labels.seamBlend": "Seam Blend ⓘ",
"tooltips.seamBlend": "Softens the hard seam where projection faces meet. Effective for Cubic and Cylindrical modes.",
"labels.transitionSmoothing": "Transition Smoothing ⓘ",
"tooltips.transitionSmoothing": "Width of the blending zone near seam edges. Lower values keep transitions tight to the seam; higher values blend a wider band.",
"labels.textureSmoothing": "Texture Smoothing ⓘ",
"tooltips.textureSmoothing": "Applies a Gaussian blur to the displacement map. Higher values produce softer, more gradual surface detail. 0 = off.",
"labels.capAngle": "Cap Angle ⓘ",
"tooltips.capAngle": "Angle (in degrees) from vertical at which the top/bottom cap projection kicks in. Smaller values limit cap projection to nearly flat faces.",
"sections.masking": "Masking",
"sections.maskAngles": "By Angle ⓘ",
"tooltips.maskAngles": "0° = no masking. Surfaces within this angle of horizontal will not be textured.",
"labels.bottomFaces": "Bottom faces",
"tooltips.bottomFaces": "Suppress texture on downward-facing surfaces within this angle of horizontal",
"labels.topFaces": "Top faces",
"tooltips.topFaces": "Suppress texture on upward-facing surfaces within this angle of horizontal",
"sections.surfaceMasking": "By Surface ⓘ",
"sections.surfaceSelection": "Surface Selection",
"tooltips.surfaceMasking": "Mask surfaces to control which areas receive displacement.",
"tooltips.surfaceSelection": "Selected surfaces appear green and will be the only ones to receive displacement during export.",
"excl.modeExclude": "Exclude",
"excl.modeExcludeTitle": "Exclude mode: painted surfaces will not receive texture displacement",
"excl.modeIncludeOnly": "Include Only",
"excl.modeIncludeOnlyTitle": "Include Only mode: only painted surfaces will receive texture displacement",
"excl.toolBrush": "Brush",
"excl.toolBrushTitle": "Brush: paint triangles to exclude",
"excl.toolFill": "Fill",
"excl.toolFillTitle": "Bucket fill: flood-fill surface up to a threshold angle",
"excl.shiftHint": "Hold Shift to erase",
"labels.type": "Type",
"brushType.single": "Single",
"brushType.circle": "Circle",
"labels.size": "Size",
"labels.maxAngle": "Max angle",
"tooltips.maxAngle": "Maximum dihedral angle between adjacent triangles for the fill to cross",
"ui.clearAll": "Clear All",
"excl.initExcluded": "0 faces masked",
"excl.faceExcluded": "{n} face masked",
"excl.facesExcluded": "{n} faces masked",
"excl.faceSelected": "{n} face selected",
"excl.facesSelected": "{n} faces selected",
"excl.hintExclude": "Masked surfaces appear orange and will not receive displacement during export.",
"excl.hintInclude": "Selected surfaces appear green and will be the only ones to receive displacement during export.",
"precision.label": "Precision (Beta) ⓘ",
"precision.labelTitle": "Subdivide mesh in the background so the brush selects at finer granularity",
"precision.outdated": "⚠ Outdated",
"precision.refreshTitle": "Re-subdivide mesh to match current brush size",
"precision.triCount": "{n} △",
"precision.refining": "Refining…",
"precision.warningBody": "Estimated ~{n} triangles. This may slow down your browser. Continue?",
"labels.boundaryFalloff": "Smooth Mask ⓘ",
"tooltips.boundaryFalloff": "Gradually reduces displacement to zero near masked boundaries, preventing triangle overlap where textured and non-textured regions meet.",
"labels.symmetricDisplacement": "Symmetric displacement ⓘ",
"tooltips.symmetricDisplacement": "When on, 50% grey = no displacement; white pushes out, black pushes in. Keeps part volume roughly constant.",
"labels.displacementPreview": "3D Preview ⓘ",
"tooltips.displacementPreview": "Subdivides the mesh and displaces vertices in real-time so you can judge the actual depth. GPU-intensive on complex models.",
"ui.placeOnFace": "Place on Face",
"ui.placeOnFaceTitle": "Click a face to orient it downward onto the print bed",
"progress.subdividingPreview": "Preparing preview…",
"warnings.amplitudeOverlap": "⚠ Amplitude exceeds 10% of the smallest model dimension — geometry overlaps may occur in the exported STL.",
"sections.export": "Export ⓘ",
"tooltips.export": "Smaller edge length = finer displacement detail. Output is then decimated to the triangle limit.",
"labels.resolution": "Resolution",
"tooltips.resolution": "Edges longer than this value will be split during export",
"labels.outputTriangles": "Output Triangles",
"tooltips.outputTriangles": "Mesh is fully subdivided first, then decimated down to this count",
"warnings.safetyCapHit": "⚠ 20M-triangle safety cap hit during subdivision — result may still be coarser than requested edge length.",
"ui.exportStl": "Export STL",
"progress.subdividing": "Subdividing mesh…",
"progress.refining": "Refining: {cur} triangles, longest edge {edge}",
"progress.applyingDisplacement": "Applying displacement to {n} triangles…",
"progress.displacingVertices": "Displacing vertices…",
"progress.decimatingTo": "Simplifying {from} → {to} triangles…",
"progress.decimating": "Simplifying: {cur} → {to} triangles",
"progress.writingStl": "Writing STL…",
"progress.done": "Done!",
"progress.processing": "Processing…",
"license.btn": "License & Terms",
"license.title": "License & Terms",
"license.item1": "Free to use for any purpose, including <strong>commercial work</strong> (e.g., texturing STLs for clients or products).",
"license.item2": "Attribution is <strong>appreciated</strong> but <strong>not required</strong> when using this tool as-is.",
"license.item3": "Support this tool? Shop at <a href=\"https://geni.us/CNCStoreTexture\" target=\"_blank\" rel=\"noopener\">CNCKitchen.STORE</a> or donate on <a href=\"https://www.paypal.me/CNCKitchen\" target=\"_blank\" rel=\"noopener\">PayPal</a>.",
"license.item4": "This tool is provided <strong>as-is</strong> with <strong>no warranty</strong> of any kind. Use at your own risk.",
"license.item5": "<strong>No support</strong> is provided. The author is under no obligation to fix bugs, answer questions, or update this tool. That said, bug reports and feature requests are always welcome at <a href=\"mailto:texturizer@cnckitchen.com\">texturizer@cnckitchen.com</a>.",
"license.item6": "The author shall not be held <strong>liable</strong> for any damages, data loss, or issues arising from the use of this tool.",
"license.item7": "Want to license or embed this tool for your own business or website? Contact us at <a href=\"mailto:contact@cnckitchen.com\">contact@cnckitchen.com</a>.",
"license.item8": "Source code available on <a href=\"https://github.com/CNCKitchen/stlTexturizer\" target=\"_blank\" rel=\"noopener\">GitHub</a>.",
"imprint.btn": "Imprint & Privacy",
"imprint.title": "Imprint & Privacy Policy",
"imprint.sectionImprint": "Imprint (Impressum)",
"imprint.info": "CNC Kitchen<br>Stefan Hermann<br>Bahnhofstr. 2<br>88145 Hergatz<br>Germany",
"imprint.contact": "Email: <a href=\"mailto:contact@cnckitchen.com\">contact@cnckitchen.com</a><br>Phone: +49 175 2011824<br><em>The phone number is for legal/business inquiries only — not for support.</em>",
"imprint.odr": "EU Online Dispute Resolution platform: <a href=\"https://ec.europa.eu/consumers/odr\" target=\"_blank\" rel=\"noopener\">https://ec.europa.eu/consumers/odr</a>",
"imprint.sectionPrivacy": "Privacy Policy (Datenschutzerklärung)",
"imprint.privacyIntro": "<strong>Responsible party</strong> (Verantwortlicher gem. Art. 4 Abs. 7 DSGVO): Stefan Hermann, Bahnhofstr. 2, 88145 Hergatz, Germany.",
"imprint.privacyHosting": "This website is hosted on <strong>GitHub Pages</strong> (GitHub Inc. / Microsoft Corp., 88 Colin P Kelly Jr St, San Francisco, CA 94107, USA). When you visit this site, GitHub may process your IP address in server logs. Legal basis: Art. 6(1)(f) DSGVO (legitimate interest in providing the website). See <a href=\"https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement\" target=\"_blank\" rel=\"noopener\">GitHubs Privacy Statement</a>.",
"imprint.privacyLocal": "This tool stores user preferences (language, theme) in your browsers <strong>localStorage</strong>. This data never leaves your device and is not transmitted to any server.",
"imprint.privacyNoCookies": "This website does <strong>not</strong> use cookies, analytics, or any tracking technologies.",
"imprint.privacyExternal": "This site contains links to external websites (e.g., CNCKitchen.STORE, PayPal). These sites have their own privacy policies, over which we have no control.",
"imprint.privacyRights": "Under the GDPR you have the right to <strong>access, rectification, erasure, restriction of processing, data portability</strong>, and the right to <strong>lodge a complaint</strong> with a supervisory authority.",
"sponsor.title": "Thanks for using BumpMesh by CNC Kitchen!",
"sponsor.body": "This tool is provided <strong>completely free</strong> by CNC Kitchen.<br>While your STL is being processed, why not check out the store that helps us keep making cool stuff for you?",
"sponsor.visitStore": "🛒 Visit CNCKitchen.STORE",
"sponsor.donate": "💙 Donate on PayPal",
"sponsor.dontShow": "Dont show this again",
"sponsor.closeAndContinue": "Close &amp; Continue",
"cta.store": "Support this tool? Shop at <a href=\"https://geni.us/CNCStoreTexture\" target=\"_blank\" rel=\"noopener noreferrer\">CNCKitchen.STORE</a> or donate on <a href=\"https://www.paypal.me/CNCKitchen\" target=\"_blank\" rel=\"noopener noreferrer\">PayPal</a>",
"cta.storeDismiss": "Dismiss",
"alerts.loadFailed": "Could not load model: {msg}",
"alerts.exportFailed": "Export failed: {msg}",
"alerts.fileTooLarge": "File too large ({size} MB). Maximum: {max} MB."
};