Files
maternal-app/maternal-web/locales/en/tracking.json
Andrei 2110359307
Some checks failed
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
feat: Add comprehensive accessibility improvements and medical tracking
- **EULA Persistence Fix**: Fixed EULA dialog showing on every login
  - Added eulaAcceptedAt/eulaVersion to AuthResponse interface
  - Updated login/register/getUserById endpoints to return EULA fields
  - Changed EULACheck to use refreshUser() instead of window.reload()

- **Touch Target Accessibility**: All interactive elements now meet 48x48px minimum
  - Fixed 14 undersized IconButtons across 5 files
  - Changed size="small" to size="medium" with minWidth/minHeight constraints
  - Updated children page, AI chat, analytics cards, legal viewer

- **Alt Text for Images**: Complete image accessibility for screen readers
  - Added photoAlt field to children table (Migration V009)
  - PhotoUpload component now includes alt text input field
  - All Avatar components have meaningful alt text
  - Default alt text: "Photo of {childName}", "{userName}'s profile photo"

- **Medical Tracking Consolidation**: Unified medical page with tabs
  - Medicine page now has 3 tabs: Medication, Temperature, Doctor Visit
  - Backward compatibility for legacy 'medicine' activity type
  - Created dedicated /track/growth page for physical measurements

- **Track Page Updates**:
  - Simplified to 6 options: Feeding, Sleep, Diaper, Medical, Activity, Growth
  - Fixed grid layout to 3 cards per row with minWidth: 200px
  - Updated terminology from "Medicine" to "Medical"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 13:15:23 +00:00

284 lines
7.6 KiB
JSON

{
"title": "Activity Tracking",
"trackActivity": "Track Activity",
"selectActivity": "Select an activity to track",
"activities": {
"feeding": "Feeding",
"sleep": "Sleep",
"diaper": "Diaper",
"medicine": "Medicine",
"medical": "Medical",
"activity": "Activity",
"growth": "Growth",
"temperature": "Temperature",
"medication": "Medication"
},
"feeding": {
"title": "Feeding",
"addFeeding": "Add Feeding",
"type": "Feeding Type",
"types": {
"breast": "Breast",
"bottle": "Bottle",
"solid": "Solid Food"
},
"side": "Side",
"sides": {
"left": "Left",
"right": "Right",
"both": "Both"
},
"amount": "Amount",
"duration": "Duration",
"startTime": "Start Timer",
"endTime": "Stop Timer",
"reset": "Reset",
"notes": "Notes",
"bottleType": "Bottle Type",
"bottleTypes": {
"formula": "Formula",
"breastmilk": "Breast Milk",
"other": "Other"
},
"foodDescription": "Food Description",
"amountDescription": "Amount Description",
"placeholders": {
"amount": "Enter amount",
"notes": "Add any notes about this feeding...",
"duration": "Or enter duration manually",
"foodDescription": "e.g., Rice cereal, Banana puree",
"amountDescription": "e.g., 1/4 cup, 2 spoonfuls"
},
"units": {
"ml": "ml",
"oz": "oz",
"minutes": "minutes"
},
"validation": {
"durationRequired": "Please enter duration or use the timer",
"amountRequired": "Please enter amount",
"foodRequired": "Please enter food description"
},
"success": "Feeding logged successfully!",
"deleted": "Feeding deleted successfully",
"recentFeedings": "Recent Feedings",
"error": {
"saveFailed": "Failed to save feeding",
"deleteFailed": "Failed to delete feeding"
}
},
"sleep": {
"title": "Sleep",
"addSleep": "Add Sleep",
"logSleep": "Log Sleep",
"startTime": "Sleep Start",
"endTime": "Sleep End",
"duration": "Duration",
"quality": "Quality",
"qualities": {
"poor": "Poor",
"fair": "Fair",
"good": "Good",
"excellent": "Excellent"
},
"location": "Location",
"locations": {
"crib": "Crib",
"bed": "Bed",
"stroller": "Stroller",
"carrier": "Carrier",
"other": "Other"
},
"status": {
"title": "Sleep Status",
"completed": "Completed (has end time)",
"ongoing": "Ongoing (still sleeping)"
},
"now": "Now",
"notes": "Notes",
"placeholders": {
"notes": "Add any notes about this sleep session..."
},
"recentSleeps": "Recent Sleeps",
"success": "Sleep logged successfully!",
"deleted": "Sleep deleted successfully",
"ongoing_duration": "Ongoing - {{duration}}"
},
"diaper": {
"title": "Diaper",
"addDiaper": "Add Diaper Change",
"logDiaper": "Log Diaper Change",
"type": "Type",
"types": {
"wet": "Wet",
"dirty": "Dirty",
"both": "Both",
"dry": "Dry"
},
"time": "Time",
"now": "Now",
"conditions": {
"title": "Conditions",
"normal": "Normal",
"soft": "Soft",
"hard": "Hard",
"watery": "Watery",
"mucus": "Mucus",
"blood": "Blood"
},
"rash": {
"title": "Has Rash",
"yes": "Yes",
"no": "No",
"severity": "Rash Severity",
"alert": "Diaper rash detected. Consider applying diaper rash cream and consulting your pediatrician if it persists.",
"severities": {
"mild": "Mild",
"moderate": "Moderate",
"severe": "Severe"
}
},
"notes": "Notes",
"placeholders": {
"notes": "Add any notes about this diaper change..."
},
"recentDiapers": "Recent Diaper Changes",
"success": "Diaper change logged successfully!",
"deleted": "Diaper change deleted successfully"
},
"milestone": {
"title": "Milestone",
"addMilestone": "Add Milestone",
"category": "Category",
"categories": {
"physical": "Physical",
"cognitive": "Cognitive",
"social": "Social",
"language": "Language"
},
"description": "Description",
"date": "Date",
"notes": "Notes",
"placeholders": {
"description": "Describe the milestone...",
"notes": "Add any additional notes..."
}
},
"health": {
"title": "Health",
"addHealth": "Add Health Record",
"type": "Type",
"types": {
"temperature": "Temperature",
"medication": "Medication",
"symptom": "Symptom",
"doctor": "Doctor Visit"
},
"temperature": "Temperature",
"medication": "Medication",
"medicineInfo": "Medicine Information",
"medicineName": {
"label": "Medicine Name",
"placeholder": "e.g., Acetaminophen, Ibuprofen",
"required": "Please enter medicine name"
},
"dosage": {
"label": "Dosage",
"placeholder": "e.g., 5, 2.5",
"required": "Please enter dosage"
},
"unit": "Unit",
"route": {
"label": "Route",
"oral": "Oral",
"topical": "Topical",
"injection": "Injection",
"other": "Other"
},
"reason": {
"label": "Reason (optional)",
"placeholder": "e.g., Fever, Pain, Allergy"
},
"logMedicine": "Log Medicine",
"recentMedicines": "Recent Medicines",
"success": "Medicine logged successfully!",
"error": "Failed to save medicine",
"deleted": "Medicine deleted successfully",
"deleteError": "Failed to delete medicine",
"symptom": "Symptom",
"severity": "Severity",
"severities": {
"mild": "Mild",
"moderate": "Moderate",
"severe": "Severe"
},
"notes": "Notes",
"placeholders": {
"medication": "Medication name",
"dosage": "Dosage amount",
"symptom": "Describe symptom",
"notes": "Add any notes..."
},
"units": {
"ml": "ml",
"mg": "mg",
"tsp": "tsp",
"tbsp": "tbsp",
"drops": "drops",
"tablet": "tablet(s)",
"celsius": "°C",
"fahrenheit": "°F"
}
},
"activity": {
"title": "Activity",
"addActivity": "Add Activity",
"logActivity": "Log Activity",
"type": "Activity Type",
"types": {
"play": "Play",
"tummyTime": "Tummy Time",
"walk": "Walk",
"music": "Music",
"reading": "Reading",
"outdoor": "Outdoor Play",
"other": "Other"
},
"duration": "Duration (minutes)",
"description": "Description",
"notes": "Notes",
"placeholders": {
"duration": "Enter duration in minutes",
"description": "Describe the activity...",
"notes": "Add any notes..."
},
"recentActivities": "Recent Activities",
"success": "Activity logged successfully!",
"deleted": "Activity deleted successfully"
},
"common": {
"selectChild": "Select Child",
"cancel": "Cancel",
"delete": "Delete",
"loading": "Loading...",
"noChildrenAdded": "No Children Added",
"noChildrenMessage": "You need to add a child before you can track activities",
"addChild": "Add Child",
"recentActivities": "Recent Activities",
"error": {
"loadChildrenFailed": "Failed to load children"
}
},
"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"
}