mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
feat: move routes to slugs
This commit is contained in:
@@ -166,7 +166,7 @@ export const en: Dict = {
|
||||
textRequired: "Enter text first",
|
||||
workerFailed: "Worker execution failed",
|
||||
workerUnavailable: "Worker is unavailable",
|
||||
notFound: "Tool not found",
|
||||
notFound: "Page not found",
|
||||
noWatermark: "Pick a watermark image first",
|
||||
badTransform: "Degenerate transformation matrix",
|
||||
skewAngle: "Skew angles cannot be 90° or -90°",
|
||||
@@ -189,7 +189,6 @@ export const en: Dict = {
|
||||
"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}",
|
||||
@@ -201,7 +200,7 @@ export const en: Dict = {
|
||||
cropSize: "Crop width and height must be positive",
|
||||
sizePositive: "Dimensions must be positive and finite",
|
||||
tooManyParts: "Too many parts ({count}). Maximum is 1000.",
|
||||
toolUnknown: 'No tool is registered under "{id}".',
|
||||
pageUnknown: 'No page is registered under "{slug}".',
|
||||
},
|
||||
fields: {
|
||||
alphaThreshold: "Alpha threshold",
|
||||
|
||||
@@ -167,7 +167,7 @@ export const ru: Dict = {
|
||||
textRequired: "Сначала введите текст",
|
||||
workerFailed: "Ошибка исполнения в воркере",
|
||||
workerUnavailable: "Воркер недоступен",
|
||||
notFound: "Инструмент не найден",
|
||||
notFound: "Страница не найдена",
|
||||
noWatermark: "Сначала выберите картинку-знак",
|
||||
badTransform: "Вырожденная матрица трансформации",
|
||||
skewAngle: "Углы наклона не могут быть 90° или -90°",
|
||||
@@ -190,7 +190,6 @@ export const ru: Dict = {
|
||||
"Каждый пиксель — 8 hex-символов RRGGBBAA, значения через пробел",
|
||||
pixelCountMismatch:
|
||||
"Число пикселей ({count}) не делится на ширину {width} без остатка",
|
||||
toolNotFound: 'Инструмент "{id}" не найден',
|
||||
badJson: "Файл не является корректным JSON",
|
||||
badPipelineShape: "Структура файла не похожа на цепочку шагов",
|
||||
pipelineVersion: "Неподдерживаемая версия цепочки: {version}",
|
||||
@@ -202,7 +201,7 @@ export const ru: Dict = {
|
||||
cropSize: "Ширина и высота области обрезки должны быть положительными",
|
||||
sizePositive: "Размеры должны быть положительными и конечными",
|
||||
tooManyParts: "Слишком много частей ({count}). Ограничение — 1000.",
|
||||
toolUnknown: "Инструмента с id «{id}» нет в реестре.",
|
||||
pageUnknown: "Страницы «{slug}» нет в каталоге.",
|
||||
},
|
||||
fields: {
|
||||
alphaThreshold: "Порог альфы",
|
||||
|
||||
@@ -64,11 +64,12 @@ describe("Смоук §6 i18n (новый UI)", () => {
|
||||
expect(t("errors.badHex", { value: "#zz" })).toBe(
|
||||
'Некорректный HEX-цвет: "#zz"',
|
||||
);
|
||||
expect(t("errors.toolNotFound", { id: "x" })).toContain("не найден");
|
||||
expect(t("errors.pageUnknown", { slug: "x" })).toContain("каталоге");
|
||||
setLocale("en");
|
||||
expect(t("errors.badHex", { value: "#zz" })).toBe(
|
||||
'Invalid HEX color: "#zz"',
|
||||
);
|
||||
expect(t("errors.pageUnknown", { slug: "x" })).toContain("No page");
|
||||
});
|
||||
|
||||
it("6. Ё не мешает нормализации поискового запроса", () => {
|
||||
|
||||
Reference in New Issue
Block a user