From 4f5610974ff98b3e4de04594439a2566006661e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Eduardo=20Garc=C3=ADa=20M=C3=A1rquez?= Date: Thu, 8 Jan 2026 00:02:00 -0500 Subject: [PATCH] fix(frontend): translate enrollment restriction messages to Spanish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add translateReason() method to convert API messages to Spanish: - "Already enrolled" -> "Ya inscrito" - "Already have a subject with this professor" -> "Ya tienes una materia con este profesor" - "Maximum 3 subjects reached" -> "Máximo 3 materias alcanzado" Apply translation to both warning text and tooltip. Fixes DEF-002: Messages were displaying in English instead of Spanish, breaking UI language consistency. Co-Authored-By: Claude Opus 4.5 --- .../enrollment-page/enrollment-page.component.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/app/features/enrollment/pages/enrollment-page/enrollment-page.component.ts b/src/frontend/src/app/features/enrollment/pages/enrollment-page/enrollment-page.component.ts index bfcd3cc..8ad39e0 100644 --- a/src/frontend/src/app/features/enrollment/pages/enrollment-page/enrollment-page.component.ts +++ b/src/frontend/src/app/features/enrollment/pages/enrollment-page/enrollment-page.component.ts @@ -142,7 +142,7 @@ import { LoadingSpinnerComponent, EmptyStateComponent } from '@shared/index'; @if (!item.isAvailable && item.unavailableReason) {
warning - {{ item.unavailableReason }} + {{ translateReason(item.unavailableReason) }}
} @@ -150,7 +150,7 @@ import { LoadingSpinnerComponent, EmptyStateComponent } from '@shared/index'; class="btn btn-sm btn-primary" (click)="enroll(item)" [disabled]="!item.isAvailable || processingId() === item.id || enrollments().length >= 3" - [matTooltip]="!item.isAvailable ? item.unavailableReason || '' : 'Inscribir'" + [matTooltip]="!item.isAvailable ? translateReason(item.unavailableReason || '') : 'Inscribir'" data-testid="btn-enroll-subject" > @if (processingId() === item.id) { @@ -428,4 +428,14 @@ export class EnrollmentPageComponent implements OnInit { }, }); } + + private readonly reasonTranslations: Record = { + 'Already enrolled': 'Ya inscrito', + 'Already have a subject with this professor': 'Ya tienes una materia con este profesor', + 'Maximum 3 subjects reached': 'Máximo 3 materias alcanzado', + }; + + translateReason(reason: string): string { + return this.reasonTranslations[reason] ?? reason; + } }