feat(i18n): localize shell and common UI

This commit is contained in:
2026-06-11 17:54:56 +02:00
parent c3cf4182ad
commit 2fa6611719
15 changed files with 477 additions and 136 deletions
+107
View File
@@ -44,6 +44,113 @@ describe("i18n dictionaries", () => {
})
})
it("provides localized shell and common copy for English and Spanish", () => {
expect(getDictionary("en").layout).toEqual({
sidebar: {
home: "Home",
inventory: "Inventory",
items: "Items",
categories: "Categories",
assets: "Assets",
recipients: "Recipients",
movements: "Movements",
assignments: "Assignments",
users: "Users",
},
navbar: {
accountLabel: "My Account",
},
addMenu: {
add: "Add",
import: "Import",
category: "Category",
item: "Item",
asset: "Asset",
recipient: "Recipient",
assignment: "Assignment",
},
resetDatabase: {
idle: "Reset Database",
loading: "Resetting...",
successToast: "Database reset successfully",
errorToast: "Error resetting database",
},
logout: {
label: "Sign Out",
},
})
expect(getDictionary("es").layout).toEqual({
sidebar: {
home: "Inicio",
inventory: "Inventario",
items: "Artículos",
categories: "Categorías",
assets: "Activos",
recipients: "Destinatarios",
movements: "Movimientos",
assignments: "Asignaciones",
users: "Usuarios",
},
navbar: {
accountLabel: "Mi cuenta",
},
addMenu: {
add: "Añadir",
import: "Importar",
category: "Categoría",
item: "Artículo",
asset: "Activo",
recipient: "Destinatario",
assignment: "Asignación",
},
resetDatabase: {
idle: "Reiniciar base de datos",
loading: "Reiniciando...",
successToast: "Base de datos reiniciada correctamente",
errorToast: "Error al reiniciar la base de datos",
},
logout: {
label: "Cerrar sesión",
},
})
expect(getDictionary("en").common.search).toEqual({
placeholder: "Search...",
label: "Search",
clearLabel: "Clear search",
})
expect(getDictionary("es").common.search).toEqual({
placeholder: "Buscar...",
label: "Buscar",
clearLabel: "Limpiar búsqueda",
})
expect(getDictionary("en").common.pagination).toEqual({
summaryPrefix: "Showing page",
summarySeparator: "of",
previous: "Previous",
next: "Next",
})
expect(getDictionary("es").common.pagination).toEqual({
summaryPrefix: "Mostrando página",
summarySeparator: "de",
previous: "Anterior",
next: "Siguiente",
})
expect(getDictionary("en").common.forbidden).toEqual({
title: "Access denied",
description: "You do not have permission to access this section.",
homeLink: "Back to home",
})
expect(getDictionary("es").common.forbidden).toEqual({
title: "Acceso denegado",
description: "No tienes permisos para acceder a esta sección.",
homeLink: "Volver al inicio",
})
})
it("keeps dashboard home dictionary keys aligned across locales", () => {
expect(getDictionary("en").dashboardHome).toEqual({
heading: "Dashboard",