import type { Dict } from "./dict"; export const en: Dict = { header: { workspace: "Workspace", catalog: "Catalog", sectionsAria: "Sections", home: "Home page", uiKit: "UI Kit", footerNote: "All operations run locally in your browser — your files are never uploaded anywhere.", }, categories: { all: "All", convert: "Convert", alpha: "Transparency", color: "Color", geometry: "Geometry", filters: "Filters", text: "Text", analyze: "Analyze", generate: "Generate", }, home: { defaultTitle: "easy-png-tools — PNG utilities right in your browser", heroTitle: "What do you want to do with the image?", heroLead: "Find a tool — everything runs locally in your browser.", restoreLast: "↩ Restore last: {title}", changeTool: "← Change tool", }, catalog: { pageTitle: "All tools — easy-png-tools", metaDescription: "Full catalog of PNG utilities: convert, transparency, color, geometry, analysis and image generation.", heading: "Tool catalog", lead: "Focused utilities for working with PNG. Inspect, transform, and export — locally in your browser.", toolsAvailable: "Tools available", toolsCount: "Tools", }, toolPage: { fallbackTitle: "Tool", legendSource: "Source", legendSummary: "Summary", legendResult: "Result", legendParams: "Parameters", stepHeading: "Step {n}", removeStepAria: "Remove step", stepError: "Step {n} ({title}): {msg}", }, chain: { stepLabel: "Step {n}: {title}", inputLegend: "Input", resultLegend: "Result", paramsLegend: "Parameters", busyTitle: "Processing…", busyHint: "Running chain step", removeStepAria: "Remove step", }, sourceCard: { source: "Source", replaceImage: "Replace image", chooseImage: "choose an image", noSource: "no source — configure the parameters", alt: "Source image", }, resultCard: { emptyTitle: "The result will appear here", emptyHint: "First upload a source image on the left", processingTitle: "Processing…", processingHint: "The image is being processed, this will take a moment", recalc: "Recalculating…", nextTool: "⛓ Next tool", breakChain: "✂ Break the chain", noResult: "no result yet", result: "Result", previewPanel: "Preview", parts: "parts", alt: "Result image", }, paramsCard: { toolSettings: "Tool settings", noParams: "This tool has no parameters — the result is ready as is.", configureOutput: "Configure output", noSchema: "This tool has no schema yet.", }, textInput: { heading: "Text", placeholder: "Paste data here", aria: "Text data", decode: "Decode", }, textResult: { outputAria: "Text result", copied: "Copied", copy: "Copy", downloadTxt: "Download .txt", }, actions: { generate: "Generate", generating: "Generating…", openImage: "Open image", download: "Download", downloadFormat: "Download {format}", formatAria: "Choose download format", alphaLoss: "Result has transparency — {format} will flatten it", }, textSource: { placeholder: "Paste base64 / hex / bytes…", trySample: "Try sample", render: "Render text", }, download: { busy: "Preparing file…", file: "Download .{ext}", }, infoPanel: { dimensions: "Dimensions", alpha: "Alpha channel", alphaYes: "yes — there are semi-transparent pixels", alphaNo: "no", colorCount: "Unique colors (RGBA)", }, dropZone: { pickDefault: "Drop an image here or click to choose a file", overlayDefault: "Release the file to replace the image", pickTitle: "Drop a PNG here", pickHint: "or click / paste (Ctrl+V) — processed locally", }, search: { placeholder: "Find a tool…", aria: "Search tools", nothingFound: "Nothing found — try another word.", }, ui: { showMask: "Show mask", decrease: "Decrease", increase: "Increase", reset: "Reset", pipette: "Eyedropper", themeLight: "Light theme", themeDark: "Dark theme", overlayTitle: "Watermark", overlayDrop: "Drop a watermark PNG or click", overlayRemove: "Remove watermark", autoUpdate: "updates automatically", width: "Width", height: "Height", from: "From", to: "To", font: "Font", size: "Size", color: "Color", bold: "Bold", fontSans: "Sans", fontSerif: "Serif", fontMono: "Mono", opacity: "Opacity", angle: "Angle", backingPlate: "Backing plate", addColor: "+ Add color", removeColor: "Remove color", themeToggle: "Toggle theme", language: "Language", }, errors: { noImageRun: "This tool does not process images", sourceRequired: "Upload an image first", textRequired: "Enter text first", workerFailed: "Worker execution failed", workerUnavailable: "Worker is unavailable", notFound: "Page not found", noWatermark: "Pick a watermark image first", badTransform: "Degenerate transformation matrix", skewAngle: "Skew angles cannot be 90° or -90°", badHex: 'Invalid HEX color: "{value}"', radiusInt: "Radius must be a non-negative integer", kernelSize: "Kernel does not match the image dimensions", sizeInt: "Width and height must be integers ≥ 1", cropBounds: "Crop area does not intersect the image", noCanvasCtx: "Canvas 2D context is unavailable in this environment", badBase64: "Expected a base64 string or a data-uri of an image", qualityRange: "quality must be within 0..1", svgSize: "Could not determine SVG dimensions", svgLoad: "Failed to load SVG — check the markup", encodeUnsupported: "The browser does not support encoding to {mime}", unsupportedFile: "Unsupported file format ({type}). Supported formats are PNG, JPEG, WebP, GIF and BMP.", widthInt: "Image width must be an integer ≥ 1", noHexPixels: "No hex pixel values found", badPixelToken: "Each pixel must be 8 hex characters RRGGBBAA, separated by spaces", pixelCountMismatch: "Pixel count ({count}) is not divisible by width {width} without a remainder", badJson: "The file is not valid JSON", badPipelineShape: "The file structure does not look like a chain of steps", pipelineVersion: "Unsupported chain version: {version}", noSteps: "The file has no list of steps", paramNumber: 'Parameter "{id}" must be a number', paramString: 'Parameter "{id}" must be a string', paramBool: 'Parameter "{id}" must be a checkbox value', resizeSize: "Width and/or height must be positive", cropSize: "Crop width and height must be positive", sizePositive: "Dimensions must be positive and finite", tooManyParts: "Too many parts ({count}). Maximum is 1000.", pageUnknown: 'No page is registered under "{slug}".', }, fields: { alphaThreshold: "Alpha threshold", amount: "Amount", amplitude: "Amplitude", anchor: "Anchor", angle: "Angle", axis: "Axis", background: "Background", backgroundColor: "Background color", baseColor: "Base color", blockSize: "Block size", borderColor: "Border color", brightness: "Brightness", canvasSize: "Canvas size", channel: "Channel", channelPair: "Channel pair", channelTolerance: "Channel tolerance", color: "Color", colorCount: "Color count", colorList: "Color list", colorPair: "Color pair", colorTolerance: "Color tolerance", cols: "Cols", columns: "Columns", component: "Component", contrast: "Contrast", count: "Count", cropAreaSize: "Crop area size", dateFormat: "Date format", degrees: "Degrees", depth: "Darken depth", direction: "Direction", display: "Display", emoji: "Emoji", fillColor: "Fill color", fitMode: "Fit mode", gamma: "Gamma", gradient: "Gradient", hexList: "Hex list", highlightColor: "Highlight color", imageSize: "Image size", innerRadius: "Inner radius", keepAspect: "Keep aspect", keepSide: "Kept side", layout: "Layout", levels: "Levels", lightness: "Lightness", lineColor: "Line color", lineWidth: "Line width", lumaThreshold: "Luminance threshold", margin: "Margin", maxColors: "Max colors", mode: "Mode", offset: "Offset", offsetX: "Offset X", offsetY: "Offset Y", opacity: "Opacity", order: "Order", orientation: "Orientation", outerOnly: "Outer only", padding: "Padding", pattern: "Pattern", percent: "Percent", phase: "Phase", plate: "Plate", points: "Points", position: "Position", quality: "Quality", radius: "Radius", range: "Lightness range", rarity: "Rarity", ratio: "Aspect ratio", rotation: "Rotation", rows: "Rows", saturation: "Saturation", scalePct: "Zoom, %", seed: "Seed", shapeHeightPct: "Height, %", shapeSize: "Shape size", shapeWidthPct: "Width, %", showText: "Show text", skewX: "Skew X", skewY: "Skew Y", smooth: "Smooth", spread: "Spread", steps: "Steps", stepX: "Step X", stepY: "Step Y", strength: "Strength", strokeColor: "Stroke color", targetColor: "Target color", text: "Text", textColor: "Text color", textStyle: "Text style", thickness: "Thickness", threshold: "Threshold", transparent: "Transparent", transparentBg: "Transparent bg", waves: "Waves", width: "Width", x: "X", y: "Y", }, groups: { adjust: "Adjust", anchor: "Anchor", background: "Background", baseColor: "Base color", blocks: "Blocks", canvas: "Canvas", colors: "Colors", cropArea: "Crop area", fill: "Fill", grid: "Grid", noise: "Noise", offset: "Offset", options: "Options", output: "Output", padding: "Padding", placement: "Placement", plate: "Plate", position: "Position", random: "Random", scaling: "Scaling", seed: "Seed", shape: "Shape", spectrum: "Spectrum", text: "Text", tile: "Tile", watermark: "Watermark", }, // Заголовки и описания страниц в базовой локали не дублируются: их берёт // EN-строка из реестра страниц (`web/src/lib/registry/pages/`). pages: {}, tools: { "file-size": { results: { line: "PNG size: {kb} KB", }, }, "verify-png": { results: { verifyYes: "Yes — this is a valid PNG signature.", verifyNo: "No — the signature does not match a PNG file.", }, }, "is-grayscale": { results: { grayscaleYes: "Yes — all pixels are shades of gray.", grayscaleNo: "No — colored pixels were found.", }, }, "is-transparent": { results: { transparentYes: "Yes — there are transparent or semi-transparent pixels.", transparentNo: "No — all pixels are fully opaque.", }, }, orientation: { results: { orientationPortrait: "Portrait — height is greater than width.", orientationLandscape: "Landscape — width is greater than height.", orientationSquare: "Square — the sides are equal.", }, }, "show-transparent": { options: { mode: { binary: "Black & white mask", highlight: "Color highlight" }, }, }, "show-grayscale-pixels": { options: { mode: { binary: "Black & white mask", highlight: "Color highlight" }, }, }, "show-color-pixels": { options: { mode: { binary: "Black & white mask", highlight: "Color highlight" }, }, }, "light-pixel-mask": { options: { mode: { binary: "Black & white mask", highlight: "Color highlight" }, }, }, "dark-pixel-mask": { options: { mode: { binary: "Black & white mask", highlight: "Color highlight" }, }, }, "unique-color-mask": { options: { mode: { binary: "Black & white mask", highlight: "Color highlight" }, }, }, "add-noise": { options: { mode: { mono: "Monochrome grain", color: "Color noise" }, }, }, dithering: { options: { pattern: { "floyd-steinberg": "Floyd–Steinberg", bayer: "Bayer 4x4" }, }, }, "extract-channel": { options: { channel: { red: "Red", green: "Green", blue: "Blue" }, }, }, "swap-channels": { options: { pair: { "r-g": "Red ↔ Green", "r-b": "Red ↔ Blue", "g-b": "Green ↔ Blue", }, }, }, "decrease-color-count": { options: { maxColors: { "2": "2", "4": "4", "8": "8", "16": "16 (extreme)", "32": "32", "44": "44 (strong)", "64": "64", "96": "96 (balanced)", "128": "128", "192": "192 (light)", "256": "256", }, }, }, "to-hsl": { options: { display: { gray: "Grayscale", color: "Space as RGB" }, }, }, "to-hsv": { options: { display: { gray: "Grayscale", color: "Space as RGB" }, }, }, "to-hsi": { options: { display: { gray: "Grayscale", color: "Space as RGB" }, }, }, "to-cmyk": { options: { display: { gray: "Grayscale", color: "Space as RGB" }, }, }, "to-ycbcr": { options: { display: { gray: "Grayscale", color: "Space as RGB" }, }, }, "to-lab": { options: { display: { gray: "Grayscale", color: "Space as RGB" }, }, }, rotate: { options: { angle: { "90": "90° clockwise", "180": "180°", "270": "270° clockwise", }, }, }, flip: { options: { axis: { horizontal: "Horizontal (left to right)", vertical: "Vertical (top to bottom)", }, }, }, "change-canvas-size": { options: { anchor: { "top-left": "Top left", "top-center": "Top center", "top-right": "Top right", "middle-left": "Middle left", center: "Center", "middle-right": "Middle right", "bottom-left": "Bottom left", "bottom-center": "Bottom center", "bottom-right": "Bottom right", }, }, }, "change-aspect-ratio": { options: { ratio: { "1:1": "1:1", "4:3": "4:3", "3:4": "3:4", "3:2": "3:2", "2:3": "2:3", "16:9": "16:9", "9:16": "9:16", }, mode: { crop: "Crop to fill", pad: "Pad to fit" }, }, }, "swap-orientation": { options: { target: { portrait: "Portrait", landscape: "Landscape" }, }, }, "symmetric-copy": { options: { axis: { vertical: "Vertical (double width)", horizontal: "Horizontal (double height)", }, keepSide: { left: "Left", right: "Right", top: "Top", bottom: "Bottom", }, }, }, "color-spectrum": { options: { direction: { horizontal: "Horizontal", vertical: "Vertical" }, }, }, "step-colors": { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, complementary: { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, triadic: { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, tetradic: { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, analogous: { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, monochromatic: { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, shades: { options: { layout: { grid: "Grid", strip: "Strip" }, }, }, "sort-colors": { options: { order: { hue: "Hue", luma: "Brightness", sat: "Saturation" }, layout: { grid: "Grid", strip: "Strip" }, }, }, }, };