mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-09-14 13:36:36 +00:00
feat: add new dics\translations
This commit is contained in:
@@ -32,11 +32,13 @@ export type HeaderStrings = {
|
|||||||
catalog: string;
|
catalog: string;
|
||||||
sectionsAria: string;
|
sectionsAria: string;
|
||||||
footerNote: string;
|
footerNote: string;
|
||||||
|
home: string;
|
||||||
|
uiKit: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Dict = {
|
export type Dict = {
|
||||||
header: HeaderStrings;
|
header: HeaderStrings;
|
||||||
categories: Record<CategoryId, string>;
|
categories: Record<CategoryId | "all", string>;
|
||||||
home: Record<string, string>;
|
home: Record<string, string>;
|
||||||
catalog: Record<string, string>;
|
catalog: Record<string, string>;
|
||||||
toolPage: Record<string, string>;
|
toolPage: Record<string, string>;
|
||||||
|
|||||||
+50
-1
@@ -5,10 +5,13 @@ export const en: Dict = {
|
|||||||
workspace: "Workspace",
|
workspace: "Workspace",
|
||||||
catalog: "Catalog",
|
catalog: "Catalog",
|
||||||
sectionsAria: "Sections",
|
sectionsAria: "Sections",
|
||||||
|
home: "Home page",
|
||||||
|
uiKit: "UI Kit",
|
||||||
footerNote:
|
footerNote:
|
||||||
"All operations run locally in your browser — your files are never uploaded anywhere.",
|
"All operations run locally in your browser — your files are never uploaded anywhere.",
|
||||||
},
|
},
|
||||||
categories: {
|
categories: {
|
||||||
|
all: "All",
|
||||||
convert: "Convert",
|
convert: "Convert",
|
||||||
alpha: "Transparency",
|
alpha: "Transparency",
|
||||||
color: "Color",
|
color: "Color",
|
||||||
@@ -30,7 +33,9 @@ export const en: Dict = {
|
|||||||
metaDescription:
|
metaDescription:
|
||||||
"Full catalog of PNG utilities: convert, transparency, color, geometry, analysis and image generation.",
|
"Full catalog of PNG utilities: convert, transparency, color, geometry, analysis and image generation.",
|
||||||
heading: "Tool catalog",
|
heading: "Tool catalog",
|
||||||
lead: "{count} utilities for working with PNG. Everything runs locally in your browser.",
|
lead: "Focused utilities for working with PNG. Inspect, transform, and export — locally in your browser.",
|
||||||
|
toolsAvailable: "Tools available",
|
||||||
|
toolsCount: "Tools",
|
||||||
},
|
},
|
||||||
toolPage: {
|
toolPage: {
|
||||||
fallbackTitle: "Tool",
|
fallbackTitle: "Tool",
|
||||||
@@ -53,6 +58,9 @@ export const en: Dict = {
|
|||||||
},
|
},
|
||||||
sourceCard: {
|
sourceCard: {
|
||||||
replaceImage: "Replace image",
|
replaceImage: "Replace image",
|
||||||
|
chooseImage: "choose an image",
|
||||||
|
noSource: "no source — configure the parameters",
|
||||||
|
alt: "Source image",
|
||||||
},
|
},
|
||||||
resultCard: {
|
resultCard: {
|
||||||
emptyTitle: "The result will appear here",
|
emptyTitle: "The result will appear here",
|
||||||
@@ -62,9 +70,15 @@ export const en: Dict = {
|
|||||||
recalc: "Recalculating…",
|
recalc: "Recalculating…",
|
||||||
nextTool: "⛓ Next tool",
|
nextTool: "⛓ Next tool",
|
||||||
breakChain: "✂ Break the chain",
|
breakChain: "✂ Break the chain",
|
||||||
|
noResult: "no result yet",
|
||||||
|
parts: "parts",
|
||||||
|
format: "Format",
|
||||||
|
alt: "Result image",
|
||||||
},
|
},
|
||||||
paramsCard: {
|
paramsCard: {
|
||||||
noParams: "This tool has no parameters — the result is ready as is.",
|
noParams: "This tool has no parameters — the result is ready as is.",
|
||||||
|
configureOutput: "Configure output",
|
||||||
|
noSchema: "This tool has no schema yet.",
|
||||||
},
|
},
|
||||||
textInput: {
|
textInput: {
|
||||||
heading: "Text",
|
heading: "Text",
|
||||||
@@ -78,6 +92,17 @@ export const en: Dict = {
|
|||||||
copy: "Copy",
|
copy: "Copy",
|
||||||
downloadTxt: "Download .txt",
|
downloadTxt: "Download .txt",
|
||||||
},
|
},
|
||||||
|
actions: {
|
||||||
|
generate: "Generate",
|
||||||
|
generating: "Generating…",
|
||||||
|
openImage: "Open image",
|
||||||
|
downloadResult: "Download result",
|
||||||
|
},
|
||||||
|
textSource: {
|
||||||
|
placeholder: "Paste base64 / hex / bytes…",
|
||||||
|
trySample: "Try sample",
|
||||||
|
render: "Render text",
|
||||||
|
},
|
||||||
download: {
|
download: {
|
||||||
busy: "Preparing file…",
|
busy: "Preparing file…",
|
||||||
file: "Download .{ext}",
|
file: "Download .{ext}",
|
||||||
@@ -92,6 +117,8 @@ export const en: Dict = {
|
|||||||
dropZone: {
|
dropZone: {
|
||||||
pickDefault: "Drop an image here or click to choose a file",
|
pickDefault: "Drop an image here or click to choose a file",
|
||||||
overlayDefault: "Release the file to replace the image",
|
overlayDefault: "Release the file to replace the image",
|
||||||
|
pickTitle: "Drop a PNG here",
|
||||||
|
pickHint: "or click to browse — processed locally",
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
placeholder: "Find a tool…",
|
placeholder: "Find a tool…",
|
||||||
@@ -109,6 +136,25 @@ export const en: Dict = {
|
|||||||
overlayTitle: "Watermark",
|
overlayTitle: "Watermark",
|
||||||
overlayDrop: "Drop a watermark PNG or click",
|
overlayDrop: "Drop a watermark PNG or click",
|
||||||
overlayRemove: "Remove watermark",
|
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: {
|
errors: {
|
||||||
noImageRun: "This tool does not process images",
|
noImageRun: "This tool does not process images",
|
||||||
@@ -151,7 +197,10 @@ export const en: Dict = {
|
|||||||
cropSize: "Crop width and height must be positive",
|
cropSize: "Crop width and height must be positive",
|
||||||
sizePositive: "Dimensions must be positive and finite",
|
sizePositive: "Dimensions must be positive and finite",
|
||||||
tooManyParts: "Too many parts ({count}). Maximum is 1000.",
|
tooManyParts: "Too many parts ({count}). Maximum is 1000.",
|
||||||
|
toolUnknown: 'No tool is registered under "{id}".',
|
||||||
},
|
},
|
||||||
|
fields: {},
|
||||||
|
groups: {},
|
||||||
tools: {
|
tools: {
|
||||||
"png-file-size": {
|
"png-file-size": {
|
||||||
results: {
|
results: {
|
||||||
|
|||||||
+86
-152
@@ -1,14 +1,17 @@
|
|||||||
import type { Dict } from "./dict";
|
import type { Dict } from "./dict";
|
||||||
|
|
||||||
export const ru: Dict = {
|
export const ru: Dict = {
|
||||||
header: {
|
header: {
|
||||||
workspace: "Рабочая область",
|
workspace: "Рабочая область",
|
||||||
catalog: "Каталог",
|
catalog: "Каталог",
|
||||||
sectionsAria: "Разделы",
|
sectionsAria: "Разделы",
|
||||||
|
home: "Главная",
|
||||||
|
uiKit: "UI Kit",
|
||||||
footerNote:
|
footerNote:
|
||||||
"Все операции выполняются локально в вашем браузере — файлы никуда не отправляются.",
|
"Все операции выполняются локально в вашем браузере — файлы никуда не отправляются.",
|
||||||
},
|
},
|
||||||
categories: {
|
categories: {
|
||||||
|
all: "Все",
|
||||||
convert: "Конвертация",
|
convert: "Конвертация",
|
||||||
alpha: "Прозрачность",
|
alpha: "Прозрачность",
|
||||||
color: "Цвет",
|
color: "Цвет",
|
||||||
@@ -31,7 +34,9 @@ export const ru: Dict = {
|
|||||||
metaDescription:
|
metaDescription:
|
||||||
"Полный каталог PNG-утилит: конвертация, прозрачность, цвет, геометрия, анализ и генерация изображений.",
|
"Полный каталог PNG-утилит: конвертация, прозрачность, цвет, геометрия, анализ и генерация изображений.",
|
||||||
heading: "Каталог инструментов",
|
heading: "Каталог инструментов",
|
||||||
lead: "{count} утилит для работы с PNG. Все операции выполняются локально в браузере.",
|
lead: "Утилиты для работы с PNG. Анализируйте, преобразуйте и экспортируйте — локально в браузере.",
|
||||||
|
toolsAvailable: "Инструментов доступно",
|
||||||
|
toolsCount: "Инструментов",
|
||||||
},
|
},
|
||||||
toolPage: {
|
toolPage: {
|
||||||
fallbackTitle: "Инструмент",
|
fallbackTitle: "Инструмент",
|
||||||
@@ -54,6 +59,9 @@ export const ru: Dict = {
|
|||||||
},
|
},
|
||||||
sourceCard: {
|
sourceCard: {
|
||||||
replaceImage: "Заменить изображение",
|
replaceImage: "Заменить изображение",
|
||||||
|
chooseImage: "выберите изображение",
|
||||||
|
noSource: "нет источника — настройте параметры",
|
||||||
|
alt: "Исходное изображение",
|
||||||
},
|
},
|
||||||
resultCard: {
|
resultCard: {
|
||||||
emptyTitle: "Результат появится здесь",
|
emptyTitle: "Результат появится здесь",
|
||||||
@@ -63,9 +71,15 @@ export const ru: Dict = {
|
|||||||
recalc: "Пересчёт…",
|
recalc: "Пересчёт…",
|
||||||
nextTool: "⛓ Следующий инструмент",
|
nextTool: "⛓ Следующий инструмент",
|
||||||
breakChain: "✂ Оборвать цепочку",
|
breakChain: "✂ Оборвать цепочку",
|
||||||
|
noResult: "результата пока нет",
|
||||||
|
parts: "частей",
|
||||||
|
format: "Формат",
|
||||||
|
alt: "Изображение-результат",
|
||||||
},
|
},
|
||||||
paramsCard: {
|
paramsCard: {
|
||||||
noParams: "У этого инструмента нет параметров — результат уже готов.",
|
noParams: "У этого инструмента нет параметров — результат уже готов.",
|
||||||
|
configureOutput: "Настроить вывод",
|
||||||
|
noSchema: "У этого инструмента пока нет схемы.",
|
||||||
},
|
},
|
||||||
textInput: {
|
textInput: {
|
||||||
heading: "Текст",
|
heading: "Текст",
|
||||||
@@ -79,6 +93,17 @@ export const ru: Dict = {
|
|||||||
copy: "Копировать",
|
copy: "Копировать",
|
||||||
downloadTxt: "Скачать .txt",
|
downloadTxt: "Скачать .txt",
|
||||||
},
|
},
|
||||||
|
actions: {
|
||||||
|
generate: "Сгенерировать",
|
||||||
|
generating: "Генерация…",
|
||||||
|
openImage: "Открыть изображение",
|
||||||
|
downloadResult: "Скачать результат",
|
||||||
|
},
|
||||||
|
textSource: {
|
||||||
|
placeholder: "Вставьте base64 / hex / байты…",
|
||||||
|
trySample: "Попробовать образец",
|
||||||
|
render: "Отрисовать текст",
|
||||||
|
},
|
||||||
download: {
|
download: {
|
||||||
busy: "Готовим файл…",
|
busy: "Готовим файл…",
|
||||||
file: "Скачать .{ext}",
|
file: "Скачать .{ext}",
|
||||||
@@ -93,6 +118,8 @@ export const ru: Dict = {
|
|||||||
dropZone: {
|
dropZone: {
|
||||||
pickDefault: "Перетащите изображение сюда или нажмите, чтобы выбрать файл",
|
pickDefault: "Перетащите изображение сюда или нажмите, чтобы выбрать файл",
|
||||||
overlayDefault: "Отпустите файл, чтобы заменить изображение",
|
overlayDefault: "Отпустите файл, чтобы заменить изображение",
|
||||||
|
pickTitle: "Перетащите PNG сюда",
|
||||||
|
pickHint: "или нажмите, чтобы выбрать — всё локально",
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
placeholder: "Найдите инструмент…",
|
placeholder: "Найдите инструмент…",
|
||||||
@@ -110,6 +137,25 @@ export const ru: Dict = {
|
|||||||
overlayTitle: "Знак",
|
overlayTitle: "Знак",
|
||||||
overlayDrop: "Перетащите PNG-знак или нажмите",
|
overlayDrop: "Перетащите PNG-знак или нажмите",
|
||||||
overlayRemove: "Убрать знак",
|
overlayRemove: "Убрать знак",
|
||||||
|
autoUpdate: "обновляется автоматически",
|
||||||
|
width: "Ширина",
|
||||||
|
height: "Высота",
|
||||||
|
from: "От",
|
||||||
|
to: "До",
|
||||||
|
font: "Шрифт",
|
||||||
|
size: "Размер",
|
||||||
|
color: "Цвет",
|
||||||
|
bold: "Жирный",
|
||||||
|
fontSans: "Без засечек",
|
||||||
|
fontSerif: "С засечками",
|
||||||
|
fontMono: "Моноширинный",
|
||||||
|
opacity: "Непрозрачность",
|
||||||
|
angle: "Угол",
|
||||||
|
backingPlate: "Подложка",
|
||||||
|
addColor: "+ Добавить цвет",
|
||||||
|
removeColor: "Удалить цвет",
|
||||||
|
themeToggle: "Переключить тему",
|
||||||
|
language: "Язык",
|
||||||
},
|
},
|
||||||
errors: {
|
errors: {
|
||||||
noImageRun: "Этот инструмент не обрабатывает изображения",
|
noImageRun: "Этот инструмент не обрабатывает изображения",
|
||||||
@@ -152,29 +198,11 @@ export const ru: Dict = {
|
|||||||
cropSize: "Ширина и высота области обрезки должны быть положительными",
|
cropSize: "Ширина и высота области обрезки должны быть положительными",
|
||||||
sizePositive: "Размеры должны быть положительными и конечными",
|
sizePositive: "Размеры должны быть положительными и конечными",
|
||||||
tooManyParts: "Слишком много частей ({count}). Ограничение — 1000.",
|
tooManyParts: "Слишком много частей ({count}). Ограничение — 1000.",
|
||||||
|
toolUnknown: "Инструмента с id «{id}» нет в реестре.",
|
||||||
},
|
},
|
||||||
|
fields: {},
|
||||||
|
groups: {},
|
||||||
tools: {
|
tools: {
|
||||||
"jpg-to-png": {
|
|
||||||
title: "Конвертировать JPG в PNG",
|
|
||||||
description:
|
|
||||||
"Открывает JPEG и сохраняет его как PNG без потерь. Прозрачность, если была, сохраняется.",
|
|
||||||
},
|
|
||||||
"webp-to-png": {
|
|
||||||
title: "Конвертировать WebP в PNG",
|
|
||||||
description: "Перекодирует WebP-изображение в универсальный PNG.",
|
|
||||||
},
|
|
||||||
"gif-to-png": {
|
|
||||||
title: "Конвертировать GIF в PNG",
|
|
||||||
description: "Достаёт первый кадр GIF-анимации и сохраняет его как PNG.",
|
|
||||||
},
|
|
||||||
"bmp-to-png": {
|
|
||||||
title: "Конвертировать BMP в PNG",
|
|
||||||
description: "Перекодирует BMP в компактный PNG без потерь.",
|
|
||||||
},
|
|
||||||
"ico-to-png": {
|
|
||||||
title: "Конвертировать ICO в PNG",
|
|
||||||
description: "Превращает иконку .ico в обычный PNG нужного размера.",
|
|
||||||
},
|
|
||||||
"png-to-bmp": {
|
"png-to-bmp": {
|
||||||
title: "Конвертировать PNG в BMP",
|
title: "Конвертировать PNG в BMP",
|
||||||
description:
|
description:
|
||||||
@@ -288,6 +316,11 @@ export const ru: Dict = {
|
|||||||
"Повторяет изображение сеткой из выбранного числа столбцов и строк.",
|
"Повторяет изображение сеткой из выбранного числа столбцов и строк.",
|
||||||
params: { columns: "Столбцов", rows: "Строк" },
|
params: { columns: "Столбцов", rows: "Строк" },
|
||||||
},
|
},
|
||||||
|
"split-into-parts-png": {
|
||||||
|
title: "Разрезать PNG на части",
|
||||||
|
description:
|
||||||
|
"Делит изображение на сетку одинаковых по размеру частей. Холст дополняется прозрачностью, чтобы каждая часть была одного размера.",
|
||||||
|
},
|
||||||
"center-by-alpha-png": {
|
"center-by-alpha-png": {
|
||||||
title: "Центрировать PNG по содержимому",
|
title: "Центрировать PNG по содержимому",
|
||||||
description:
|
description:
|
||||||
@@ -358,6 +391,36 @@ export const ru: Dict = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
cmyk: {
|
||||||
|
title: "Конвертировать PNG в цвета CMYK",
|
||||||
|
description:
|
||||||
|
"Раскладывает изображение на печатные компоненты Cyan, Magenta, Yellow и Key (чёрный).",
|
||||||
|
},
|
||||||
|
hsl: {
|
||||||
|
title: "Разбить PNG на HSL",
|
||||||
|
description:
|
||||||
|
"Раскладывает изображение на компоненты тона, насыщенности и светлоты.",
|
||||||
|
},
|
||||||
|
hsi: {
|
||||||
|
title: "Разбить PNG на HSI",
|
||||||
|
description:
|
||||||
|
"Раскладывает изображение на компоненты тона, насыщенности и интенсивности.",
|
||||||
|
},
|
||||||
|
hsv: {
|
||||||
|
title: "Разбить PNG на HSV",
|
||||||
|
description:
|
||||||
|
"Раскладывает изображение на компоненты тона, насыщенности и значения (яркости).",
|
||||||
|
},
|
||||||
|
lab: {
|
||||||
|
title: "Конвертировать PNG в цвета LAB",
|
||||||
|
description:
|
||||||
|
"Раскладывает изображение на перцепционную светлоту и оппонентные пары зелёный–пурпур / синий–жёлтый.",
|
||||||
|
},
|
||||||
|
ycbcr: {
|
||||||
|
title: "Конвертировать PNG в цвета YCbCr",
|
||||||
|
description:
|
||||||
|
"Раскладывает изображение на яркость (Y) и цветоразностные компоненты Cb / Cr.",
|
||||||
|
},
|
||||||
"black-and-white-png": {
|
"black-and-white-png": {
|
||||||
title: "Чёрно-белый PNG по порогу",
|
title: "Чёрно-белый PNG по порогу",
|
||||||
description:
|
description:
|
||||||
@@ -477,11 +540,6 @@ export const ru: Dict = {
|
|||||||
tolerance: "Порог похожести, %",
|
tolerance: "Порог похожести, %",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"png-info": {
|
|
||||||
title: "Информация о PNG",
|
|
||||||
description:
|
|
||||||
"Показывает размеры, наличие альфа-канала и количество уникальных цветов загруженного изображения.",
|
|
||||||
},
|
|
||||||
"create-empty-png": {
|
"create-empty-png": {
|
||||||
title: "Создать пустой PNG",
|
title: "Создать пустой PNG",
|
||||||
description:
|
description:
|
||||||
@@ -642,83 +700,6 @@ export const ru: Dict = {
|
|||||||
grayscaleNo: "Нет — найдены цветные пиксели.",
|
grayscaleNo: "Нет — найдены цветные пиксели.",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"png-to-hsl": {
|
|
||||||
title: "Разложить PNG в HSL",
|
|
||||||
description:
|
|
||||||
"Раскладывает изображение на компоненты Тон, Насыщенность и Светлота.",
|
|
||||||
params: { component: "Компонент", display: "Режим показа" },
|
|
||||||
options: {
|
|
||||||
component: { h: "Тон (H)", s: "Насыщенность (S)", l: "Светлота (L)" },
|
|
||||||
display: { gray: "Градациями серого", color: "Пространство как RGB" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"png-to-hsv": {
|
|
||||||
title: "Разложить PNG в HSV",
|
|
||||||
description:
|
|
||||||
"Раскладывает изображение на Тон, Насыщенность и Яркость (Value).",
|
|
||||||
params: { component: "Компонент", display: "Режим показа" },
|
|
||||||
options: {
|
|
||||||
component: { h: "Тон (H)", s: "Насыщенность (S)", v: "Яркость (V)" },
|
|
||||||
display: { gray: "Градациями серого", color: "Пространство как RGB" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"png-to-hsi": {
|
|
||||||
title: "Разложить PNG в HSI",
|
|
||||||
description:
|
|
||||||
"Раскладывает изображение на Тон, Насыщенность и Интенсивность.",
|
|
||||||
params: { component: "Компонент", display: "Режим показа" },
|
|
||||||
options: {
|
|
||||||
component: {
|
|
||||||
h: "Тон (H)",
|
|
||||||
s: "Насыщенность (S)",
|
|
||||||
i: "Интенсивность (I)",
|
|
||||||
},
|
|
||||||
display: { gray: "Градациями серого", color: "Пространство как RGB" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"png-to-cmyk": {
|
|
||||||
title: "PNG в CMYK-цвета",
|
|
||||||
description:
|
|
||||||
"Раскладывает изображение на печатные компоненты: Голубой, Пурпурный, Жёлтый и Чёрный (Key).",
|
|
||||||
params: { component: "Компонент", display: "Режим показа" },
|
|
||||||
options: {
|
|
||||||
component: {
|
|
||||||
c: "Голубой (C)",
|
|
||||||
m: "Пурпурный (M)",
|
|
||||||
y: "Жёлтый (Y)",
|
|
||||||
k: "Чёрный (K)",
|
|
||||||
},
|
|
||||||
display: { gray: "Градациями серого", color: "Пространство как RGB" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"png-to-ycbcr": {
|
|
||||||
title: "PNG в YCbCr-цвета",
|
|
||||||
description:
|
|
||||||
"Раскладывает изображение на Яркость (Y) и цветоразностные компоненты Cb / Cr.",
|
|
||||||
params: { component: "Компонент", display: "Режим показа" },
|
|
||||||
options: {
|
|
||||||
component: {
|
|
||||||
y: "Яркость (Y)",
|
|
||||||
cb: "Синий-разностный (Cb)",
|
|
||||||
cr: "Красный-разностный (Cr)",
|
|
||||||
},
|
|
||||||
display: { gray: "Градациями серого", color: "Пространство как RGB" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"png-to-lab": {
|
|
||||||
title: "PNG в LAB-цвета",
|
|
||||||
description:
|
|
||||||
"Раскладывает изображение на perceptual-компоненты: Светлость, зелёный–пурпурный и синий–жёлтый.",
|
|
||||||
params: { component: "Компонент", display: "Режим показа" },
|
|
||||||
options: {
|
|
||||||
component: {
|
|
||||||
l: "Светлость (L)",
|
|
||||||
a: "Зелёный–пурпурный (a)",
|
|
||||||
b: "Синий–жёлтый (b)",
|
|
||||||
},
|
|
||||||
display: { gray: "Градациями серого", color: "Пространство как RGB" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"circle-mask-png": {
|
"circle-mask-png": {
|
||||||
title: "Круглая маска PNG",
|
title: "Круглая маска PNG",
|
||||||
description:
|
description:
|
||||||
@@ -1024,29 +1005,6 @@ export const ru: Dict = {
|
|||||||
pattern: { "floyd-steinberg": "Флойд–Стейнберг", bayer: "Байер 4×4" },
|
pattern: { "floyd-steinberg": "Флойд–Стейнберг", bayer: "Байер 4×4" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"compress-png": {
|
|
||||||
title: "Сжать PNG",
|
|
||||||
description:
|
|
||||||
"Уменьшает размер PNG сокращением палитры до выбранного уровня. Честный компромисс: меньше цветов — меньше файл.",
|
|
||||||
params: { level: "Уровень сжатия" },
|
|
||||||
options: {
|
|
||||||
level: {
|
|
||||||
light: "Лёгкий (192 цвета)",
|
|
||||||
balanced: "Сбалансированный (96 цветов)",
|
|
||||||
strong: "Сильный (44 цвета)",
|
|
||||||
extreme: "Экстремальный (16 цветов)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"reduce-to-size-png": {
|
|
||||||
title: "Вписать PNG в размер",
|
|
||||||
description:
|
|
||||||
"Бинарным поиском подбирает размер палитры, чтобы закодированный PNG уложился в целевое количество КБ. Если не влезает даже при 2 цветах — вернёт двухцветный вариант.",
|
|
||||||
params: {
|
|
||||||
targetKB: "Целевой размер, КБ",
|
|
||||||
maxColors: "Максимум цветов для перебора",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"png-file-size": {
|
"png-file-size": {
|
||||||
title: "Размер файла PNG",
|
title: "Размер файла PNG",
|
||||||
description:
|
description:
|
||||||
@@ -1168,30 +1126,6 @@ export const ru: Dict = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"watermark-image-png": {
|
|
||||||
title: "Знак картинкой PNG",
|
|
||||||
description:
|
|
||||||
"Накладывает другой PNG (логотип, подпись): масштаб от ширины холста, прозрачность, позиция 3×3. Знак живёт, пока открыта страница, — после восстановления цепочки выберите его заново.",
|
|
||||||
params: {
|
|
||||||
scale: "Ширина знака, % от холста",
|
|
||||||
opacity: "Непрозрачность, %",
|
|
||||||
position: "Позиция",
|
|
||||||
margin: "Отступ, px",
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
position: {
|
|
||||||
"top-left": "Сверху слева",
|
|
||||||
"top-center": "Сверху по центру",
|
|
||||||
"top-right": "Сверху справа",
|
|
||||||
"middle-left": "По центру слева",
|
|
||||||
center: "По центру",
|
|
||||||
"middle-right": "По центру справа",
|
|
||||||
"bottom-left": "Снизу слева",
|
|
||||||
"bottom-center": "Снизу по центру",
|
|
||||||
"bottom-right": "Снизу справа",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"add-text-png": {
|
"add-text-png": {
|
||||||
title: "Надпись на PNG",
|
title: "Надпись на PNG",
|
||||||
description:
|
description:
|
||||||
|
|||||||
Reference in New Issue
Block a user