i18n: locales completas (es+en) + LoginView traducido
This commit is contained in:
@@ -29,5 +29,190 @@
|
||||
"about": "About",
|
||||
"documentation": "Documentation",
|
||||
"logout": "Log out"
|
||||
},
|
||||
"login": {
|
||||
"title": "Sign in",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"rememberMe": "Remember me",
|
||||
"loggingIn": "Signing in...",
|
||||
"submit": "Sign in"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Loading...",
|
||||
"retry": "Retry",
|
||||
"backToProjects": "← Back to Projects",
|
||||
"noDescription": "No description"
|
||||
},
|
||||
"sidebar": {
|
||||
"navigation": "Navigation",
|
||||
"diagnosis": "Diagnosis",
|
||||
"calendar": "Calendar",
|
||||
"scheduler": "Scheduler",
|
||||
"projectsGroup": "Projects ({count})",
|
||||
"unnamedProject": "Project {id}",
|
||||
"projectId": "Project {id}",
|
||||
"userAlt": "User",
|
||||
"userFallback": "User",
|
||||
"logout": "Log out"
|
||||
},
|
||||
"dashboard": {
|
||||
"epics": "Epics",
|
||||
"epicsSubtitle": "Timeline activities",
|
||||
"hus": "User Stories",
|
||||
"husSubtitle": "User stories",
|
||||
"inProgress": "In progress",
|
||||
"activeHus": "Active stories",
|
||||
"sessions": "Sessions",
|
||||
"sessionsSubtitle": "Logbooks",
|
||||
"description": "Description",
|
||||
"noDescription": "No description",
|
||||
"epicsCount": "Epics · {count}",
|
||||
"epicFallback": "Epic {id}",
|
||||
"userStoriesTitle": "User Stories",
|
||||
"husCount": "{count} stories",
|
||||
"code": "Code",
|
||||
"title": "Title",
|
||||
"status": "Status",
|
||||
"priority": "Priority",
|
||||
"noUserStories": "No user stories",
|
||||
"selectProject": "Select a project from the sidebar"
|
||||
},
|
||||
"status": {
|
||||
"backlog": "Backlog",
|
||||
"todo": "To do",
|
||||
"inProgress": "In progress",
|
||||
"doing": "Doing",
|
||||
"wip": "WIP",
|
||||
"done": "Done",
|
||||
"completed": "Completed",
|
||||
"blocked": "Blocked",
|
||||
"review": "Review",
|
||||
"testing": "Testing"
|
||||
},
|
||||
"projects": {
|
||||
"title": "Projects",
|
||||
"subtitle": "Projects assigned in KAPPA",
|
||||
"countLabel": "{count} project | {count} projects",
|
||||
"loadError": "Error loading projects",
|
||||
"emptyTitle": "No assigned projects",
|
||||
"emptyDescription": "You have no active projects in KAPPA.",
|
||||
"noDescription": "No description",
|
||||
"unnamedFallback": "Project {id}"
|
||||
},
|
||||
"users": {
|
||||
"teamTitle": "Team",
|
||||
"teamSubtitle": "{users} members · {emps} assignments in KAPPA",
|
||||
"activeCount": "{count} active",
|
||||
"loadError": "Error loading users",
|
||||
"emptyTitle": "No users",
|
||||
"emptyDescription": "No users found in KAPPA.",
|
||||
"teamMembers": "Team members · {count}",
|
||||
"projectCount": "{count} project | {count} projects",
|
||||
"allUsers": "All users",
|
||||
"name": "Name",
|
||||
"email": "Email",
|
||||
"role": "Role",
|
||||
"cell": "Cell",
|
||||
"seniority": "Seniority",
|
||||
"projects": "Projects",
|
||||
"assignments": "Assignments",
|
||||
"solo": "Unassigned"
|
||||
},
|
||||
"holidays": {
|
||||
"newYear": "New Year",
|
||||
"threeKings": "Epiphany",
|
||||
"stJoseph": "St. Joseph",
|
||||
"maundyThursday": "Maundy Thursday",
|
||||
"goodFriday": "Good Friday",
|
||||
"easterSunday": "Easter Sunday",
|
||||
"laborDay": "Labor Day",
|
||||
"ascension": "Ascension",
|
||||
"corpusChristi": "Corpus Christi",
|
||||
"sacredHeart": "Sacred Heart",
|
||||
"stPeterPaul": "St. Peter & Paul",
|
||||
"independenceDay": "Independence Day",
|
||||
"boyacaBattle": "Battle of Boyacá",
|
||||
"assumption": "Assumption",
|
||||
"columbusDay": "Columbus Day",
|
||||
"allSaints": "All Saints",
|
||||
"cartagenaIndependence": "Cartagena Independence",
|
||||
"immaculateConception": "Immaculate Conception",
|
||||
"christmas": "Christmas"
|
||||
},
|
||||
"calendar": {
|
||||
"today": "Today",
|
||||
"workday": "Workday",
|
||||
"weekend": "Weekend",
|
||||
"holiday": "Holiday",
|
||||
"holidayLabel": "Holiday: {name}",
|
||||
"weekendLabel": "Weekend",
|
||||
"workdayLabel": "Workday",
|
||||
"months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
"weekdaysShort": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
|
||||
},
|
||||
"tabs": {
|
||||
"metrics": "Metrics",
|
||||
"metricsDesc": "Indicators and general KPIs",
|
||||
"projects": "Projects",
|
||||
"projectsDesc": "Projects assigned in KAPPA",
|
||||
"lifecycle": "Lifecycle",
|
||||
"lifecycleDesc": "Project lifecycle tracking",
|
||||
"analytics": "Analytics",
|
||||
"analyticsDesc": "Metrics and statistics",
|
||||
"team": "Team",
|
||||
"teamDesc": "Team members and workload",
|
||||
"documents": "Documents",
|
||||
"documentsDesc": "Document library",
|
||||
"dataLibrary": "Data Library",
|
||||
"dataLibraryDesc": "Data and resource repository",
|
||||
"reports": "Reports",
|
||||
"reportsDesc": "Generated reports",
|
||||
"wordAssistant": "Word Assistant",
|
||||
"wordAssistantDesc": "AI-powered document generation",
|
||||
"templates": "Templates",
|
||||
"templatesDesc": "Template management"
|
||||
},
|
||||
"cards": {
|
||||
"activeProjects": "Active projects",
|
||||
"completed": "Completed",
|
||||
"paused": "Paused",
|
||||
"pending": "Pending",
|
||||
"inPlanning": "In planning",
|
||||
"inDevelopment": "In development",
|
||||
"inReview": "In review",
|
||||
"delivered": "Delivered",
|
||||
"recordedHours": "Recorded hours",
|
||||
"deliveredHUs": "Delivered stories",
|
||||
"avgTime": "Average time",
|
||||
"satisfaction": "Satisfaction",
|
||||
"members": "Members",
|
||||
"assigned": "Assigned",
|
||||
"available": "Available",
|
||||
"productivity": "Productivity",
|
||||
"documents": "Documents",
|
||||
"shared": "Shared",
|
||||
"drafts": "Drafts",
|
||||
"templates": "Templates",
|
||||
"files": "Files",
|
||||
"databases": "Databases",
|
||||
"connectedApis": "Connected APIs",
|
||||
"storageUsed": "Storage used",
|
||||
"reportsThisMonth": "Reports this month",
|
||||
"scheduled": "Scheduled",
|
||||
"exported": "Exported",
|
||||
"docsCreated": "Documents created",
|
||||
"templatesUsed": "Templates used",
|
||||
"tokensConsumed": "Tokens consumed",
|
||||
"pendingDocs": "Pending docs",
|
||||
"activeTemplates": "Active templates",
|
||||
"usedThisMonth": "Used this month",
|
||||
"categories": "Categories",
|
||||
"upcoming": "Upcoming",
|
||||
"trendingUp": "Trending up",
|
||||
"trendingDown": "Trending down"
|
||||
},
|
||||
"workitems": {
|
||||
"unnamedEpic": "Epic {id}"
|
||||
}
|
||||
}
|
||||
@@ -29,5 +29,190 @@
|
||||
"about": "Acerca de",
|
||||
"documentation": "Documentación",
|
||||
"logout": "Cerrar sesión"
|
||||
},
|
||||
"login": {
|
||||
"title": "Iniciar sesión",
|
||||
"email": "Email",
|
||||
"password": "Contraseña",
|
||||
"rememberMe": "Recordarme",
|
||||
"loggingIn": "Ingresando...",
|
||||
"submit": "Iniciar sesión"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Cargando...",
|
||||
"retry": "Reintentar",
|
||||
"backToProjects": "← Volver a Proyectos",
|
||||
"noDescription": "Sin descripción"
|
||||
},
|
||||
"sidebar": {
|
||||
"navigation": "Navegación",
|
||||
"diagnosis": "Diagnóstico",
|
||||
"calendar": "Calendario",
|
||||
"scheduler": "Recetas",
|
||||
"projectsGroup": "Proyectos ({count})",
|
||||
"unnamedProject": "Proyecto {id}",
|
||||
"projectId": "Proyecto {id}",
|
||||
"userAlt": "Usuario",
|
||||
"userFallback": "Usuario",
|
||||
"logout": "Cerrar sesión"
|
||||
},
|
||||
"dashboard": {
|
||||
"epics": "Épicas",
|
||||
"epicsSubtitle": "Actividades del cronograma",
|
||||
"hus": "HUs",
|
||||
"husSubtitle": "Historias de usuario",
|
||||
"inProgress": "En progreso",
|
||||
"activeHus": "HUs activas",
|
||||
"sessions": "Sesiones",
|
||||
"sessionsSubtitle": "Bitácoras",
|
||||
"description": "Descripción",
|
||||
"noDescription": "Sin descripción",
|
||||
"epicsCount": "Épicas · {count}",
|
||||
"epicFallback": "Épica {id}",
|
||||
"userStoriesTitle": "Historias de Usuario",
|
||||
"husCount": "{count} HUs",
|
||||
"code": "Código",
|
||||
"title": "Título",
|
||||
"status": "Estado",
|
||||
"priority": "Prioridad",
|
||||
"noUserStories": "Sin historias de usuario",
|
||||
"selectProject": "Seleccioná un proyecto del panel lateral"
|
||||
},
|
||||
"status": {
|
||||
"backlog": "Backlog",
|
||||
"todo": "Por hacer",
|
||||
"inProgress": "En progreso",
|
||||
"doing": "Haciendo",
|
||||
"wip": "WIP",
|
||||
"done": "Hecho",
|
||||
"completed": "Completado",
|
||||
"blocked": "Bloqueado",
|
||||
"review": "Revisión",
|
||||
"testing": "Pruebas"
|
||||
},
|
||||
"projects": {
|
||||
"title": "Proyectos",
|
||||
"subtitle": "Proyectos asignados en KAPPA",
|
||||
"countLabel": "{count} proyecto | {count} proyectos",
|
||||
"loadError": "Error al cargar proyectos",
|
||||
"emptyTitle": "Sin proyectos asignados",
|
||||
"emptyDescription": "No tienes proyectos activos en KAPPA.",
|
||||
"noDescription": "Sin descripción",
|
||||
"unnamedFallback": "Proyecto {id}"
|
||||
},
|
||||
"users": {
|
||||
"teamTitle": "Equipo",
|
||||
"teamSubtitle": "{users} miembros · {emps} asignaciones en KAPPA",
|
||||
"activeCount": "{count} activos",
|
||||
"loadError": "Error al cargar usuarios",
|
||||
"emptyTitle": "Sin usuarios",
|
||||
"emptyDescription": "No se encontraron usuarios en KAPPA.",
|
||||
"teamMembers": "Miembros del equipo · {count}",
|
||||
"projectCount": "{count} proyecto | {count} proyectos",
|
||||
"allUsers": "Todos los usuarios",
|
||||
"name": "Nombre",
|
||||
"email": "Email",
|
||||
"role": "Rol",
|
||||
"cell": "Célula",
|
||||
"seniority": "Seniority",
|
||||
"projects": "Proyectos",
|
||||
"assignments": "Asignaciones",
|
||||
"solo": "Sin asignación"
|
||||
},
|
||||
"holidays": {
|
||||
"newYear": "Año Nuevo",
|
||||
"threeKings": "Reyes Magos",
|
||||
"stJoseph": "San José",
|
||||
"maundyThursday": "Jueves Santo",
|
||||
"goodFriday": "Viernes Santo",
|
||||
"easterSunday": "Domingo de Pascua",
|
||||
"laborDay": "Día del Trabajo",
|
||||
"ascension": "Ascensión del Señor",
|
||||
"corpusChristi": "Corpus Christi",
|
||||
"sacredHeart": "Sagrado Corazón",
|
||||
"stPeterPaul": "San Pedro y San Pablo",
|
||||
"independenceDay": "Día de la Independencia",
|
||||
"boyacaBattle": "Batalla de Boyacá",
|
||||
"assumption": "Asunción de la Virgen",
|
||||
"columbusDay": "Día de la Raza",
|
||||
"allSaints": "Todos los Santos",
|
||||
"cartagenaIndependence": "Indep. de Cartagena",
|
||||
"immaculateConception": "Inmaculada Concepción",
|
||||
"christmas": "Navidad"
|
||||
},
|
||||
"calendar": {
|
||||
"today": "Hoy",
|
||||
"workday": "Laboral",
|
||||
"weekend": "Fin de semana",
|
||||
"holiday": "Feriado",
|
||||
"holidayLabel": "Feriado: {name}",
|
||||
"weekendLabel": "Fin de semana",
|
||||
"workdayLabel": "Día laboral",
|
||||
"months": ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
|
||||
"weekdaysShort": ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"]
|
||||
},
|
||||
"tabs": {
|
||||
"metrics": "Métricas",
|
||||
"metricsDesc": "Indicadores y KPIs generales",
|
||||
"projects": "Proyectos",
|
||||
"projectsDesc": "Proyectos asignados en KAPPA",
|
||||
"lifecycle": "Ciclo de Vida",
|
||||
"lifecycleDesc": "Seguimiento del ciclo de vida de los proyectos",
|
||||
"analytics": "Analíticas",
|
||||
"analyticsDesc": "Métricas y estadísticas",
|
||||
"team": "Equipo",
|
||||
"teamDesc": "Miembros del equipo y su carga de trabajo",
|
||||
"documents": "Documentos",
|
||||
"documentsDesc": "Biblioteca de documentos",
|
||||
"dataLibrary": "Biblioteca de Datos",
|
||||
"dataLibraryDesc": "Repositorio de datos y recursos",
|
||||
"reports": "Reportes",
|
||||
"reportsDesc": "Reportes generados",
|
||||
"wordAssistant": "Asistente Word",
|
||||
"wordAssistantDesc": "Generación de documentos con IA",
|
||||
"templates": "Plantillas",
|
||||
"templatesDesc": "Gestión de plantillas"
|
||||
},
|
||||
"cards": {
|
||||
"activeProjects": "Proyectos activos",
|
||||
"completed": "Completados",
|
||||
"paused": "En pausa",
|
||||
"pending": "Por iniciar",
|
||||
"inPlanning": "En planificación",
|
||||
"inDevelopment": "En desarrollo",
|
||||
"inReview": "En revisión",
|
||||
"delivered": "Entregados",
|
||||
"recordedHours": "Horas registradas",
|
||||
"deliveredHUs": "HU entregadas",
|
||||
"avgTime": "Tiempo promedio",
|
||||
"satisfaction": "Satisfacción",
|
||||
"members": "Miembros",
|
||||
"assigned": "Asignados",
|
||||
"available": "Disponibles",
|
||||
"productivity": "Productividad",
|
||||
"documents": "Documentos",
|
||||
"shared": "Compartidos",
|
||||
"drafts": "Borradores",
|
||||
"templates": "Plantillas",
|
||||
"files": "Archivos",
|
||||
"databases": "Bases de datos",
|
||||
"connectedApis": "APIs conectadas",
|
||||
"storageUsed": "Storage usado",
|
||||
"reportsThisMonth": "Reportes este mes",
|
||||
"scheduled": "Programados",
|
||||
"exported": "Exportados",
|
||||
"docsCreated": "Documentos creados",
|
||||
"templatesUsed": "Plantillas usadas",
|
||||
"tokensConsumed": "Tokens consumidos",
|
||||
"pendingDocs": "Docs pendientes",
|
||||
"activeTemplates": "Plantillas activas",
|
||||
"usedThisMonth": "Usadas este mes",
|
||||
"categories": "Categorías",
|
||||
"upcoming": "Próximas",
|
||||
"trendingUp": "Tendencia al alza",
|
||||
"trendingDown": "Tendencia a la baja"
|
||||
},
|
||||
"workitems": {
|
||||
"unnamedEpic": "Épica {id}"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useAuthStore } from '@/stores/auth'
|
||||
import { Button } from '@/components/ui/button'
|
||||
import { Input } from '@/components/ui/input'
|
||||
@@ -8,6 +9,7 @@ import { Label } from '@/components/ui/label'
|
||||
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
|
||||
import { Eye, EyeOff } from 'lucide-vue-next'
|
||||
|
||||
const { t } = useI18n()
|
||||
const auth = useAuthStore()
|
||||
const email = ref('')
|
||||
const password = ref('')
|
||||
@@ -41,17 +43,17 @@ async function handleLogin() {
|
||||
|
||||
<Card class="w-full max-w-sm bg-gradient-to-t from-primary/5 to-card shadow-xs dark:bg-card">
|
||||
<CardHeader>
|
||||
<CardTitle class="text-2xl">Iniciar sesión</CardTitle>
|
||||
<CardTitle class="text-2xl">{{ t('login.title') }}</CardTitle>
|
||||
</CardHeader>
|
||||
|
||||
<CardContent>
|
||||
<form @submit.prevent="handleLogin" class="grid gap-4">
|
||||
<div class="grid gap-2">
|
||||
<Label for="email">Email</Label>
|
||||
<Label for="email">{{ t('login.email') }}</Label>
|
||||
<Input id="email" v-model="email" type="email" placeholder="ricardo@..." autocomplete="email" />
|
||||
</div>
|
||||
<div class="grid gap-2">
|
||||
<Label for="password">Contraseña</Label>
|
||||
<Label for="password">{{ t('login.password') }}</Label>
|
||||
<div class="relative">
|
||||
<Input
|
||||
id="password"
|
||||
@@ -74,7 +76,7 @@ async function handleLogin() {
|
||||
|
||||
<div class="flex items-center gap-2">
|
||||
<Checkbox id="remember" v-model:checked="rememberMe" />
|
||||
<Label for="remember" class="text-sm font-normal cursor-pointer">Recordarme</Label>
|
||||
<Label for="remember" class="text-sm font-normal cursor-pointer">{{ t('login.rememberMe') }}</Label>
|
||||
</div>
|
||||
|
||||
<div v-if="auth.error" class="text-sm text-destructive bg-destructive/10 rounded-md px-3 py-2">
|
||||
@@ -82,7 +84,7 @@ async function handleLogin() {
|
||||
</div>
|
||||
|
||||
<Button type="submit" class="w-full" :disabled="auth.loading">
|
||||
{{ auth.loading ? 'Ingresando...' : 'Iniciar sesión' }}
|
||||
{{ auth.loading ? t('login.loggingIn') : t('login.submit') }}
|
||||
</Button>
|
||||
</form>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user