feat: base english language, also fallback to english

This commit is contained in:
2026-08-25 08:32:19 +05:00
parent 2301b0e165
commit 74a18d91a7
8 changed files with 767 additions and 273 deletions
+370 -2
View File
@@ -1,4 +1,4 @@
import type { Dict } from './dict';
import type { Dict } from './dict';
export const ru: Dict = {
header: {
@@ -110,5 +110,373 @@ export const ru: Dict = {
workerUnavailable: 'Воркер недоступен',
notFound: 'Инструмент не найден'
},
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': {
title: 'Конвертировать PNG в BMP',
description: 'Сохраняет изображение в 24-битный BMP без альфа-канала: прозрачность заменяется чёрным фоном.'
},
'png-to-base64': {
title: 'PNG в Base64',
description: 'Кодирует изображение в base64-строку для вставки в код или стили.'
},
'base64-to-png': {
title: 'Base64 в PNG',
description: 'Декодирует base64-строку или data-uri обратно в картинку. Вставьте строку слева.'
},
'png-to-data-uri': {
title: 'PNG в Data URI',
description: 'Строит полный data-uri (data:image/png;base64,…) для встраивания в HTML/CSS.'
},
'data-uri-to-png': {
title: 'Data URI в PNG',
description: 'Декодирует data:image/…;base64,… обратно в файл картинки.'
},
'png-to-hex': {
title: 'PNG в HEX-пиксели',
description: 'Показывает все пиксели как hex-значения rrggbbaa — по строкам, через пробел.'
},
'hex-to-png': {
title: 'HEX-пиксели в PNG',
description: 'Собирает картинку из hex-значений rrggbbaa (через пробел). Укажите ширину — высота рассчитается сама.',
params: { width: 'Ширина изображения' }
},
'resize-png': {
title: 'Изменить размер PNG',
description: 'Масштабирование изображения с билинейной интерполяцией. При сохранении пропорций одна сторона задаёт масштаб, а если указаны обе — изображение вписывается в эти размеры.',
params: { width: 'Ширина (0 — авто)', height: 'Высота (0 — авто)', keepAspect: 'Сохранять пропорции' }
},
'crop-png': {
title: 'Обрезать PNG',
description: 'Вырезает прямоугольную область. Координаты и размеры выходят за границы изображения — область усекается до пересечения с картинкой.',
params: { x: 'X (слева)', y: 'Y (сверху)', width: 'Ширина области', height: 'Высота области' }
},
'rotate-png': {
title: 'Повернуть PNG',
description: 'Поворот на 90°, 180° или 270° по часовой стрелке без потери качества.',
params: { angle: 'Угол поворота' },
options: { angle: { '90': '90° по часовой', '180': '180°', '270': '270° по часовой' } }
},
'flip-png': {
title: 'Отразить PNG',
description: 'Зеркальное отражение по горизонтали или вертикали без потери качества.',
params: { axis: 'Ось отражения' },
options: {
axis: {
horizontal: 'По горизонтали (слева направо)',
vertical: 'По вертикали (сверху вниз)'
}
}
},
'add-padding-png': {
title: 'Добавить поля PNG',
description: 'Расширяет холст во все стороны на выбранное число пикселей.',
params: { padding: 'Поля, px', transparent: 'Прозрачные поля', color: 'Цвет полей' }
},
'add-border-png': {
title: 'Добавить рамку PNG',
description: 'Рисует цветную рамку вокруг изображения выбранной толщины.',
params: { thickness: 'Толщина рамки, px', color: 'Цвет рамки' }
},
'fit-on-background-png': {
title: 'Вписать PNG на фон',
description: 'Помещает изображение по центру полотна заданного размера с прозрачным или цветным фоном.',
params: {
width: 'Ширина полотна',
height: 'Высота полотна',
transparent: 'Прозрачный фон',
color: 'Цвет фона'
}
},
'tile-png': {
title: 'Замостить PNG',
description: 'Повторяет изображение сеткой из выбранного числа столбцов и строк.',
params: { columns: 'Столбцов', rows: 'Строк' }
},
'center-by-alpha-png': {
title: 'Центрировать PNG по содержимому',
description: 'Находит непрозрачную часть изображения и размещает её по центру прежнего холста.'
},
'blur-png': {
title: 'Размытие PNG',
description: 'Гауссово размытие: три прохода разделяемого бокса — быстро при любом радиусе. Прозрачные края не темнеют.',
params: { radius: 'Радиус, px' }
},
'sharpen-png': {
title: 'Резкость PNG',
description: 'Подчёркивает края ядром резкости; сила задаёт смесь с оригиналом. 0% — без изменений.',
params: { strength: 'Сила, %' }
},
'grayscale-png': {
title: 'Чёрно-белый PNG',
description: 'Переводит изображение в оттенки серого по яркостной формуле BT.601. Альфа сохраняется.'
},
'invert-colors-png': {
title: 'Инвертировать цвета PNG',
description: 'Обращает каждый цветовой канал (255 − значение). Альфа не меняется.'
},
'adjust-brightness-contrast-png': {
title: 'Яркость и контраст PNG',
description: 'Изменяет яркость и контраст в диапазоне от −100 до +100. Значение 0 — без изменений.',
params: { brightness: 'Яркость', contrast: 'Контраст' }
},
'change-png-opacity': {
title: 'Изменить прозрачность PNG',
description: 'Умножает альфа-канал на процент: 0% — полностью прозрачный, 100% — без изменений.',
params: { percent: 'Прозрачность, %' }
},
'sepia-png': {
title: 'Эффект сепии',
description: 'Тонирует изображение в тёплые коричневые тона классической сепии.'
},
'change-png-hue': {
title: 'Сменить оттенок PNG',
description: 'Сдвиг цветового тона по кругу. Насыщенность и яркость сохраняются.',
params: { degrees: 'Сдвиг тона, °' }
},
'extract-channel-png': {
title: 'Извлечь канал PNG',
description: 'Оставляет выбранный канал — красный, зелёный или синий — в оттенках серого.',
params: { channel: 'Канал' },
options: { channel: { red: 'Красный', green: 'Зелёный', blue: 'Синий' } }
},
'swap-channels-png': {
title: 'Переставить каналы PNG',
description: 'Меняет местами два цветовых канала — быстрый способ получить необычный окрас.',
params: { pair: 'Пара каналов' },
options: {
pair: { 'r-g': 'Красный ↔ Зелёный', 'r-b': 'Красный ↔ Синий', 'g-b': 'Зелёный ↔ Синий' }
}
},
'black-and-white-png': {
title: 'Чёрно-белый PNG по порогу',
description: 'Жёсткая бинаризация по яркости: каждый пиксель становится чёрным или белым.',
params: { threshold: 'Порог яркости, %' }
},
'posterize-png': {
title: 'Постеризация PNG',
description: 'Уменьшает число уровней каждого канала — плакатный эффект.',
params: { levels: 'Уровней на канал' }
},
'two-colors-png': {
title: 'Два цвета PNG',
description: 'Перекрашивает изображение в два выбранных цвета по порогу яркости.',
params: {
lightColor: 'Цвет светлых участков',
darkColor: 'Цвет тёмных участков',
threshold: 'Порог яркости, %'
}
},
'convert-png-to-jpg': {
title: 'Конвертировать PNG в JPG',
description: 'Прозрачность накладывается на выбранный цвет подложки (по умолчанию белый), результат сохраняется в JPEG.',
params: { background: 'Цвет подложки', quality: 'Качество JPEG' }
},
'convert-png-to-webp': {
title: 'Конвертировать PNG в WebP',
description: 'Перекодирует изображение в WebP с настраиваемым качеством. Прозрачность сохраняется.',
params: { quality: 'Качество WebP' }
},
'remove-alpha-channel-png': {
title: 'Убрать альфа-канал PNG',
description: 'Накладывает изображение на белый фон и сохраняет без прозрачности.'
},
'set-alpha-channel-png': {
title: 'Задать альфа-канал PNG',
description: 'Присваивает всем пикселям одинаковую прозрачность, цвета не меняются.',
params: { percent: 'Прозрачность, %' }
},
'extract-alpha-mask-png': {
title: 'Извлечь маску альфы PNG',
description: 'Превращает прозрачность в чёрно-белую непрозрачную маску.'
},
'round-corners-png': {
title: 'Скруглить углы PNG',
description: 'Обрезает углы по радиусу, заданному в процентах от половины меньшей стороны.',
params: { radius: 'Радиус скругления, %' }
},
'invert-alpha-png': {
title: 'Инвертировать альфа-канал PNG',
description: 'Непрозрачные области становятся прозрачными и наоборот.'
},
'remove-background-png': {
title: 'Удалить фон PNG (умно)',
description: 'Убирает однотонный фон: по цвету с допуском, только внешние области от краёв или весь совпадающий цвет. Умеет сглаживать границу.',
params: {
color: 'Цвет фона',
tolerance: 'Допуск похожести, %',
outerOnly: 'Только внешние области',
smooth: 'Сглаживание границы, проходы'
}
},
'add-stroke-png': {
title: 'Обвести PNG',
description: 'Добавляет цветную обводку-кольцо вокруг непрозрачного содержимого заданной толщины.',
params: { color: 'Цвет обводки', thickness: 'Толщина, px' }
},
'find-contour-png': {
title: 'Найти контур PNG',
description: 'Оставляет только линию по границе непрозрачных областей выбранного цвета и толщины.',
params: { color: 'Цвет линии', thickness: 'Толщина линии, px' }
},
'make-thicker-png': {
title: 'Утолщить PNG',
description: 'Расширяет непрозрачные области на заданное число пикселей.',
params: { radius: 'На сколько px' }
},
'make-thinner-png': {
title: 'Утончить PNG',
description: 'Сужает непрозрачные области — утоньшает штрихи надписей и деталей.',
params: { radius: 'На сколько px' }
},
'harden-alpha-png': {
title: 'Жёсткие края PNG',
description: 'Бинаризует альфа-канал по порогу: полупрозрачные пиксели становятся либо полностью прозрачными, либо непрозрачными.',
params: { threshold: 'Порог альфы, %' }
},
'despeckle-alpha-png': {
title: 'Убрать мусор PNG',
description: 'Открытие: убирает одиночные полупрозрачные пиксели и мелкие крапинки.',
params: { radius: 'Радиус очистки, px' }
},
'close-holes-png': {
title: 'Закрыть дыры PNG',
description: 'Закрытие: заполняет одиночные прозрачные точки внутри объекта.',
params: { radius: 'Радиус закрытия, px' }
},
'remove-color-from-png': {
title: 'Удалить цвет из PNG (прозрачность)',
description: 'Делает прозрачными все пиксели, близкие к выбранному цвету. Порог задаёт допустимое отклонение в процентах от максимального цветового расстояния.',
params: { targetColor: 'Цвет для удаления', tolerance: 'Порог похожести, %' }
},
'png-info': {
title: 'Информация о PNG',
description: 'Показывает размеры, наличие альфа-канала и количество уникальных цветов загруженного изображения.'
},
'create-empty-png': {
title: 'Создать пустой PNG',
description: 'Генерирует холст выбранного размера — прозрачный или залитый цветом.',
params: { width: 'Ширина', height: 'Высота', transparent: 'Прозрачный', color: 'Цвет' }
},
'single-color-png': {
title: 'Создать одноцветный PNG',
description: 'Генерирует прямоугольник заданного размера и цвета.',
params: { width: 'Ширина', height: 'Высота', color: 'Цвет' }
},
'random-noise-png': {
title: 'Создать случайный шум PNG',
description: 'Генерирует картинку со случайными пикселями. Зерно фиксирует результат: одно зерно — одна картинка.',
params: { width: 'Ширина', height: 'Высота', seed: 'Зерно' }
},
'linear-gradient-png': {
title: 'Создать градиент PNG',
description: 'Генерирует плавный переход между двумя цветами по горизонтали или вертикали.',
params: {
width: 'Ширина',
height: 'Высота',
fromColor: 'Цвет начала',
toColor: 'Цвет конца',
direction: 'Направление'
},
options: { direction: { horizontal: 'По горизонтали', vertical: 'По вертикали' } }
},
'png-is-grayscale': {
title: 'Проверить: PNG монохромный?',
description: 'Сообщает, состоит ли изображение только из оттенков серого.',
results: {
grayscaleYes: 'Да — все пиксели являются оттенками серого.',
grayscaleNo: 'Нет — найдены цветные пиксели.'
}
},
'skew-png': {
title: 'Наклонить PNG',
description: 'Сдвигает содержимое по горизонтали и вертикали — эффект перспективы.',
params: { degX: 'Наклон по X, °', degY: 'Наклон по Y, °' }
},
'rotate-free-png': {
title: 'Повернуть на произвольный угол',
description: 'Поворот на любой угол. Холст расширяется под новые габариты, углы остаются прозрачными.',
params: { angle: 'Угол, °' }
},
'zoom-png': {
title: 'Приблизить PNG',
description: 'Увеличивает содержимое к центру. Холст прежнего размера — края обрезаются.',
params: { scale: 'Масштаб, %' }
},
'shift-png': {
title: 'Сдвинуть PNG',
description: 'Перемещает содержимое на заданное смещение по X и Y.',
params: { offsetX: 'Смещение X, px', offsetY: 'Смещение Y, px', color: 'Цвет фона' }
},
'vignette-png': {
title: 'Виньетка PNG',
description: 'Плавно затемняет края изображения, центр не затрагивает.',
params: { strength: 'Сила затемнения, %' }
},
'jpeg-artifacts-png': {
title: 'Артефакты JPEG',
description: 'Имитирует пережатие в JPEG с низким качеством — видимые квадраты и размытие цветов.',
params: { quality: 'Качество JPEG' }
},
'gamma-png': {
title: 'Гамма-коррекция PNG',
description: 'Корректирует яркость средних тонов. <1 темнее, >1 светлее, 1 — без изменений.',
params: { value: 'Гамма' }
},
'auto-contrast-png': {
title: 'Автоконтраст PNG',
description: 'Растягивает диапазон каждого канала на весь доступный диапазон яркости.'
},
'temperature-png': {
title: 'Температура PNG',
description: 'Положительные значения делают изображение теплее (оранжевее), отрицательные — холоднее (синеватее).',
params: { percent: 'Температура' }
},
'tint-png': {
title: 'Тонировать PNG',
description: 'Умножает цветовые каналы на выбранный оттенок с заданной силой.',
params: { color: 'Цвет тонирования', strength: 'Сила, %' }
},
'svg-to-png': {
title: 'SVG в PNG',
description: 'Декодирует SVG-разметку в растровое изображение. Вставьте SVG-код слева.',
params: { width: 'Ширина результата, px' }
},
'png-is-transparent': {
title: 'Проверить: PNG прозрачный?',
description: 'Сообщает, есть ли в изображении прозрачные или полупрозрачные пиксели.',
results: {
transparentYes: 'Да — есть прозрачные или полупрозрачные пиксели.',
transparentNo: 'Нет — все пиксели полностью непрозрачны.'
}
},
'png-orientation': {
title: 'Ориентация PNG',
description: 'Сообщает, портрет это, ландшафт или квадрат.',
results: {
orientationPortrait: 'Портрет — высота больше ширины.',
orientationLandscape: 'Ландшафт — ширина больше высоты.',
orientationSquare: 'Квадрат — стороны равны.'
}
}
}
};