Add supplier and imporve inventory frontend
This commit is contained in:
48
frontend/src/locales/es/foodSafety.json
Normal file
48
frontend/src/locales/es/foodSafety.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"enums": {
|
||||
"food_safety_standard": {
|
||||
"haccp": "HACCP",
|
||||
"fda": "FDA",
|
||||
"usda": "USDA",
|
||||
"fsma": "FSMA",
|
||||
"sqf": "SQF",
|
||||
"brc": "BRC",
|
||||
"ifs": "IFS",
|
||||
"iso22000": "ISO 22000",
|
||||
"organic": "Orgánico",
|
||||
"non_gmo": "Sin OGM",
|
||||
"allergen_free": "Libre de Alérgenos",
|
||||
"kosher": "Kosher",
|
||||
"halal": "Halal"
|
||||
},
|
||||
"compliance_status": {
|
||||
"compliant": "Conforme",
|
||||
"non_compliant": "No Conforme",
|
||||
"pending_review": "Pendiente de Revisión",
|
||||
"expired": "Vencido",
|
||||
"warning": "Advertencia"
|
||||
},
|
||||
"food_safety_alert_type": {
|
||||
"temperature_violation": "Violación de Temperatura",
|
||||
"expiration_warning": "Advertencia de Vencimiento",
|
||||
"expired_product": "Producto Vencido",
|
||||
"contamination_risk": "Riesgo de Contaminación",
|
||||
"allergen_cross_contamination": "Contaminación Cruzada de Alérgenos",
|
||||
"storage_violation": "Violación de Almacenamiento",
|
||||
"quality_degradation": "Degradación de Calidad",
|
||||
"recall_notice": "Aviso de Retiro",
|
||||
"certification_expiry": "Vencimiento de Certificación",
|
||||
"supplier_compliance_issue": "Problema de Cumplimiento del Proveedor"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"food_safety_standard": "Estándar de Seguridad Alimentaria",
|
||||
"compliance_status": "Estado de Cumplimiento",
|
||||
"food_safety_alert_type": "Tipo de Alerta de Seguridad"
|
||||
},
|
||||
"descriptions": {
|
||||
"food_safety_standard": "Estándar de seguridad alimentaria aplicable",
|
||||
"compliance_status": "Estado actual de cumplimiento normativo",
|
||||
"food_safety_alert_type": "Tipo de alerta de seguridad alimentaria"
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,81 @@
|
||||
"description": "Descripción",
|
||||
"notes": "Notas"
|
||||
},
|
||||
"enums": {
|
||||
"product_type": {
|
||||
"ingredient": "Ingrediente",
|
||||
"finished_product": "Producto Terminado"
|
||||
},
|
||||
"production_stage": {
|
||||
"raw_ingredient": "Ingrediente Crudo",
|
||||
"par_baked": "Pre-cocido",
|
||||
"fully_baked": "Completamente Cocido",
|
||||
"prepared_dough": "Masa Preparada",
|
||||
"frozen_product": "Producto Congelado"
|
||||
},
|
||||
"unit_of_measure": {
|
||||
"kg": "Kilogramos",
|
||||
"g": "Gramos",
|
||||
"l": "Litros",
|
||||
"ml": "Mililitros",
|
||||
"units": "Unidades",
|
||||
"pcs": "Piezas",
|
||||
"pkg": "Paquetes",
|
||||
"bags": "Bolsas",
|
||||
"boxes": "Cajas"
|
||||
},
|
||||
"ingredient_category": {
|
||||
"flour": "Harinas",
|
||||
"yeast": "Levaduras",
|
||||
"dairy": "Lácteos",
|
||||
"eggs": "Huevos",
|
||||
"sugar": "Azúcares",
|
||||
"fats": "Grasas",
|
||||
"salt": "Sal",
|
||||
"spices": "Especias",
|
||||
"additives": "Aditivos",
|
||||
"packaging": "Embalaje",
|
||||
"cleaning": "Limpieza",
|
||||
"other": "Otros"
|
||||
},
|
||||
"product_category": {
|
||||
"bread": "Panes",
|
||||
"croissants": "Croissants",
|
||||
"pastries": "Bollería",
|
||||
"cakes": "Tartas",
|
||||
"cookies": "Galletas",
|
||||
"muffins": "Muffins",
|
||||
"sandwiches": "Sándwiches",
|
||||
"seasonal": "Temporales",
|
||||
"beverages": "Bebidas",
|
||||
"other_products": "Otros Productos"
|
||||
},
|
||||
"stock_movement_type": {
|
||||
"PURCHASE": "Compra",
|
||||
"PRODUCTION_USE": "Uso en Producción",
|
||||
"ADJUSTMENT": "Ajuste",
|
||||
"WASTE": "Desperdicio",
|
||||
"TRANSFER": "Transferencia",
|
||||
"RETURN": "Devolución",
|
||||
"INITIAL_STOCK": "Stock Inicial",
|
||||
"TRANSFORMATION": "Transformación"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"product_type": "Tipo de Producto",
|
||||
"production_stage": "Etapa de Producción",
|
||||
"unit_of_measure": "Unidad de Medida",
|
||||
"ingredient_category": "Categoría de Ingrediente",
|
||||
"product_category": "Categoría de Producto",
|
||||
"stock_movement_type": "Tipo de Movimiento"
|
||||
},
|
||||
"descriptions": {
|
||||
"product_type": "Selecciona si es un ingrediente básico o un producto terminado",
|
||||
"production_stage": "Indica la etapa de producción en la que se encuentra el producto",
|
||||
"unit_of_measure": "Unidad de medida utilizada para este producto",
|
||||
"ingredient_category": "Categoría que mejor describe este ingrediente",
|
||||
"stock_movement_type": "Tipo de movimiento de inventario a registrar"
|
||||
},
|
||||
"categories": {
|
||||
"all": "Todas las categorías",
|
||||
"flour": "Harinas",
|
||||
|
||||
84
frontend/src/locales/es/suppliers.json
Normal file
84
frontend/src/locales/es/suppliers.json
Normal file
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"types": {
|
||||
"ingredients": "Materias Primas",
|
||||
"packaging": "Embalaje",
|
||||
"equipment": "Equipamiento",
|
||||
"services": "Servicios",
|
||||
"utilities": "Servicios Públicos",
|
||||
"multi": "Múltiples Categorías"
|
||||
},
|
||||
"status": {
|
||||
"active": "Activo",
|
||||
"inactive": "Inactivo",
|
||||
"pending_approval": "Pendiente de Aprobación",
|
||||
"suspended": "Suspendido",
|
||||
"blacklisted": "Lista Negra"
|
||||
},
|
||||
"payment_terms": {
|
||||
"cod": "Contra Entrega",
|
||||
"net_15": "Neto 15 días",
|
||||
"net_30": "Neto 30 días",
|
||||
"net_45": "Neto 45 días",
|
||||
"net_60": "Neto 60 días",
|
||||
"prepaid": "Prepago",
|
||||
"credit_terms": "Términos de Crédito"
|
||||
},
|
||||
"purchase_order_status": {
|
||||
"draft": "Borrador",
|
||||
"pending_approval": "Pendiente de Aprobación",
|
||||
"approved": "Aprobado",
|
||||
"sent_to_supplier": "Enviado al Proveedor",
|
||||
"confirmed": "Confirmado",
|
||||
"partially_received": "Parcialmente Recibido",
|
||||
"completed": "Completado",
|
||||
"cancelled": "Cancelado",
|
||||
"disputed": "Disputado"
|
||||
},
|
||||
"delivery_status": {
|
||||
"scheduled": "Programado",
|
||||
"in_transit": "En Tránsito",
|
||||
"out_for_delivery": "En Reparto",
|
||||
"delivered": "Entregado",
|
||||
"partially_delivered": "Parcialmente Entregado",
|
||||
"failed_delivery": "Entrega Fallida",
|
||||
"returned": "Devuelto"
|
||||
},
|
||||
"quality_rating": {
|
||||
"5": "Excelente",
|
||||
"4": "Bueno",
|
||||
"3": "Promedio",
|
||||
"2": "Malo",
|
||||
"1": "Muy Malo"
|
||||
},
|
||||
"delivery_rating": {
|
||||
"5": "Excelente",
|
||||
"4": "Bueno",
|
||||
"3": "Promedio",
|
||||
"2": "Malo",
|
||||
"1": "Muy Malo"
|
||||
},
|
||||
"invoice_status": {
|
||||
"pending": "Pendiente",
|
||||
"approved": "Aprobado",
|
||||
"paid": "Pagado",
|
||||
"overdue": "Vencido",
|
||||
"disputed": "Disputado",
|
||||
"cancelled": "Cancelado"
|
||||
},
|
||||
"labels": {
|
||||
"supplier_type": "Tipo de Proveedor",
|
||||
"supplier_status": "Estado del Proveedor",
|
||||
"payment_terms": "Términos de Pago",
|
||||
"purchase_order_status": "Estado de Orden de Compra",
|
||||
"delivery_status": "Estado de Entrega",
|
||||
"quality_rating": "Calificación de Calidad",
|
||||
"delivery_rating": "Calificación de Entrega",
|
||||
"invoice_status": "Estado de Factura"
|
||||
},
|
||||
"descriptions": {
|
||||
"supplier_type": "Selecciona el tipo de productos o servicios que ofrece este proveedor",
|
||||
"payment_terms": "Términos de pago acordados con el proveedor",
|
||||
"quality_rating": "Calificación de 1 a 5 estrellas basada en la calidad de los productos",
|
||||
"delivery_rating": "Calificación de 1 a 5 estrellas basada en la puntualidad y estado de las entregas"
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
import commonEs from './es/common.json';
|
||||
import authEs from './es/auth.json';
|
||||
import inventoryEs from './es/inventory.json';
|
||||
import foodSafetyEs from './es/foodSafety.json';
|
||||
import suppliersEs from './es/suppliers.json';
|
||||
import errorsEs from './es/errors.json';
|
||||
|
||||
// Translation resources by language
|
||||
@@ -10,6 +12,8 @@ export const resources = {
|
||||
common: commonEs,
|
||||
auth: authEs,
|
||||
inventory: inventoryEs,
|
||||
foodSafety: foodSafetyEs,
|
||||
suppliers: suppliersEs,
|
||||
errors: errorsEs,
|
||||
},
|
||||
};
|
||||
@@ -33,7 +37,7 @@ export const languageConfig = {
|
||||
};
|
||||
|
||||
// Namespaces available in translations
|
||||
export const namespaces = ['common', 'auth', 'inventory', 'errors'] as const;
|
||||
export const namespaces = ['common', 'auth', 'inventory', 'foodSafety', 'suppliers', 'errors'] as const;
|
||||
export type Namespace = typeof namespaces[number];
|
||||
|
||||
// Helper function to get language display name
|
||||
@@ -47,7 +51,7 @@ export const isSupportedLanguage = (language: string): language is SupportedLang
|
||||
};
|
||||
|
||||
// Export individual language modules for direct imports
|
||||
export { commonEs, authEs, inventoryEs, errorsEs };
|
||||
export { commonEs, authEs, inventoryEs, foodSafetyEs, suppliersEs, errorsEs };
|
||||
|
||||
// Default export with all translations
|
||||
export default resources;
|
||||
Reference in New Issue
Block a user