Files
easy-png-tools2/web/src/lib/i18n/en.ts
T

587 lines
15 KiB
TypeScript
Raw 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.
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" },
},
},
},
};