feat(i18n): localize category action messages

This commit is contained in:
2026-06-12 23:21:08 +02:00
parent e9a07eb28e
commit 9f7d1b8ef8
11 changed files with 222 additions and 32 deletions
+32 -11
View File
@@ -1,18 +1,39 @@
import { z } from "zod"
export const createCategorySchema = z.object({
name: z
.string()
.min(3, {
error: "Name is required and must be at least 3 characters long",
})
.nonempty("Name is required and must be at least 3 characters long"),
})
import type { Dictionary } from "@/i18n/dictionaries"
export type CategorySchemaCopy = Dictionary["inventory"]["categories"]["schema"]
const defaultCategorySchemaCopy: CategorySchemaCopy = {
nameRequired: "Name is required and must be at least 3 characters long",
idRequired: "ID is required",
}
export function buildCreateCategorySchema(copy: CategorySchemaCopy) {
return z.object({
name: z
.string()
.min(3, {
error: copy.nameRequired,
})
.nonempty(copy.nameRequired),
})
}
export function buildUpdateCategorySchema(copy: CategorySchemaCopy) {
return buildCreateCategorySchema(copy).extend({
id: z.string().nonempty(copy.idRequired),
})
}
export const createCategorySchema = buildCreateCategorySchema(
defaultCategorySchemaCopy,
)
export type CreateCategoryFormType = z.infer<typeof createCategorySchema>
export const updateCategorySchema = createCategorySchema.extend({
id: z.string().nonempty("ID is required"),
})
export const updateCategorySchema = buildUpdateCategorySchema(
defaultCategorySchemaCopy,
)
export type UpdateCategoryFormType = z.infer<typeof updateCategorySchema>