export const nutritionRecords = { title: 'Nutrition Records', listTitle: 'Today\'s Meals', recordCount: '{{count}} records', empty: { title: 'No records today', action: 'Add Record', }, footer: { end: '- No more records -', loadMore: 'Load More', }, delete: { title: 'Confirm Delete', message: 'Are you sure you want to delete this nutrition record? This action cannot be undone.', cancel: 'Cancel', confirm: 'Delete', }, mealTypes: { breakfast: 'Breakfast', lunch: 'Lunch', dinner: 'Dinner', snack: 'Snack', other: 'Other', }, nutrients: { protein: 'Protein', fat: 'Fat', carbs: 'Carbs', unit: 'g', caloriesUnit: 'kcal', }, overlay: { title: 'Record Method', scan: 'AI Scan', foodLibrary: 'Food Library', voiceRecord: 'Voice Log', }, chart: { remaining: 'Remaining', formula: 'Remaining = Metabolism + Exercise - Diet', metabolism: 'Metabolism', exercise: 'Exercise', diet: 'Diet', }, }; export const foodCamera = { title: 'Food Camera', hint: 'Keep food within the frame', permission: { title: 'Camera Permission Required', description: 'Camera access is needed to capture food for AI recognition', button: 'Allow Access', }, guide: { title: 'Shooting Guide', description: 'Please upload or take clear photos of food to improve recognition accuracy', button: 'Got it', good: 'Good lighting, clear subject', bad: 'Blurry, poor lighting', }, buttons: { album: 'Album', capture: 'Capture', help: 'Help', }, alerts: { captureFailed: { title: 'Capture Failed', message: 'Please try again', }, pickFailed: { title: 'Selection Failed', message: 'Please try again', }, }, }; export const foodRecognition = { title: 'Food Recognition', header: { confirm: 'Confirm Food', recognizing: 'AI Recognizing', }, errors: { noImage: 'Image not found', generic: 'Food recognition failed, please try again', unknown: 'Unknown error', noFoodDetected: 'Recognition failed: No food detected', processError: 'Error during recognition process', }, logs: { uploading: '📤 Uploading image to cloud...', uploadSuccess: '✅ Image upload completed', analyzing: '🤖 AI model analyzing...', analysisSuccess: '✅ AI analysis completed', confidence: '🎯 Confidence: {{value}}%', itemsFound: '🍽️ Detected {{count}} food items', failed: '❌ Recognition failed: No food detected', error: '❌ Error during recognition process', }, status: { idle: { title: 'Ready', subtitle: 'Please wait...', }, uploading: { title: 'Uploading Image', subtitle: 'Uploading image to cloud server...', }, recognizing: { title: 'AI Analyzing', subtitle: 'AI model is analyzing food ingredients...', }, completed: { title: 'Success', subtitle: 'Redirecting to analysis results...', }, failed: { title: 'Failed', subtitle: 'Please check network or try again later', }, processing: { title: 'Processing...', subtitle: 'Please wait...', }, }, mealTypes: { breakfast: 'Breakfast', lunch: 'Lunch', dinner: 'Dinner', snack: 'Snack', unknown: 'Unknown', }, info: { title: 'Smart Food Recognition', description: 'AI will analyze the photo, identify food types, estimate nutrition, and generate a detailed report.', }, actions: { start: 'Start Recognition', retry: 'Retry', logs: 'Process Logs', logsPlaceholder: 'Ready to start...', }, alerts: { recognizing: { title: 'Recognition in progress', message: 'Recognition is not complete. Are you sure you want to go back?', continue: 'Continue', back: 'Go Back', }, }, }; export const foodAnalysisResult = { title: 'Analysis Result', error: { notFound: 'Image or recognition result not found', }, placeholder: 'Nutrition Record', nutrients: { caloriesUnit: 'kcal', protein: 'Protein', fat: 'Fat', carbs: 'Carbs', unit: 'g', }, sections: { recognitionResult: 'Recognition Result', foodIntake: 'Food Intake', }, nonFood: { title: 'No Food Detected', suggestions: { title: 'Suggestions:', item1: '• Ensure food is in the frame', item2: '• Try a clearer angle', item3: '• Avoid blur or poor lighting', }, }, actions: { retake: 'Retake', record: 'Record', close: 'Close', }, mealSelector: { title: 'Select Meal', }, editModal: { title: 'Edit Food Info', fields: { name: 'Food Name', namePlaceholder: 'Enter food name', amount: 'Weight (g)', amountPlaceholder: 'Enter weight', calories: 'Calories (kcal)', caloriesPlaceholder: 'Enter calories', }, actions: { cancel: 'Cancel', save: 'Save', }, }, confidence: 'Confidence: {{value}}%', dateFormats: { today: 'MMM D, YYYY', full: 'MMM D, YYYY HH:mm', }, }; export const foodLibrary = { title: 'Food Library', custom: 'Custom', search: { placeholder: 'Search food...', loading: 'Searching...', empty: 'No relevant food found', noData: 'No food data', }, loading: 'Loading food library...', retry: 'Retry', mealTypes: { breakfast: 'Breakfast', lunch: 'Lunch', dinner: 'Dinner', snack: 'Snack', }, actions: { record: 'Record', selectMeal: 'Select Meal', }, alerts: { deleteFailed: { title: 'Delete Failed', message: 'Error occurred while deleting food, please try again later', }, createFailed: { title: 'Create Failed', message: 'Error occurred while creating custom food, please try again later', }, }, }; export const createCustomFood = { title: 'Create Custom Food', save: 'Save', preview: { title: 'Preview', defaultName: 'Food Name', }, basicInfo: { title: 'Basic Info', name: 'Food Name', namePlaceholder: 'e.g. Hamburger', defaultAmount: 'Default Amount', calories: 'Calories', }, optionalInfo: { title: 'Optional Info', photo: 'Photo', addPhoto: 'Add Photo', protein: 'Protein', fat: 'Fat', carbohydrate: 'Carbs', }, units: { kcal: 'kcal', g: 'g', gram: 'g', }, alerts: { permissionDenied: { title: 'Permission Denied', message: 'Photo library permission is required to select photos', }, uploadFailed: { title: 'Upload Failed', message: 'Photo upload failed, please try again', }, error: { title: 'Error', message: 'Failed to select photo, please try again', }, validation: { title: 'Notice', nameRequired: 'Please enter food name', caloriesRequired: 'Please enter valid calories', }, }, }; export const voiceRecord = { title: 'Voice Log', intro: { description: 'Describe your meal with voice, AI will intelligently analyze nutrition and calories', }, status: { idle: 'Tap microphone to start recording', listening: 'Listening... Please start speaking...', processing: 'AI is processing voice content...', analyzing: 'AI model is deeply analyzing nutritional components...', result: 'Voice recognition completed, please confirm the result', }, hints: { listening: 'Tell us about the food you want to record', }, examples: { title: 'Recording Examples:', items: [ 'This morning I had two fried eggs, a slice of whole wheat bread and a glass of milk', 'For lunch I had about 150g of braised pork, a small bowl of rice and a serving of vegetables', 'For dinner I had steamed egg custard, seaweed egg drop soup and a bowl of millet porridge', ], }, analysis: { progress: 'Analysis Progress: {{progress}}%', hint: 'AI is deeply analyzing your food description...', }, result: { label: 'Recognition Result:', }, actions: { retry: 'Retry Recording', confirm: 'Confirm & Use', }, alerts: { noVoiceInput: 'No voice input detected, please try again', networkError: 'Network connection error, please check network and try again', voiceError: 'Voice recognition problem occurred, please try again', noValidContent: 'No valid content recognized, please record again', pleaseRecordFirst: 'Please perform voice recognition first', recordingFailed: 'Recording Failed', recordingPermissionError: 'Unable to start voice recognition, please check microphone permission settings', analysisFailed: 'Analysis Failed', }, }; export const nutritionLabelAnalysis = { title: 'Nutrition Label Analysis', camera: { permissionDenied: 'Permission Denied', permissionMessage: 'Camera permission is required to take nutrition label photos', }, actions: { takePhoto: 'Take Photo', selectFromAlbum: 'Select from Album', startAnalysis: 'Start Analysis', close: 'Close', }, placeholder: { text: 'Take or select a nutrition label photo', }, status: { uploading: 'Uploading image...', analyzing: 'Analyzing nutrition label...', }, errors: { analysisFailed: { title: 'Analysis Failed', message: 'Error occurred while analyzing the image, please try again', defaultMessage: 'Analysis service is temporarily unavailable', }, cannotRecognize: 'Unable to recognize nutrition label, please try taking a clearer photo', cameraPermissionDenied: 'Camera permission is required to take nutrition label photos', }, results: { title: 'Detailed Nutrition Analysis', detailedAnalysis: 'Detailed Nutrition Analysis', }, imageViewer: { close: 'Close', dateFormat: 'MMM D, YYYY HH:mm', }, }; export const nutritionAnalysisHistory = { title: 'History', dateFormat: 'MMM D, YYYY HH:mm', recognized: 'Recognized {{count}} nutrients', loadingMore: 'Loading more...', loading: 'Loading history...', filter: { all: 'All', }, filters: { all: 'All', success: 'Success', failed: 'Failed', }, status: { success: 'Success', failed: 'Failed', processing: 'Processing', unknown: 'Unknown', }, nutrients: { energy: 'Energy', protein: 'Protein', carbs: 'Carbs', fat: 'Fat', }, delete: { confirmTitle: 'Confirm Delete', confirmMessage: 'Are you sure you want to delete this record?', cancel: 'Cancel', delete: 'Delete', successTitle: 'Deleted Successfully', successMessage: 'Record has been deleted successfully', }, actions: { expand: 'Expand Details', collapse: 'Collapse Details', expandDetails: 'Expand Details', collapseDetails: 'Collapse Details', confirmDelete: 'Confirm Delete', delete: 'Delete', cancel: 'Cancel', retry: 'Retry', }, empty: { title: 'No History Records', subtitle: 'Start recognizing nutrition labels', }, errors: { error: 'Error', loadFailed: 'Load Failed', unknownError: 'Unknown Error', fetchFailed: 'Failed to fetch history records', fetchFailedRetry: 'Failed to fetch history records, please retry', deleteFailed: 'Delete failed, please try again later', }, loadingState: { records: 'Loading history...', more: 'Loading more...', }, details: { title: 'Detailed Nutrition Information', nutritionDetails: 'Detailed Nutrition Information', aiModel: 'AI Model', provider: 'Service Provider', serviceProvider: 'Service Provider', }, records: { nutritionCount: 'Recognized {{count}} nutrients', }, imageViewer: { close: 'Close', }, }; export const waterDetail = { title: 'Water Details', waterRecord: 'Water Records', today: 'Today', total: 'Total: ', goal: 'Goal: ', noRecords: 'No water records', noRecordsSubtitle: 'Tap "Add Record" to start tracking water intake', deleteConfirm: { title: 'Confirm Delete', message: 'Are you sure you want to delete this water record? This action cannot be undone.', cancel: 'Cancel', confirm: 'Delete', }, deleteButton: 'Delete', water: 'Water', loadingUserPreferences: 'Failed to load user preferences', }; export const waterSettings = { title: 'Water Settings', sections: { dailyGoal: 'Daily Water Goal', quickAdd: 'Quick Add Default', reminder: 'Water Reminder', }, descriptions: { quickAdd: 'Set the default water amount when clicking the "+" button', reminder: 'Set periodic reminders to replenish water', }, labels: { ml: 'ml', disabled: 'Disabled', }, alerts: { goalSuccess: { title: 'Settings Saved', message: 'Daily water goal has been set to {{amount}}ml', }, quickAddSuccess: { title: 'Settings Saved', message: 'Quick add default has been set to {{amount}}ml', }, quickAddFailed: { title: 'Save Failed', message: 'Unable to save quick add default, please try again', }, }, buttons: { cancel: 'Cancel', confirm: 'Confirm', }, status: { reminderEnabled: '{{startTime}}-{{endTime}}, every {{interval}} minutes', }, }; export const waterReminderSettings = { title: 'Water Reminder', sections: { notifications: 'Push Notifications', timeRange: 'Reminder Time Range', interval: 'Reminder Interval', }, descriptions: { notifications: 'Enable to receive periodic water reminders during specified time periods', timeRange: 'Only send reminders during specified time periods to avoid disturbing your rest', interval: 'Choose the reminder frequency, recommended 30-120 minutes', }, labels: { startTime: 'Start Time', endTime: 'End Time', interval: 'Reminder Interval', saveSettings: 'Save Settings', hours: 'Hours', timeRangePreview: 'Time Range Preview', minutes: 'Minutes', }, alerts: { timeValidation: { title: 'Time Setting Tip', startTimeInvalid: 'Start time cannot be later than or equal to end time, please select again', endTimeInvalid: 'End time cannot be earlier than or equal to start time, please select again', }, success: { enabled: 'Settings Saved', enabledMessage: 'Water reminder has been enabled\n\nTime range: {{timeRange}}\nReminder interval: {{interval}}\n\nWe will periodically remind you to drink water during the specified time period', disabled: 'Settings Saved', disabledMessage: 'Water reminder has been disabled', }, error: { title: 'Save Failed', message: 'Unable to save water reminder settings, please try again', }, }, buttons: { confirm: 'Confirm', cancel: 'Cancel', }, };