Add i18 support

This commit is contained in:
Urtzi Alfaro
2025-09-22 11:04:03 +02:00
parent ecfc6a1997
commit ee36c45d25
28 changed files with 2307 additions and 565 deletions

View File

@@ -0,0 +1,240 @@
{
"navigation": {
"dashboard": "Dashboard",
"operations": "Operations",
"inventory": "Inventory",
"production": "Production",
"recipes": "Recipes",
"orders": "Orders",
"procurement": "Procurement",
"pos": "Point of Sale",
"analytics": "Analytics",
"forecasting": "Forecasting",
"sales": "Sales",
"performance": "Performance",
"insights": "AI Insights",
"data": "Data",
"weather": "Weather",
"traffic": "Traffic",
"events": "Events",
"communications": "Communications",
"notifications": "Notifications",
"alerts": "Alerts",
"preferences": "Preferences",
"settings": "Settings",
"team": "Team",
"bakery": "Bakery",
"training": "Training",
"system": "System",
"onboarding": "Initial Setup"
},
"actions": {
"save": "Save",
"cancel": "Cancel",
"edit": "Edit",
"delete": "Delete",
"add": "Add",
"create": "Create",
"update": "Update",
"view": "View",
"search": "Search",
"filter": "Filter",
"export": "Export",
"import": "Import",
"download": "Download",
"upload": "Upload",
"print": "Print",
"refresh": "Refresh",
"reset": "Reset",
"clear": "Clear",
"submit": "Submit",
"close": "Close",
"open": "Open",
"back": "Back",
"next": "Next",
"previous": "Previous",
"finish": "Finish",
"continue": "Continue",
"confirm": "Confirm",
"expand": "Expand",
"collapse": "Collapse"
},
"status": {
"active": "Active",
"inactive": "Inactive",
"pending": "Pending",
"completed": "Completed",
"cancelled": "Cancelled",
"draft": "Draft",
"published": "Published",
"archived": "Archived",
"enabled": "Enabled",
"disabled": "Disabled",
"available": "Available",
"unavailable": "Unavailable",
"in_progress": "In Progress",
"failed": "Failed",
"success": "Success",
"warning": "Warning",
"error": "Error",
"info": "Information",
"undefined": "Not defined",
"no_rating": "No rating",
"disconnected": "Disconnected",
"no_realtime_connection": "No real-time connection"
},
"time": {
"today": "Today",
"yesterday": "Yesterday",
"tomorrow": "Tomorrow",
"this_week": "This Week",
"last_week": "Last Week",
"next_week": "Next Week",
"this_month": "This Month",
"last_month": "Last Month",
"next_month": "Next Month",
"this_year": "This Year",
"last_year": "Last Year",
"next_year": "Next Year",
"morning": "Morning",
"afternoon": "Afternoon",
"evening": "Evening",
"night": "Night",
"now": "Now",
"recently": "Recently",
"soon": "Soon",
"later": "Later"
},
"units": {
"kg": "kg",
"g": "g",
"l": "l",
"ml": "ml",
"pieces": "pieces",
"units": "units",
"portions": "portions",
"minutes": "minutes",
"hours": "hours",
"days": "days",
"weeks": "weeks",
"months": "months",
"years": "years"
},
"categories": {
"bread": "Breads",
"pastry": "Pastries",
"cake": "Cakes",
"cookie": "Cookies",
"other": "Others",
"flour": "Flours",
"dairy": "Dairy",
"eggs": "Eggs",
"fats": "Fats",
"sugar": "Sugars",
"yeast": "Yeasts",
"spices": "Spices",
"salted": "Savory"
},
"priority": {
"low": "Low",
"normal": "Normal",
"medium": "Medium",
"high": "High",
"urgent": "Urgent",
"critical": "Critical",
"undefined": "Priority not defined"
},
"difficulty": {
"easy": "Easy",
"medium": "Medium",
"hard": "Hard",
"expert": "Expert"
},
"payment_methods": {
"cash": "Cash",
"card": "Card",
"transfer": "Transfer",
"other": "Other"
},
"delivery_methods": {
"pickup": "Pickup",
"delivery": "Home Delivery"
},
"weekdays": {
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday"
},
"months": {
"january": "January",
"february": "February",
"march": "March",
"april": "April",
"may": "May",
"june": "June",
"july": "July",
"august": "August",
"september": "September",
"october": "October",
"november": "November",
"december": "December"
},
"forms": {
"required": "Required",
"optional": "Optional",
"loading": "Loading...",
"no_data": "No data available",
"no_results": "No results found",
"empty_state": "No items to display",
"select_option": "Select option",
"enter_text": "Enter text",
"choose_file": "Choose file",
"drag_drop": "Drag and drop here",
"or": "or",
"no_terms": "No terms defined",
"search_placeholder": "Search..."
},
"table": {
"no_data": "No data to display",
"loading": "Loading data...",
"error": "Error loading data",
"rows_per_page": "Rows per page",
"showing": "Showing",
"of": "of",
"entries": "entries",
"page": "Page",
"first": "First",
"last": "Last",
"sort_asc": "Sort ascending",
"sort_desc": "Sort descending"
},
"alerts": {
"confirm_delete": "Are you sure you want to delete this item?",
"confirm_action": "Are you sure you want to perform this action?",
"unsaved_changes": "You have unsaved changes. Are you sure you want to leave?",
"success_save": "Saved successfully",
"success_delete": "Deleted successfully",
"success_update": "Updated successfully",
"success_create": "Created successfully",
"operation_completed": "Operation completed successfully"
},
"accessibility": {
"close": "Close",
"menu": "Main navigation",
"open_menu": "Open menu",
"close_menu": "Close menu",
"toggle": "Toggle",
"expand": "Expand",
"collapse": "Collapse",
"loading": "Loading",
"image": "Image",
"button": "Button",
"link": "Link",
"tooltip": "Additional information",
"search": "Search in the application"
}
}

View File

@@ -0,0 +1,74 @@
{
"title": "Dashboard",
"subtitle": "Overview of your bakery operations",
"stats": {
"sales_today": "Sales Today",
"pending_orders": "Pending Orders",
"stock_alerts": "Stock Alerts",
"production_efficiency": "Production Efficiency",
"revenue_growth": "Revenue Growth",
"customer_satisfaction": "Customer Satisfaction",
"inventory_turnover": "Inventory Turnover",
"daily_profit": "Daily Profit",
"products_sold": "Products Sold"
},
"trends": {
"vs_yesterday": "% vs yesterday",
"vs_last_week": "% vs last week",
"vs_last_month": "% vs last month",
"growth": "growth",
"decrease": "decrease",
"stable": "stable"
},
"sections": {
"critical_stats": "Critical Statistics",
"real_time_alerts": "Real-time Alerts",
"procurement_today": "Procurement Today",
"production_today": "Production Today",
"recent_activity": "Recent Activity",
"quick_actions": "Quick Actions"
},
"quick_actions": {
"add_new_bakery": "Add New Bakery",
"create_order": "Create Order",
"start_production": "Start Production",
"check_inventory": "Check Inventory",
"view_reports": "View Reports",
"manage_staff": "Manage Staff"
},
"alerts": {
"low_stock": "Low Stock",
"production_delay": "Production Delay",
"quality_issue": "Quality Issue",
"equipment_maintenance": "Equipment Maintenance",
"order_pending": "Order Pending",
"delivery_due": "Delivery Due"
},
"messages": {
"welcome": "Welcome back",
"good_morning": "Good morning",
"good_afternoon": "Good afternoon",
"good_evening": "Good evening",
"no_data": "No data available",
"loading": "Loading dashboard data...",
"error_loading": "Error loading data",
"last_updated": "Last updated",
"auto_refresh": "Auto refresh in",
"more_than_yesterday": "more than yesterday",
"require_attention": "Require attention",
"more_units": "more units",
"action_required": "Action required",
"manage_organizations": "Manage your organizations",
"setup_new_business": "Set up a new business from scratch",
"active_organizations": "Active Organizations"
},
"time_periods": {
"today": "Today",
"this_week": "This Week",
"this_month": "This Month",
"this_year": "This Year",
"last_7_days": "Last 7 days",
"last_30_days": "Last 30 days",
"last_90_days": "Last 90 days"
}
}

View File

@@ -0,0 +1,80 @@
{
"title": "Production",
"subtitle": "Manage your bakery production",
"production_status": {
"PENDING": "Pending",
"IN_PROGRESS": "In Progress",
"COMPLETED": "Completed",
"CANCELLED": "Cancelled",
"ON_HOLD": "On Hold",
"QUALITY_CHECK": "Quality Check",
"FAILED": "Failed"
},
"production_priority": {
"LOW": "Low",
"MEDIUM": "Medium",
"HIGH": "High",
"URGENT": "Urgent"
},
"batch_status": {
"PLANNED": "Planned",
"IN_PROGRESS": "In Progress",
"COMPLETED": "Completed",
"CANCELLED": "Cancelled",
"ON_HOLD": "On Hold"
},
"quality_check_status": {
"PENDING": "Pending",
"IN_PROGRESS": "In Progress",
"PASSED": "Passed",
"FAILED": "Failed",
"REQUIRES_ATTENTION": "Requires Attention"
},
"fields": {
"batch_number": "Batch Number",
"production_date": "Production Date",
"planned_quantity": "Planned Quantity",
"actual_quantity": "Actual Quantity",
"yield_percentage": "Yield Percentage",
"priority": "Priority",
"assigned_staff": "Assigned Staff",
"production_notes": "Production Notes",
"quality_score": "Quality Score",
"quality_notes": "Quality Notes",
"defect_rate": "Defect Rate",
"rework_required": "Rework Required",
"waste_quantity": "Waste Quantity",
"waste_reason": "Waste Reason",
"efficiency": "Efficiency",
"material_cost": "Material Cost",
"labor_cost": "Labor Cost",
"overhead_cost": "Overhead Cost",
"total_cost": "Total Cost",
"cost_per_unit": "Cost per Unit"
},
"actions": {
"start_production": "Start Production",
"complete_batch": "Complete Batch",
"pause_production": "Pause Production",
"cancel_batch": "Cancel Batch",
"quality_check": "Quality Check",
"create_batch": "Create Batch",
"view_details": "View Details",
"edit_batch": "Edit Batch",
"duplicate_batch": "Duplicate Batch"
},
"labels": {
"current_production": "Current Production",
"production_queue": "Production Queue",
"completed_today": "Completed Today",
"efficiency_rate": "Efficiency Rate",
"quality_score": "Quality Score",
"active_batches": "Active Batches",
"pending_quality_checks": "Pending Quality Checks"
},
"descriptions": {
"production_efficiency": "Percentage of efficiency in current production",
"quality_average": "Average quality score in recent batches",
"waste_reduction": "Waste reduction compared to previous month"
}
}

View File

@@ -55,7 +55,9 @@
"previous": "Anterior",
"finish": "Finalizar",
"continue": "Continuar",
"confirm": "Confirmar"
"confirm": "Confirmar",
"expand": "Expandir",
"collapse": "Contraer"
},
"status": {
"active": "Activo",
@@ -75,7 +77,11 @@
"success": "Éxito",
"warning": "Advertencia",
"error": "Error",
"info": "Información"
"info": "Información",
"undefined": "No definido",
"no_rating": "Sin calificación",
"disconnected": "Desconectado",
"no_realtime_connection": "Sin conexión en tiempo real"
},
"time": {
"today": "Hoy",
@@ -135,7 +141,8 @@
"medium": "Media",
"high": "Alta",
"urgent": "Urgente",
"critical": "Crítica"
"critical": "Crítica",
"undefined": "Prioridad no definida"
},
"difficulty": {
"easy": "Fácil",
@@ -187,7 +194,9 @@
"enter_text": "Ingresa texto",
"choose_file": "Elegir archivo",
"drag_drop": "Arrastra y suelta aquí",
"or": "o"
"or": "o",
"no_terms": "Sin términos definidos",
"search_placeholder": "Buscar..."
},
"table": {
"no_data": "No hay datos para mostrar",
@@ -215,7 +224,7 @@
},
"accessibility": {
"close": "Cerrar",
"menu": "Menú",
"menu": "Navegación principal",
"open_menu": "Abrir menú",
"close_menu": "Cerrar menú",
"toggle": "Alternar",
@@ -225,6 +234,7 @@
"image": "Imagen",
"button": "Botón",
"link": "Enlace",
"tooltip": "Información adicional"
"tooltip": "Información adicional",
"search": "Buscar en la aplicación"
}
}

View File

@@ -0,0 +1,74 @@
{
"title": "Panel de Control",
"subtitle": "Resumen general de tu panadería",
"stats": {
"sales_today": "Ventas Hoy",
"pending_orders": "Órdenes Pendientes",
"stock_alerts": "Alertas de Stock",
"production_efficiency": "Eficiencia de Producción",
"revenue_growth": "Crecimiento de Ingresos",
"customer_satisfaction": "Satisfacción del Cliente",
"inventory_turnover": "Rotación de Inventario",
"daily_profit": "Ganancia Diaria",
"products_sold": "Productos Vendidos"
},
"trends": {
"vs_yesterday": "% vs ayer",
"vs_last_week": "% vs semana pasada",
"vs_last_month": "% vs mes pasado",
"growth": "crecimiento",
"decrease": "disminución",
"stable": "estable"
},
"sections": {
"critical_stats": "Estadísticas Críticas",
"real_time_alerts": "Alertas en Tiempo Real",
"procurement_today": "Compras Hoy",
"production_today": "Producción Hoy",
"recent_activity": "Actividad Reciente",
"quick_actions": "Acciones Rápidas"
},
"quick_actions": {
"add_new_bakery": "Agregar Nueva Panadería",
"create_order": "Crear Pedido",
"start_production": "Iniciar Producción",
"check_inventory": "Revisar Inventario",
"view_reports": "Ver Reportes",
"manage_staff": "Gestionar Personal"
},
"alerts": {
"low_stock": "Stock Bajo",
"production_delay": "Retraso en Producción",
"quality_issue": "Problema de Calidad",
"equipment_maintenance": "Mantenimiento de Equipo",
"order_pending": "Pedido Pendiente",
"delivery_due": "Entrega Vencida"
},
"messages": {
"welcome": "Bienvenido de vuelta",
"good_morning": "Buenos días",
"good_afternoon": "Buenas tardes",
"good_evening": "Buenas noches",
"no_data": "No hay datos disponibles",
"loading": "Cargando datos del panel...",
"error_loading": "Error al cargar los datos",
"last_updated": "Última actualización",
"auto_refresh": "Actualización automática en",
"more_than_yesterday": "más que ayer",
"require_attention": "Requieren atención",
"more_units": "unidades más",
"action_required": "Acción requerida",
"manage_organizations": "Gestiona tus organizaciones",
"setup_new_business": "Configurar un nuevo negocio desde cero",
"active_organizations": "Organizaciones Activas"
},
"time_periods": {
"today": "Hoy",
"this_week": "Esta Semana",
"this_month": "Este Mes",
"this_year": "Este Año",
"last_7_days": "Últimos 7 días",
"last_30_days": "Últimos 30 días",
"last_90_days": "Últimos 90 días"
}
}

View File

@@ -0,0 +1,80 @@
{
"title": "Producción",
"subtitle": "Gestiona la producción de tu panadería",
"production_status": {
"PENDING": "Pendiente",
"IN_PROGRESS": "En Proceso",
"COMPLETED": "Completado",
"CANCELLED": "Cancelado",
"ON_HOLD": "En Pausa",
"QUALITY_CHECK": "Control Calidad",
"FAILED": "Fallido"
},
"production_priority": {
"LOW": "Baja",
"MEDIUM": "Media",
"HIGH": "Alta",
"URGENT": "Urgente"
},
"batch_status": {
"PLANNED": "Planificado",
"IN_PROGRESS": "En Proceso",
"COMPLETED": "Completado",
"CANCELLED": "Cancelado",
"ON_HOLD": "En Pausa"
},
"quality_check_status": {
"PENDING": "Pendiente",
"IN_PROGRESS": "En Proceso",
"PASSED": "Aprobado",
"FAILED": "Reprobado",
"REQUIRES_ATTENTION": "Requiere Atención"
},
"fields": {
"batch_number": "Número de Lote",
"production_date": "Fecha de Producción",
"planned_quantity": "Cantidad Planificada",
"actual_quantity": "Cantidad Real",
"yield_percentage": "Porcentaje de Rendimiento",
"priority": "Prioridad",
"assigned_staff": "Personal Asignado",
"production_notes": "Notas de Producción",
"quality_score": "Puntuación de Calidad",
"quality_notes": "Notas de Calidad",
"defect_rate": "Tasa de Defectos",
"rework_required": "Requiere Retrabajo",
"waste_quantity": "Cantidad de Desperdicio",
"waste_reason": "Razón del Desperdicio",
"efficiency": "Eficiencia",
"material_cost": "Costo de Materiales",
"labor_cost": "Costo de Mano de Obra",
"overhead_cost": "Costo Indirecto",
"total_cost": "Costo Total",
"cost_per_unit": "Costo por Unidad"
},
"actions": {
"start_production": "Iniciar Producción",
"complete_batch": "Completar Lote",
"pause_production": "Pausar Producción",
"cancel_batch": "Cancelar Lote",
"quality_check": "Control de Calidad",
"create_batch": "Crear Lote",
"view_details": "Ver Detalles",
"edit_batch": "Editar Lote",
"duplicate_batch": "Duplicar Lote"
},
"labels": {
"current_production": "Producción Actual",
"production_queue": "Cola de Producción",
"completed_today": "Completado Hoy",
"efficiency_rate": "Tasa de Eficiencia",
"quality_score": "Puntuación de Calidad",
"active_batches": "Lotes Activos",
"pending_quality_checks": "Controles de Calidad Pendientes"
},
"descriptions": {
"production_efficiency": "Porcentaje de eficiencia en la producción actual",
"quality_average": "Puntuación promedio de calidad en los últimos lotes",
"waste_reduction": "Reducción de desperdicio comparado con el mes anterior"
}
}

View File

@@ -0,0 +1,240 @@
{
"navigation": {
"dashboard": "Aginte Panela",
"operations": "Eragiketak",
"inventory": "Inbentarioa",
"production": "Ekoizpena",
"recipes": "Errezetak",
"orders": "Eskaerak",
"procurement": "Erosketak",
"pos": "Salmenta Puntua",
"analytics": "Analisiak",
"forecasting": "Aurreikuspena",
"sales": "Salmentak",
"performance": "Errendimendua",
"insights": "AI Jakintza",
"data": "Datuak",
"weather": "Eguraldia",
"traffic": "Trafikoa",
"events": "Gertaerak",
"communications": "Komunikazioak",
"notifications": "Jakinarazpenak",
"alerts": "Alertak",
"preferences": "Lehentasunak",
"settings": "Ezarpenak",
"team": "Taldea",
"bakery": "Okindegi",
"training": "Trebakuntza",
"system": "Sistema",
"onboarding": "Hasierako Konfigurazioa"
},
"actions": {
"save": "Gorde",
"cancel": "Ezeztatu",
"edit": "Editatu",
"delete": "Ezabatu",
"add": "Gehitu",
"create": "Sortu",
"update": "Eguneratu",
"view": "Ikusi",
"search": "Bilatu",
"filter": "Iragazi",
"export": "Esportatu",
"import": "Inportatu",
"download": "Deskargatu",
"upload": "Kargatu",
"print": "Inprimatu",
"refresh": "Eguneratu",
"reset": "Berrezarri",
"clear": "Garbitu",
"submit": "Bidali",
"close": "Itxi",
"open": "Ireki",
"back": "Atzera",
"next": "Hurrengoa",
"previous": "Aurrekoa",
"finish": "Amaitu",
"continue": "Jarraitu",
"confirm": "Berretsi",
"expand": "Zabaldu",
"collapse": "Tolestu"
},
"status": {
"active": "Aktibo",
"inactive": "Ez aktibo",
"pending": "Zain",
"completed": "Amaituta",
"cancelled": "Bertan behera utzi",
"draft": "Zirriborroa",
"published": "Argitaratua",
"archived": "Artxibatua",
"enabled": "Gaituta",
"disabled": "Desgaituta",
"available": "Erabilgarri",
"unavailable": "Ez erabilgarri",
"in_progress": "Abian",
"failed": "Huts egin du",
"success": "Arrakasta",
"warning": "Abisua",
"error": "Errorea",
"info": "Informazioa",
"undefined": "Zehaztu gabe",
"no_rating": "Baloraziorik ez",
"disconnected": "Deskonektatuta",
"no_realtime_connection": "Denbora errealeko konexiorik ez"
},
"time": {
"today": "Gaur",
"yesterday": "Atzo",
"tomorrow": "Bihar",
"this_week": "Aste honetan",
"last_week": "Azken astean",
"next_week": "Hurrengo astean",
"this_month": "Hilabete honetan",
"last_month": "Azken hilabetean",
"next_month": "Hurrengo hilabetean",
"this_year": "Urte honetan",
"last_year": "Azken urtean",
"next_year": "Hurrengo urtean",
"morning": "Goiza",
"afternoon": "Arratsaldea",
"evening": "Iluntzea",
"night": "Gaua",
"now": "Orain",
"recently": "Duela gutxi",
"soon": "Laster",
"later": "Geroago"
},
"units": {
"kg": "kg",
"g": "g",
"l": "l",
"ml": "ml",
"pieces": "zatiak",
"units": "unitateak",
"portions": "zatiak",
"minutes": "minutuak",
"hours": "orduak",
"days": "egunak",
"weeks": "asteak",
"months": "hilabeteak",
"years": "urteak"
},
"categories": {
"bread": "Ogiak",
"pastry": "Gozogintza",
"cake": "Tartoak",
"cookie": "Galletak",
"other": "Besteak",
"flour": "Irinak",
"dairy": "Esnekiak",
"eggs": "Arrautzak",
"fats": "Gantzak",
"sugar": "Azukreak",
"yeast": "Legamiak",
"spices": "Espezieak",
"salted": "Gazidunak"
},
"priority": {
"low": "Baxua",
"normal": "Normala",
"medium": "Ertaina",
"high": "Altua",
"urgent": "Larria",
"critical": "Kritikoa",
"undefined": "Lehentasuna zehaztu gabe"
},
"difficulty": {
"easy": "Erraza",
"medium": "Ertaina",
"hard": "Zaila",
"expert": "Adituarena"
},
"payment_methods": {
"cash": "Dirua",
"card": "Txartela",
"transfer": "Transferentzia",
"other": "Besteak"
},
"delivery_methods": {
"pickup": "Hartzera",
"delivery": "Etxera banatzea"
},
"weekdays": {
"monday": "Astelehena",
"tuesday": "Asteartea",
"wednesday": "Asteazkena",
"thursday": "Osteguna",
"friday": "Ostirala",
"saturday": "Larunbata",
"sunday": "Igandea"
},
"months": {
"january": "Urtarrila",
"february": "Otsaila",
"march": "Martxoa",
"april": "Apirila",
"may": "Maiatza",
"june": "Ekaina",
"july": "Uztaila",
"august": "Abuztua",
"september": "Iraila",
"october": "Urria",
"november": "Azaroa",
"december": "Abendua"
},
"forms": {
"required": "Beharrezkoa",
"optional": "Aukerakoa",
"loading": "Kargatzen...",
"no_data": "Ez dago daturik",
"no_results": "Ez da emaitzarik aurkitu",
"empty_state": "Ez dago elementurik erakusteko",
"select_option": "Aukera hautatu",
"enter_text": "Testua sartu",
"choose_file": "Fitxategia aukeratu",
"drag_drop": "Arrastatu eta jaregin hemen",
"or": "edo",
"no_terms": "Baldintzarik zehaztu gabe",
"search_placeholder": "Bilatu..."
},
"table": {
"no_data": "Ez dago daturik erakusteko",
"loading": "Datuak kargatzen...",
"error": "Errorea datuak kargatzean",
"rows_per_page": "Errenkadak orrialdepo",
"showing": "Erakusten",
"of": "-tik",
"entries": "sarrerak",
"page": "Orrialdea",
"first": "Lehena",
"last": "Azkena",
"sort_asc": "Ordenatu gorantz",
"sort_desc": "Ordenatu beherantz"
},
"alerts": {
"confirm_delete": "Ziur zaude elementu hau ezabatu nahi duzula?",
"confirm_action": "Ziur zaude ekintza hau egin nahi duzula?",
"unsaved_changes": "Gorde gabeko aldaketak dituzu. Ziur zaude irten nahi duzula?",
"success_save": "Ongi gorde da",
"success_delete": "Ongi ezabatu da",
"success_update": "Ongi eguneratu da",
"success_create": "Ongi sortu da",
"operation_completed": "Eragiketa ongi burutu da"
},
"accessibility": {
"close": "Itxi",
"menu": "Nabigazio nagusia",
"open_menu": "Menua ireki",
"close_menu": "Menua itxi",
"toggle": "Aldatu",
"expand": "Zabaldu",
"collapse": "Tolestu",
"loading": "Kargatzen",
"image": "Irudia",
"button": "Botoia",
"link": "Esteka",
"tooltip": "Informazio gehigarria",
"search": "Aplikazioan bilatu"
}
}

View File

@@ -0,0 +1,74 @@
{
"title": "Aginte Panela",
"subtitle": "Zure okindegiaren eragiketen ikuspegi orokorra",
"stats": {
"sales_today": "Gaurko Salmentak",
"pending_orders": "Eskaera Zain",
"stock_alerts": "Stock Alertak",
"production_efficiency": "Ekoizpen Eraginkortasuna",
"revenue_growth": "Diru-sarrera Hazkundea",
"customer_satisfaction": "Bezeroaren Gogobetetasuna",
"inventory_turnover": "Inbentario Biraketa",
"daily_profit": "Eguneko Irabazia",
"products_sold": "Saldutako Produktuak"
},
"trends": {
"vs_yesterday": "% atzokoarekin alderatuta",
"vs_last_week": "% azken astearekin alderatuta",
"vs_last_month": "% azken hilarekin alderatuta",
"growth": "hazkundea",
"decrease": "beherakada",
"stable": "egonkorra"
},
"sections": {
"critical_stats": "Estatistika Kritikoak",
"real_time_alerts": "Denbora Errealeko Alertak",
"procurement_today": "Gaurko Erosketak",
"production_today": "Gaurko Ekoizpena",
"recent_activity": "Azken Jarduera",
"quick_actions": "Ekintza Azkarrak"
},
"quick_actions": {
"add_new_bakery": "Okindegi Berria Gehitu",
"create_order": "Eskaera Sortu",
"start_production": "Ekoizpena Hasi",
"check_inventory": "Inbentarioa Begiratu",
"view_reports": "Txostenak Ikusi",
"manage_staff": "Langilea Kudeatu"
},
"alerts": {
"low_stock": "Stock Baxua",
"production_delay": "Ekoizpen Atzerapena",
"quality_issue": "Kalitate Arazoa",
"equipment_maintenance": "Ekipo Mantentze",
"order_pending": "Eskaera Zain",
"delivery_due": "Entrega Atzeratua"
},
"messages": {
"welcome": "Ongi etorri berriro",
"good_morning": "Egun on",
"good_afternoon": "Arratsalde on",
"good_evening": "Iluntzeko on",
"no_data": "Ez dago daturik",
"loading": "Aginte panelaren datuak kargatzen...",
"error_loading": "Errorea datuak kargatzean",
"last_updated": "Azken eguneraketa",
"auto_refresh": "Eguneraketa automatikoa",
"more_than_yesterday": "atzo baino gehiago",
"require_attention": "Arreta behar dute",
"more_units": "unitate gehiago",
"action_required": "Ekintza beharrezkoa",
"manage_organizations": "Zure erakundeak kudeatu",
"setup_new_business": "Negozio berri bat hutsetik konfiguratu",
"active_organizations": "Erakunde Aktiboak"
},
"time_periods": {
"today": "Gaur",
"this_week": "Aste Hau",
"this_month": "Hilabete Hau",
"this_year": "Urte Hau",
"last_7_days": "Azken 7 egun",
"last_30_days": "Azken 30 egun",
"last_90_days": "Azken 90 egun"
}
}

View File

@@ -0,0 +1,80 @@
{
"title": "Ekoizpena",
"subtitle": "Zure okindegiaren ekoizpena kudeatu",
"production_status": {
"PENDING": "Zain",
"IN_PROGRESS": "Abian",
"COMPLETED": "Amaituta",
"CANCELLED": "Bertan behera utzi",
"ON_HOLD": "Pausatuta",
"QUALITY_CHECK": "Kalitate Kontrola",
"FAILED": "Huts egin"
},
"production_priority": {
"LOW": "Baxua",
"MEDIUM": "Ertaina",
"HIGH": "Altua",
"URGENT": "Larria"
},
"batch_status": {
"PLANNED": "Planifikatuta",
"IN_PROGRESS": "Abian",
"COMPLETED": "Amaituta",
"CANCELLED": "Bertan behera utzi",
"ON_HOLD": "Pausatuta"
},
"quality_check_status": {
"PENDING": "Zain",
"IN_PROGRESS": "Abian",
"PASSED": "Onartuta",
"FAILED": "Baztertuta",
"REQUIRES_ATTENTION": "Arreta Behar du"
},
"fields": {
"batch_number": "Lote Zenbakia",
"production_date": "Ekoizpen Data",
"planned_quantity": "Planifikatutako Kantitatea",
"actual_quantity": "Benetako Kantitatea",
"yield_percentage": "Errendimendu Ehunekoa",
"priority": "Lehentasuna",
"assigned_staff": "Esleitutako Langilea",
"production_notes": "Ekoizpen Oharrak",
"quality_score": "Kalitate Puntuazioa",
"quality_notes": "Kalitate Oharrak",
"defect_rate": "Akats Tasa",
"rework_required": "Berrlana Behar",
"waste_quantity": "Hondakin Kantitatea",
"waste_reason": "Hondakin Arrazoia",
"efficiency": "Eraginkortasuna",
"material_cost": "Material Kostua",
"labor_cost": "Lan Kostua",
"overhead_cost": "Kostu Orokorra",
"total_cost": "Kostu Osoa",
"cost_per_unit": "Unitateko Kostua"
},
"actions": {
"start_production": "Ekoizpena Hasi",
"complete_batch": "Lotea Amaitu",
"pause_production": "Ekoizpena Pausatu",
"cancel_batch": "Lotea Ezeztatu",
"quality_check": "Kalitate Kontrola",
"create_batch": "Lotea Sortu",
"view_details": "Xehetasunak Ikusi",
"edit_batch": "Lotea Editatu",
"duplicate_batch": "Lotea Bikoiztu"
},
"labels": {
"current_production": "Uneko Ekoizpena",
"production_queue": "Ekoizpen Ilara",
"completed_today": "Gaur Amaitutakoak",
"efficiency_rate": "Eraginkortasun Tasa",
"quality_score": "Kalitate Puntuazioa",
"active_batches": "Lote Aktiboak",
"pending_quality_checks": "Kalitate Kontrol Zain"
},
"descriptions": {
"production_efficiency": "Uneko ekoizpenaren eraginkortasun ehunekoa",
"quality_average": "Azken loteen batez besteko kalitate puntuazioa",
"waste_reduction": "Hondakin murrizketa aurreko hilarekin alderatuta"
}
}

View File

@@ -7,6 +7,19 @@ import suppliersEs from './es/suppliers.json';
import ordersEs from './es/orders.json';
import recipesEs from './es/recipes.json';
import errorsEs from './es/errors.json';
import dashboardEs from './es/dashboard.json';
import productionEs from './es/production.json';
// English translations
import commonEn from './en/common.json';
import recipesEn from './en/recipes.json';
import dashboardEn from './en/dashboard.json';
import productionEn from './en/production.json';
// Basque translations
import commonEu from './eu/common.json';
import dashboardEu from './eu/dashboard.json';
import productionEu from './eu/production.json';
// Translation resources by language
export const resources = {
@@ -19,11 +32,24 @@ export const resources = {
orders: ordersEs,
recipes: recipesEs,
errors: errorsEs,
dashboard: dashboardEs,
production: productionEs,
},
en: {
common: commonEn,
recipes: recipesEn,
dashboard: dashboardEn,
production: productionEn,
},
eu: {
common: commonEu,
dashboard: dashboardEu,
production: productionEu,
},
};
// Supported languages
export const supportedLanguages = ['es'] as const;
export const supportedLanguages = ['es', 'en', 'eu'] as const;
export type SupportedLanguage = typeof supportedLanguages[number];
// Default language
@@ -38,10 +64,24 @@ export const languageConfig = {
flag: '🇪🇸',
rtl: false,
},
en: {
name: 'English',
nativeName: 'English',
code: 'en',
flag: '🇺🇸',
rtl: false,
},
eu: {
name: 'Euskera',
nativeName: 'Euskera',
code: 'eu',
flag: '🏴󠁥󠁳󠁰󠁶󠁿',
rtl: false,
},
};
// Namespaces available in translations
export const namespaces = ['common', 'auth', 'inventory', 'foodSafety', 'suppliers', 'orders', 'recipes', 'errors'] as const;
export const namespaces = ['common', 'auth', 'inventory', 'foodSafety', 'suppliers', 'orders', 'recipes', 'errors', 'dashboard', 'production'] as const;
export type Namespace = typeof namespaces[number];
// Helper function to get language display name