From 0fb27b1825fbe1c469d3feea3344b1482298f1b8 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 1 Mar 2026 21:22:53 +0000 Subject: [PATCH] feat: translate dashboard page and components to English Co-Authored-By: Claude Opus 4.6 --- apps/web/app/(admin)/dashboard/page.tsx | 24 +++++++++---------- .../components/dashboard/occupancy-chart.tsx | 14 +++++------ .../components/dashboard/quick-actions.tsx | 18 +++++++------- .../components/dashboard/recent-bookings.tsx | 18 +++++++------- apps/web/components/dashboard/stat-card.tsx | 2 +- 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/apps/web/app/(admin)/dashboard/page.tsx b/apps/web/app/(admin)/dashboard/page.tsx index 85a54d3..becc571 100644 --- a/apps/web/app/(admin)/dashboard/page.tsx +++ b/apps/web/app/(admin)/dashboard/page.tsx @@ -67,14 +67,14 @@ export default function DashboardPage() { const response = await fetch(url); if (!response.ok) { - throw new Error("Error al cargar los datos del dashboard"); + throw new Error("Error loading dashboard data"); } const data = await response.json(); setDashboardData(data); } catch (err) { console.error("Dashboard fetch error:", err); - setError(err instanceof Error ? err.message : "Error desconocido"); + setError(err instanceof Error ? err.message : "Unknown error"); } finally { setIsLoading(false); } @@ -84,7 +84,7 @@ export default function DashboardPage() { fetchDashboardData(); }, [fetchDashboardData]); - const userName = session?.user?.name?.split(" ")[0] || "Usuario"; + const userName = session?.user?.name?.split(" ")[0] || "User"; const today = new Date(); return ( @@ -93,10 +93,10 @@ export default function DashboardPage() {

- Bienvenido, {userName} + Welcome, {userName}

- {formatDate(today)} - Panel de administracion + {formatDate(today)} - Admin panel

{selectedSite && ( @@ -121,7 +121,7 @@ export default function DashboardPage() { /> - Mostrando: {selectedSite.name} + Showing: {selectedSite.name}
)} @@ -161,7 +161,7 @@ export default function DashboardPage() { ) : dashboardData ? ( <> - Ocupacion de Canchas + Court Occupancy @@ -57,7 +57,7 @@ export function OccupancyChart({ data, isLoading = false }: OccupancyChartProps) d="M20 12H4M12 20V4" /> -

No hay canchas configuradas

+

No courts configured

@@ -89,7 +89,7 @@ export function OccupancyChart({ data, isLoading = false }: OccupancyChartProps) d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" /> - Ocupacion de Canchas + Court Occupancy
- {court.occupancyPercent}% ocupado + {court.occupancyPercent}% booked - {court.availableHours - court.bookedHours}h disponible + {court.availableHours - court.bookedHours}h available
@@ -161,11 +161,11 @@ export function OccupancyChart({ data, isLoading = false }: OccupancyChartProps)
- Ocupado + Booked
- Disponible + Available
diff --git a/apps/web/components/dashboard/quick-actions.tsx b/apps/web/components/dashboard/quick-actions.tsx index e310e11..adac923 100644 --- a/apps/web/components/dashboard/quick-actions.tsx +++ b/apps/web/components/dashboard/quick-actions.tsx @@ -14,7 +14,7 @@ interface QuickAction { const quickActions: QuickAction[] = [ { - label: "Nueva Reserva", + label: "New Booking", href: "/bookings", icon: ( ), color: "bg-blue-500 hover:bg-blue-600", - description: "Crear una nueva reserva de cancha", + description: "Create a new court booking", }, { - label: "Abrir Caja", + label: "Open Register", href: "/pos", icon: ( ), color: "bg-green-500 hover:bg-green-600", - description: "Iniciar turno de caja registradora", + description: "Start cash register shift", }, { - label: "Nueva Venta", + label: "New Sale", href: "/pos", icon: ( ), color: "bg-purple-500 hover:bg-purple-600", - description: "Registrar venta en el punto de venta", + description: "Record a point of sale transaction", }, { - label: "Registrar Cliente", + label: "Register Player", href: "/clients", icon: ( ), color: "bg-orange-500 hover:bg-orange-600", - description: "Agregar un nuevo cliente al sistema", + description: "Add a new player to the system", }, ]; @@ -117,7 +117,7 @@ export function QuickActions() { d="M13 10V3L4 14h7v7l9-11h-7z" /> - Acciones Rapidas + Quick Actions diff --git a/apps/web/components/dashboard/recent-bookings.tsx b/apps/web/components/dashboard/recent-bookings.tsx index 8d3e9ce..17546b3 100644 --- a/apps/web/components/dashboard/recent-bookings.tsx +++ b/apps/web/components/dashboard/recent-bookings.tsx @@ -27,23 +27,23 @@ interface RecentBookingsProps { const statusConfig: Record = { PENDING: { - label: "Pendiente", + label: "Pending", className: "bg-yellow-100 text-yellow-700", }, CONFIRMED: { - label: "Confirmada", + label: "Confirmed", className: "bg-blue-100 text-blue-700", }, COMPLETED: { - label: "Completada", + label: "Completed", className: "bg-green-100 text-green-700", }, CANCELLED: { - label: "Cancelada", + label: "Cancelled", className: "bg-red-100 text-red-700", }, NO_SHOW: { - label: "No asistio", + label: "No Show", className: "bg-gray-100 text-gray-700", }, }; @@ -71,11 +71,11 @@ export function RecentBookings({ bookings, isLoading = false }: RecentBookingsPr d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" /> - Reservas de Hoy + Today's Bookings -

No hay reservas para hoy

+

No bookings for today

) : (
@@ -139,7 +139,7 @@ export function RecentBookings({ bookings, isLoading = false }: RecentBookingsPr {/* Details */}

- {booking.client?.name || "Sin cliente"} + {booking.client?.name || "Walk-in"}

{booking.court.name} diff --git a/apps/web/components/dashboard/stat-card.tsx b/apps/web/components/dashboard/stat-card.tsx index a513fd3..4941483 100644 --- a/apps/web/components/dashboard/stat-card.tsx +++ b/apps/web/components/dashboard/stat-card.tsx @@ -98,7 +98,7 @@ export function StatCard({ title, value, icon, trend, color = "primary" }: StatC {trend.isPositive ? "+" : ""} {trend.value}% - vs ayer + vs yesterday

)}