mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
587 lines
15 KiB
TypeScript
587 lines
15 KiB
TypeScript
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" },
|
||
},
|
||
},
|
||
},
|
||
};
|