From 563e920dad8e024fddbe4d862f2005b0cdac0fc5 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Thu, 16 Oct 2025 23:20:06 -0600 Subject: [PATCH] =?UTF-8?q?Traducci=C3=B3n=20completa=20al=20espa=C3=B1ol?= =?UTF-8?q?=20y=20barra=20de=20t=C3=ADtulo=20PWA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Traducir mensajes de API a español - Configurar idioma español en HTML y manifest (lang="es") - Actualizar nombres de app: "Perfil Nucleo" - Crear WindowTitleBar para Window Controls Overlay - Ajustar padding para acomodar barra de título - Traducir campos restantes en componentes legacy --- nuxt4/app/app.vue | 14 ++- nuxt4/app/components/WindowTitleBar.vue | 101 ++++++++++++++++++ .../app/components/auth/EditProfileButton.vue | 4 +- nuxt4/nuxt.config.ts | 8 +- nuxt4/package.json | 2 +- nuxt4/server/api/auth/check-group.post.ts | 2 +- 6 files changed, 122 insertions(+), 9 deletions(-) create mode 100644 nuxt4/app/components/WindowTitleBar.vue diff --git a/nuxt4/app/app.vue b/nuxt4/app/app.vue index 1b35262..adae9c7 100644 --- a/nuxt4/app/app.vue +++ b/nuxt4/app/app.vue @@ -3,6 +3,9 @@ + + + @@ -54,6 +57,9 @@ const showProfileForm = ref(false) // Configurar meta tags para PWA useHead({ + htmlAttrs: { + lang: 'es' + }, link: [ { rel: 'manifest', href: '/manifest.webmanifest' }, { rel: 'icon', type: 'image/svg+xml', href: '/icon.svg' }, @@ -63,7 +69,9 @@ useHead({ { name: 'theme-color', content: '#00DC82' }, { name: 'mobile-web-app-capable', content: 'yes' }, { name: 'apple-mobile-web-app-capable', content: 'yes' }, - { name: 'apple-mobile-web-app-status-bar-style', content: 'default' } + { name: 'apple-mobile-web-app-status-bar-style', content: 'default' }, + { name: 'language', content: 'es' }, + { property: 'og:locale', content: 'es_ES' } ] }) @@ -73,7 +81,9 @@ useHead({ position: relative; z-index: 1; min-height: 100vh; - padding-top: 2rem; + /* Ajustar padding cuando Window Controls Overlay está activo */ + padding-top: max(2rem, env(titlebar-area-height, 0px)); + padding-top: max(2rem, calc(env(titlebar-area-height, 0px) + 1rem)); } .quick-actions { diff --git a/nuxt4/app/components/WindowTitleBar.vue b/nuxt4/app/components/WindowTitleBar.vue new file mode 100644 index 0000000..43de07c --- /dev/null +++ b/nuxt4/app/components/WindowTitleBar.vue @@ -0,0 +1,101 @@ + + + + + + + diff --git a/nuxt4/app/components/auth/EditProfileButton.vue b/nuxt4/app/components/auth/EditProfileButton.vue index d1ffc8a..bb7314e 100644 --- a/nuxt4/app/components/auth/EditProfileButton.vue +++ b/nuxt4/app/components/auth/EditProfileButton.vue @@ -21,7 +21,7 @@ /> - + - + { if (!groupName || typeof groupName !== 'string') { throw createError({ statusCode: 400, - statusMessage: 'Group name is required' + statusMessage: 'El nombre del grupo es requerido' }) }