feat: Complete Spanish, French, Portuguese, Chinese localization and add German/Italian support
- Updated all Spanish (es) translation files with comprehensive translations for tracking, AI, family, insights, children, and settings pages - Updated French (fr), Portuguese (pt), and Chinese (zh) translations to match English structure - Added German (de) and Italian (it) language support with complete translation files - Fixed medicine tracker route from /track/medication to /track/medicine - Updated i18n config to support 7 languages: en, es, fr, pt, zh, de, it - All tracking pages now fully localized: sleep, feeding, diaper, medicine, activity - AI assistant interface fully translated with thinking messages and suggested questions - Family management and insights pages now support all languages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"title": "Seguimiento de Actividades",
|
||||
"trackActivity": "Registrar Actividad",
|
||||
"selectActivity": "Selecciona una actividad para registrar",
|
||||
"trackActivity": "Rastrear Actividad",
|
||||
"selectActivity": "Selecciona una actividad para rastrear",
|
||||
"activities": {
|
||||
"feeding": "Alimentación",
|
||||
"sleep": "Sueño",
|
||||
@@ -10,128 +10,270 @@
|
||||
"activity": "Actividad"
|
||||
},
|
||||
"feeding": {
|
||||
"title": "Feeding",
|
||||
"addFeeding": "Add Feeding",
|
||||
"type": "Feeding Type",
|
||||
"title": "Alimentación",
|
||||
"addFeeding": "Agregar Alimentación",
|
||||
"type": "Tipo de Alimentación",
|
||||
"types": {
|
||||
"breast": "Breast",
|
||||
"bottle": "Bottle",
|
||||
"solid": "Solid Food"
|
||||
"breast": "Pecho",
|
||||
"bottle": "Biberón",
|
||||
"solid": "Comida Sólida"
|
||||
},
|
||||
"side": "Side",
|
||||
"side": "Lado",
|
||||
"sides": {
|
||||
"left": "Left",
|
||||
"right": "Right",
|
||||
"both": "Both"
|
||||
"left": "Izquierdo",
|
||||
"right": "Derecho",
|
||||
"both": "Ambos"
|
||||
},
|
||||
"amount": "Amount",
|
||||
"duration": "Duration",
|
||||
"startTime": "Start Time",
|
||||
"endTime": "End Time",
|
||||
"notes": "Notes",
|
||||
"amount": "Cantidad",
|
||||
"duration": "Duración",
|
||||
"startTime": "Iniciar Cronómetro",
|
||||
"endTime": "Detener Cronómetro",
|
||||
"reset": "Reiniciar",
|
||||
"notes": "Notas",
|
||||
"bottleType": "Tipo de Biberón",
|
||||
"bottleTypes": {
|
||||
"formula": "Fórmula",
|
||||
"breastmilk": "Leche Materna",
|
||||
"other": "Otro"
|
||||
},
|
||||
"foodDescription": "Descripción de Comida",
|
||||
"amountDescription": "Descripción de Cantidad",
|
||||
"placeholders": {
|
||||
"amount": "Enter amount",
|
||||
"notes": "Add any notes about this feeding..."
|
||||
"amount": "Ingresa cantidad",
|
||||
"notes": "Agrega notas sobre esta alimentación...",
|
||||
"duration": "O ingresa duración manualmente",
|
||||
"foodDescription": "ej., Cereal de arroz, Puré de plátano",
|
||||
"amountDescription": "ej., 1/4 taza, 2 cucharadas"
|
||||
},
|
||||
"units": {
|
||||
"ml": "ml",
|
||||
"oz": "oz",
|
||||
"minutes": "minutes"
|
||||
"minutes": "minutos"
|
||||
},
|
||||
"validation": {
|
||||
"durationRequired": "Por favor ingresa duración o usa el cronómetro",
|
||||
"amountRequired": "Por favor ingresa cantidad",
|
||||
"foodRequired": "Por favor ingresa descripción de comida"
|
||||
},
|
||||
"success": "¡Alimentación registrada exitosamente!",
|
||||
"deleted": "Alimentación eliminada exitosamente",
|
||||
"recentFeedings": "Alimentaciones Recientes",
|
||||
"error": {
|
||||
"saveFailed": "Error al guardar alimentación",
|
||||
"deleteFailed": "Error al eliminar alimentación"
|
||||
}
|
||||
},
|
||||
"sleep": {
|
||||
"title": "Sleep",
|
||||
"addSleep": "Add Sleep",
|
||||
"startTime": "Sleep Start",
|
||||
"endTime": "Sleep End",
|
||||
"duration": "Duration",
|
||||
"quality": "Quality",
|
||||
"title": "Sueño",
|
||||
"addSleep": "Agregar Sueño",
|
||||
"logSleep": "Registrar Sueño",
|
||||
"startTime": "Inicio de Sueño",
|
||||
"endTime": "Fin de Sueño",
|
||||
"duration": "Duración",
|
||||
"quality": "Calidad",
|
||||
"qualities": {
|
||||
"poor": "Poor",
|
||||
"fair": "Fair",
|
||||
"good": "Good",
|
||||
"excellent": "Excellent"
|
||||
"poor": "Pobre",
|
||||
"fair": "Regular",
|
||||
"good": "Buena",
|
||||
"excellent": "Excelente"
|
||||
},
|
||||
"notes": "Notes",
|
||||
"location": "Ubicación",
|
||||
"locations": {
|
||||
"crib": "Cuna",
|
||||
"bed": "Cama",
|
||||
"stroller": "Cochecito",
|
||||
"carrier": "Portabebés",
|
||||
"other": "Otro"
|
||||
},
|
||||
"status": {
|
||||
"title": "Estado del Sueño",
|
||||
"completed": "Completado (tiene hora de fin)",
|
||||
"ongoing": "En curso (aún durmiendo)"
|
||||
},
|
||||
"now": "Ahora",
|
||||
"notes": "Notas",
|
||||
"placeholders": {
|
||||
"notes": "Add any notes about this sleep session..."
|
||||
}
|
||||
"notes": "Agrega notas sobre esta sesión de sueño..."
|
||||
},
|
||||
"recentSleeps": "Sueños Recientes",
|
||||
"success": "¡Sueño registrado exitosamente!",
|
||||
"deleted": "Sueño eliminado exitosamente",
|
||||
"ongoing_duration": "En curso - {{duration}}"
|
||||
},
|
||||
"diaper": {
|
||||
"title": "Diaper",
|
||||
"addDiaper": "Add Diaper Change",
|
||||
"type": "Type",
|
||||
"title": "Pañal",
|
||||
"addDiaper": "Agregar Cambio de Pañal",
|
||||
"logDiaper": "Registrar Cambio de Pañal",
|
||||
"type": "Tipo",
|
||||
"types": {
|
||||
"wet": "Wet",
|
||||
"dirty": "Dirty",
|
||||
"both": "Both",
|
||||
"dry": "Dry"
|
||||
"wet": "Mojado",
|
||||
"dirty": "Sucio",
|
||||
"both": "Ambos",
|
||||
"dry": "Seco"
|
||||
},
|
||||
"time": "Time",
|
||||
"notes": "Notes",
|
||||
"time": "Hora",
|
||||
"now": "Ahora",
|
||||
"conditions": {
|
||||
"title": "Condiciones",
|
||||
"normal": "Normal",
|
||||
"soft": "Suave",
|
||||
"hard": "Duro",
|
||||
"watery": "Aguado",
|
||||
"mucus": "Mucosidad",
|
||||
"blood": "Sangre"
|
||||
},
|
||||
"rash": {
|
||||
"title": "Tiene Sarpullido",
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"severity": "Severidad del Sarpullido",
|
||||
"alert": "Sarpullido de pañal detectado. Considera aplicar crema para sarpullido y consultar a tu pediatra si persiste.",
|
||||
"severities": {
|
||||
"mild": "Leve",
|
||||
"moderate": "Moderado",
|
||||
"severe": "Severo"
|
||||
}
|
||||
},
|
||||
"notes": "Notas",
|
||||
"placeholders": {
|
||||
"notes": "Add any notes about this diaper change..."
|
||||
}
|
||||
"notes": "Agrega notas sobre este cambio de pañal..."
|
||||
},
|
||||
"recentDiapers": "Cambios de Pañal Recientes",
|
||||
"success": "¡Cambio de pañal registrado exitosamente!",
|
||||
"deleted": "Cambio de pañal eliminado exitosamente"
|
||||
},
|
||||
"milestone": {
|
||||
"title": "Milestone",
|
||||
"addMilestone": "Add Milestone",
|
||||
"category": "Category",
|
||||
"title": "Hito",
|
||||
"addMilestone": "Agregar Hito",
|
||||
"category": "Categoría",
|
||||
"categories": {
|
||||
"physical": "Physical",
|
||||
"cognitive": "Cognitive",
|
||||
"physical": "Físico",
|
||||
"cognitive": "Cognitivo",
|
||||
"social": "Social",
|
||||
"language": "Language"
|
||||
"language": "Lenguaje"
|
||||
},
|
||||
"description": "Description",
|
||||
"date": "Date",
|
||||
"notes": "Notes",
|
||||
"description": "Descripción",
|
||||
"date": "Fecha",
|
||||
"notes": "Notas",
|
||||
"placeholders": {
|
||||
"description": "Describe the milestone...",
|
||||
"notes": "Add any additional notes..."
|
||||
"description": "Describe el hito...",
|
||||
"notes": "Agrega notas adicionales..."
|
||||
}
|
||||
},
|
||||
"health": {
|
||||
"title": "Health",
|
||||
"addHealth": "Add Health Record",
|
||||
"type": "Type",
|
||||
"title": "Salud",
|
||||
"addHealth": "Agregar Registro de Salud",
|
||||
"type": "Tipo",
|
||||
"types": {
|
||||
"temperature": "Temperature",
|
||||
"medication": "Medication",
|
||||
"symptom": "Symptom",
|
||||
"doctor": "Doctor Visit"
|
||||
"temperature": "Temperatura",
|
||||
"medication": "Medicamento",
|
||||
"symptom": "Síntoma",
|
||||
"doctor": "Visita al Doctor"
|
||||
},
|
||||
"temperature": "Temperature",
|
||||
"medication": "Medication",
|
||||
"dosage": "Dosage",
|
||||
"symptom": "Symptom",
|
||||
"severity": "Severity",
|
||||
"temperature": "Temperatura",
|
||||
"medication": "Medicamento",
|
||||
"medicineInfo": "Información del Medicamento",
|
||||
"medicineName": {
|
||||
"label": "Nombre del Medicamento",
|
||||
"placeholder": "ej., Acetaminofén, Ibuprofeno",
|
||||
"required": "Por favor ingresa nombre del medicamento"
|
||||
},
|
||||
"dosage": {
|
||||
"label": "Dosis",
|
||||
"placeholder": "ej., 5, 2.5",
|
||||
"required": "Por favor ingresa dosis"
|
||||
},
|
||||
"unit": "Unidad",
|
||||
"route": {
|
||||
"label": "Vía",
|
||||
"oral": "Oral",
|
||||
"topical": "Tópica",
|
||||
"injection": "Inyección",
|
||||
"other": "Otra"
|
||||
},
|
||||
"reason": {
|
||||
"label": "Razón (opcional)",
|
||||
"placeholder": "ej., Fiebre, Dolor, Alergia"
|
||||
},
|
||||
"logMedicine": "Registrar Medicamento",
|
||||
"recentMedicines": "Medicamentos Recientes",
|
||||
"success": "¡Medicamento registrado exitosamente!",
|
||||
"error": "Error al guardar medicamento",
|
||||
"deleted": "Medicamento eliminado exitosamente",
|
||||
"deleteError": "Error al eliminar medicamento",
|
||||
"symptom": "Síntoma",
|
||||
"severity": "Severidad",
|
||||
"severities": {
|
||||
"mild": "Mild",
|
||||
"moderate": "Moderate",
|
||||
"severe": "Severe"
|
||||
"mild": "Leve",
|
||||
"moderate": "Moderado",
|
||||
"severe": "Severo"
|
||||
},
|
||||
"notes": "Notes",
|
||||
"notes": "Notas",
|
||||
"placeholders": {
|
||||
"medication": "Medication name",
|
||||
"dosage": "Dosage amount",
|
||||
"symptom": "Describe symptom",
|
||||
"notes": "Add any notes..."
|
||||
"medication": "Nombre del medicamento",
|
||||
"dosage": "Cantidad de dosis",
|
||||
"symptom": "Describe síntoma",
|
||||
"notes": "Agrega notas..."
|
||||
},
|
||||
"units": {
|
||||
"ml": "ml",
|
||||
"mg": "mg",
|
||||
"tsp": "cdta",
|
||||
"tbsp": "cda",
|
||||
"drops": "gotas",
|
||||
"tablet": "tableta(s)",
|
||||
"celsius": "°C",
|
||||
"fahrenheit": "°F"
|
||||
}
|
||||
},
|
||||
"quickLog": "Quick Log",
|
||||
"viewHistory": "View History",
|
||||
"editEntry": "Edit Entry",
|
||||
"deleteEntry": "Delete Entry",
|
||||
"confirmDelete": "Are you sure you want to delete this entry?",
|
||||
"filterByType": "Filter by Type",
|
||||
"filterByChild": "Filter by Child",
|
||||
"sortByNewest": "Newest First",
|
||||
"sortByOldest": "Oldest First",
|
||||
"noEntries": "No entries yet",
|
||||
"addFirstEntry": "Add your first entry to start tracking"
|
||||
}
|
||||
"activity": {
|
||||
"title": "Actividad",
|
||||
"addActivity": "Agregar Actividad",
|
||||
"logActivity": "Registrar Actividad",
|
||||
"type": "Tipo de Actividad",
|
||||
"types": {
|
||||
"play": "Juego",
|
||||
"tummyTime": "Tiempo Boca Abajo",
|
||||
"walk": "Paseo",
|
||||
"music": "Música",
|
||||
"reading": "Lectura",
|
||||
"outdoor": "Juego al Aire Libre",
|
||||
"other": "Otro"
|
||||
},
|
||||
"duration": "Duración (minutos)",
|
||||
"description": "Descripción",
|
||||
"notes": "Notas",
|
||||
"placeholders": {
|
||||
"duration": "Ingresa duración en minutos",
|
||||
"description": "Describe la actividad...",
|
||||
"notes": "Agrega notas..."
|
||||
},
|
||||
"recentActivities": "Actividades Recientes",
|
||||
"success": "¡Actividad registrada exitosamente!",
|
||||
"deleted": "Actividad eliminada exitosamente"
|
||||
},
|
||||
"common": {
|
||||
"selectChild": "Seleccionar Niño",
|
||||
"cancel": "Cancelar",
|
||||
"delete": "Eliminar",
|
||||
"loading": "Cargando...",
|
||||
"noChildrenAdded": "No se han Agregado Niños",
|
||||
"noChildrenMessage": "Necesitas agregar un niño antes de poder rastrear actividades",
|
||||
"addChild": "Agregar Niño",
|
||||
"recentActivities": "Actividades Recientes",
|
||||
"error": {
|
||||
"loadChildrenFailed": "Error al cargar niños"
|
||||
}
|
||||
},
|
||||
"quickLog": "Registro Rápido",
|
||||
"viewHistory": "Ver Historial",
|
||||
"editEntry": "Editar Entrada",
|
||||
"deleteEntry": "Eliminar Entrada",
|
||||
"confirmDelete": "¿Estás seguro de que quieres eliminar esta entrada?",
|
||||
"filterByType": "Filtrar por Tipo",
|
||||
"filterByChild": "Filtrar por Niño",
|
||||
"sortByNewest": "Más Reciente Primero",
|
||||
"sortByOldest": "Más Antiguo Primero",
|
||||
"noEntries": "Aún no hay entradas",
|
||||
"addFirstEntry": "Agrega tu primera entrada para comenzar el seguimiento"
|
||||
}
|
||||
Reference in New Issue
Block a user