164 lines
5.2 KiB
TypeScript
164 lines
5.2 KiB
TypeScript
import type { Dict } from './dict';
|
|
|
|
export const en: Dict = {
|
|
header: {
|
|
workspace: 'Workspace',
|
|
catalog: 'Catalog',
|
|
sectionsAria: 'Sections',
|
|
footerNote:
|
|
'All operations run locally in your browser — your files are never uploaded anywhere.'
|
|
},
|
|
categories: {
|
|
convert: 'Convert',
|
|
alpha: 'Transparency',
|
|
color: 'Color',
|
|
geometry: 'Geometry',
|
|
filters: 'Filters',
|
|
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: '{count} utilities for working with PNG. Everything runs locally in your browser.'
|
|
},
|
|
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: {
|
|
replaceImage: 'Replace 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'
|
|
},
|
|
paramsCard: {
|
|
noParams: 'This tool has no parameters — the result is ready as is.'
|
|
},
|
|
textInput: {
|
|
heading: 'Text',
|
|
placeholder: 'Paste data here',
|
|
aria: 'Text data',
|
|
decode: 'Decode'
|
|
},
|
|
textResult: {
|
|
outputAria: 'Text result',
|
|
copied: 'Copied',
|
|
copy: 'Copy',
|
|
downloadTxt: 'Download .txt'
|
|
},
|
|
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'
|
|
},
|
|
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'
|
|
},
|
|
errors: {
|
|
noImageRun: 'This tool does not process images',
|
|
workerFailed: 'Worker execution failed',
|
|
workerUnavailable: 'Worker is unavailable',
|
|
notFound: 'Tool not found',
|
|
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',
|
|
toolNotFound: 'Tool "{id}" not found',
|
|
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',
|
|
resizeSize: 'Width and/or height must be positive',
|
|
cropSize: 'Crop width and height must be positive',
|
|
sizePositive: 'Dimensions must be positive and finite'
|
|
},
|
|
tools: {
|
|
'png-is-grayscale': {
|
|
results: {
|
|
grayscaleYes: 'Yes — all pixels are shades of gray.',
|
|
grayscaleNo: 'No — colored pixels were found.'
|
|
}
|
|
},
|
|
'png-is-transparent': {
|
|
results: {
|
|
transparentYes: 'Yes — there are transparent or semi-transparent pixels.',
|
|
transparentNo: 'No — all pixels are fully opaque.'
|
|
}
|
|
},
|
|
'png-orientation': {
|
|
results: {
|
|
orientationPortrait: 'Portrait — height is greater than width.',
|
|
orientationLandscape: 'Landscape — width is greater than height.',
|
|
orientationSquare: 'Square — the sides are equal.'
|
|
}
|
|
}
|
|
}
|
|
};
|