From 3f01d5ecf1112ccf77abcc2d9c1a18f0be282c2f Mon Sep 17 00:00:00 2001 From: David Date: Wed, 7 Oct 2026 18:58:21 +0200 Subject: [PATCH] Reunir traducciones en ficheros JSON --- README.md | 1 + TODO.md | 1 + apps/web/package.json | 2 +- apps/web/src/app.tsx | 13 +- apps/web/src/i18n.test.ts | 54 + docs/traducciones.md | 39 + modules/assets/src/common/locales/en.json | 273 +++++ modules/assets/src/common/locales/es.json | 273 +++++ modules/assets/src/web/brand-i18n.ts | 64 - modules/assets/src/web/i18n.ts | 216 +--- modules/assets/src/web/inventory-i18n.ts | 128 -- modules/assets/src/web/relationship-i18n.ts | 64 - modules/assets/src/web/support-i18n.ts | 108 -- modules/assets/src/web/workstation-i18n.ts | 60 - modules/companies/src/common/locales/en.json | 1033 +++++++++++++++++ modules/companies/src/common/locales/es.json | 1033 +++++++++++++++++ .../companies/src/web/access/access.test.tsx | 2 +- .../companies/src/web/access/entity-help.tsx | 2 +- modules/companies/src/web/access/help-i18n.ts | 272 ----- modules/companies/src/web/access/i18n.ts | 295 +---- .../src/web/applications/application-i18n.ts | 83 -- .../src/web/certificates/certificate-i18n.ts | 82 -- .../companies/src/web/folders/folder-i18n.ts | 38 - modules/companies/src/web/i18n.ts | 274 +---- .../intervention-templates/template-i18n.ts | 88 -- .../web/interventions/intervention-i18n.ts | 171 --- modules/companies/src/web/mail/mail-i18n.ts | 147 --- .../companies/src/web/mail/mailbox-i18n.ts | 74 -- .../src/web/printers/printer-i18n.ts | 86 -- .../src/web/processes/process-i18n.ts | 193 --- .../src/web/profiles/environment-i18n.ts | 86 -- .../src/web/profiles/profile-i18n.ts | 96 -- .../companies/src/web/remote/remote-i18n.ts | 116 -- .../src/web/telework/telework-i18n.ts | 97 -- .../companies/src/web/tickets/ticket-i18n.ts | 148 --- modules/core/src/common/locales/en.json | 6 +- modules/core/src/common/locales/es.json | 6 +- modules/identity/src/common/locales/en.json | 52 + modules/identity/src/common/locales/es.json | 52 + modules/identity/src/web/i18n.ts | 111 +- modules/resources/src/common/locales/en.json | 140 +++ modules/resources/src/common/locales/es.json | 140 +++ modules/resources/src/web/i18n.ts | 210 +--- modules/resources/src/web/inventory-i18n.ts | 116 -- packages/shadcn-ui/src/components/dialog.tsx | 12 +- packages/shadcn-ui/src/entity-list.test.tsx | 12 +- packages/shadcn-ui/src/lib/entity-list.ts | 58 +- packages/shadcn-ui/src/locales/en.json | 22 + packages/shadcn-ui/src/locales/es.json | 22 + 49 files changed, 3210 insertions(+), 3461 deletions(-) create mode 100644 apps/web/src/i18n.test.ts create mode 100644 docs/traducciones.md create mode 100644 modules/assets/src/common/locales/en.json create mode 100644 modules/assets/src/common/locales/es.json delete mode 100644 modules/assets/src/web/brand-i18n.ts delete mode 100644 modules/assets/src/web/inventory-i18n.ts delete mode 100644 modules/assets/src/web/relationship-i18n.ts delete mode 100644 modules/assets/src/web/support-i18n.ts delete mode 100644 modules/assets/src/web/workstation-i18n.ts create mode 100644 modules/companies/src/common/locales/en.json create mode 100644 modules/companies/src/common/locales/es.json delete mode 100644 modules/companies/src/web/access/help-i18n.ts delete mode 100644 modules/companies/src/web/applications/application-i18n.ts delete mode 100644 modules/companies/src/web/certificates/certificate-i18n.ts delete mode 100644 modules/companies/src/web/folders/folder-i18n.ts delete mode 100644 modules/companies/src/web/intervention-templates/template-i18n.ts delete mode 100644 modules/companies/src/web/interventions/intervention-i18n.ts delete mode 100644 modules/companies/src/web/mail/mail-i18n.ts delete mode 100644 modules/companies/src/web/mail/mailbox-i18n.ts delete mode 100644 modules/companies/src/web/printers/printer-i18n.ts delete mode 100644 modules/companies/src/web/processes/process-i18n.ts delete mode 100644 modules/companies/src/web/profiles/environment-i18n.ts delete mode 100644 modules/companies/src/web/profiles/profile-i18n.ts delete mode 100644 modules/companies/src/web/remote/remote-i18n.ts delete mode 100644 modules/companies/src/web/telework/telework-i18n.ts delete mode 100644 modules/companies/src/web/tickets/ticket-i18n.ts create mode 100644 modules/identity/src/common/locales/en.json create mode 100644 modules/identity/src/common/locales/es.json create mode 100644 modules/resources/src/common/locales/en.json create mode 100644 modules/resources/src/common/locales/es.json delete mode 100644 modules/resources/src/web/inventory-i18n.ts create mode 100644 packages/shadcn-ui/src/locales/en.json create mode 100644 packages/shadcn-ui/src/locales/es.json diff --git a/README.md b/README.md index d9421a9..a568673 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ Aplicación interna para soporte técnico a pequeñas empresas. - [Perfiles de trabajo](docs/perfiles-de-trabajo.md) - [Buzones y correo por perfil](docs/correos-en-dispositivos.md) - [Componentes de interfaz](docs/componentes-de-interfaz.md) +- [Traducciones de la interfaz](docs/traducciones.md) - [Alcance y siguientes entregas](docs/plan-de-desarrollo.md) Incluye acceso, sesiones persistentes, gestión de usuarios y compañías clientes con personas, departamentos, asignaciones con historial y sedes, junto con catálogos informáticos, cuentas, grupos, recursos, permisos y necesidades con cobertura calculada. También incluye inventario configurable, puestos con activos exclusivos y compartidos, perfiles de trabajo por persona y dispositivo, buzones independientes y correo POP/IMAP por perfil con periodos de uso e historial. Las configuraciones del entorno y los tickets se incorporarán progresivamente. diff --git a/TODO.md b/TODO.md index 2b7f995..3a6e77e 100644 --- a/TODO.md +++ b/TODO.md @@ -2,3 +2,4 @@ - Traducciones: Quiero que audites todo el código para extraer y reunir todas las cadenas de traducciones en ficheros JSON. El modelo a seguir es el módulo "core". En "modules/core/src/common/locales" se pueden ver los fichero "es.json" y "en.json" con las cadenas de cada idioma. Quiero lo mismo para el resto de módulos. Asi es más facil de mantener y de añadir nuevos idiomas ya que todo está localizado en un mismo sitio. +- Quiero añadir una página "Home" a modo de tablero inicial o dashboard inicial. Quiero que en esa página inicial se muestre información resumen para que el usuario, cuando entre, se haga una idea de la situación de un vistazo. Revisa si hay una pagina similar en otras aplicaciones similares del mercado y muestra en una lista sugerencias de la información a presentar. No cambies nada. \ No newline at end of file diff --git a/apps/web/package.json b/apps/web/package.json index 68ae166..eae1e60 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite --host --clearScreen false", "typecheck": "tsc -p tsconfig.json", - "test": "TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/app.test.tsx", + "test": "TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/app.test.tsx src/i18n.test.ts", "build": "vite build", "preview": "vite preview --host 127.0.0.1" }, diff --git a/apps/web/src/app.tsx b/apps/web/src/app.tsx index 3d7ef17..bf1e12a 100644 --- a/apps/web/src/app.tsx +++ b/apps/web/src/app.tsx @@ -10,13 +10,12 @@ import { import { useId, useState } from "react"; import { useTranslation } from "react-i18next"; -const LANGUAGE_OPTIONS = [ - { value: "es", label: "Español" }, - { value: "en", label: "English" }, -]; - export function App() { const { t, i18n } = useTranslation("core"); + const languageOptions = ["es", "en"].map((value) => ({ + value, + label: t(`languageNames.${value}`), + })); const [languageError, setLanguageError] = useState(false); const languageLabelId = useId(); @@ -30,7 +29,7 @@ export function App() {
{t("language")}