Files
digital-pilates/i18n/en/medication.ts
richarjiang bca6670390 Add Chinese translations for medication management and personal settings
- Introduced new translation files for medication, personal, and weight management in Chinese.
- Updated the main index file to include the new translation modules.
- Enhanced the medication type definitions to include 'ointment'.
- Refactored workout type labels to utilize i18n for better localization support.
- Improved sleep quality descriptions and recommendations with i18n integration.
2025-11-28 17:29:51 +08:00

472 lines
15 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export const medications = {
greeting: 'Hello, {{name}}',
welcome: 'Welcome to Medication Assistant!',
todayMedications: 'Today\'s Medications',
filters: {
all: 'All',
taken: 'Taken',
missed: 'Missed',
},
emptyState: {
title: 'No medications scheduled for today',
subtitle: 'No medication plans added yet. Let\'s add some.',
},
stack: {
completed: 'Completed ({{count}})',
},
dateFormats: {
today: 'Today, {{date}}',
other: '{{date}}',
},
// MedicationCard
card: {
status: {
missed: 'Missed',
timeToTake: 'Time to take',
remaining: '{{time}} remaining',
},
action: {
takeNow: 'Take Now',
taken: 'Taken',
skipped: 'Skipped',
skip: 'Skip',
submitting: 'Submitting...',
},
skipAlert: {
title: 'Confirm Skip',
message: 'Are you sure you want to skip this medication?\n\nIt will not be recorded as taken.',
cancel: 'Cancel',
confirm: 'Confirm Skip',
},
earlyTakeAlert: {
title: 'Not yet time to take medication',
message: 'This medication is scheduled for {{time}}, which is more than 1 hour from now.\n\nHave you already taken this medication?',
cancel: 'Cancel',
confirm: 'Confirm Taken',
},
takeError: {
title: 'Operation Failed',
message: 'An error occurred while recording medication, please try again later',
confirm: 'OK',
},
skipError: {
title: 'Operation Failed',
message: 'Skip operation failed, please try again later',
confirm: 'OK',
},
},
// Add Medication Page
add: {
title: 'Add Medication',
steps: {
name: 'Medication Name',
dosage: 'Dosage & Form',
frequency: 'Frequency',
time: 'Reminder Time',
note: 'Notes',
},
descriptions: {
name: 'Name the medication and upload package photo for easy identification',
dosage: 'Select tablet type and fill in dosage per administration',
frequency: 'Set medication frequency and daily times',
time: 'Add and manage daily reminder times',
note: 'Fill in notes or doctor instructions (optional)',
},
name: {
placeholder: 'Enter or search medication name',
},
photo: {
title: 'Upload Medication Photo',
subtitle: 'Take a photo or select from album to help identify medication packaging',
selectTitle: 'Select Image',
selectMessage: 'Please select image source',
camera: 'Camera',
album: 'From Album',
cancel: 'Cancel',
retake: 'Retake',
uploading: 'Uploading...',
uploadingText: 'Uploading',
remove: 'Remove',
cameraPermission: 'Camera permission is required to take medication photos',
albumPermission: 'Album permission is required to select medication photos',
uploadFailed: 'Upload Failed',
uploadFailedMessage: 'Image upload failed, please try again later',
cameraFailed: 'Camera Failed',
cameraFailedMessage: 'Unable to open camera, please try again later',
selectFailed: 'Selection Failed',
selectFailedMessage: 'Unable to open album, please try again later',
},
dosage: {
label: 'Dosage per administration',
placeholder: '0.5',
type: 'Type',
unitSelector: 'Select dosage unit',
},
frequency: {
label: 'Times per day',
value: '{{count}} times/day',
period: 'Medication period',
start: 'Start',
end: 'End',
longTerm: 'Long-term',
startDateInvalid: 'Invalid date',
startDateInvalidMessage: 'Start date cannot be earlier than today',
endDateInvalid: 'Invalid date',
endDateInvalidMessage: 'End date cannot be earlier than start date',
},
time: {
label: 'Daily reminder times',
addTime: 'Add Time',
editTime: 'Edit Reminder Time',
addTimeButton: 'Add Time',
},
note: {
label: 'Notes',
placeholder: 'Record precautions, doctor instructions or custom reminders',
voiceNotSupported: 'Voice-to-text is not supported on this device, you can type notes directly',
voiceError: 'Voice recognition unavailable',
voiceErrorMessage: 'Unable to use voice input, please check permission settings and try again',
voiceStartError: 'Unable to start voice input',
voiceStartErrorMessage: 'Please check microphone and voice recognition permissions and try again',
},
actions: {
previous: 'Previous',
next: 'Next',
complete: 'Complete',
},
success: {
title: 'Added Successfully',
message: 'Successfully added medication "{{name}}"',
confirm: 'OK',
},
error: {
title: 'Add Failed',
message: 'An error occurred while creating medication, please try again later',
confirm: 'OK',
},
datePickers: {
startDate: 'Select Start Date',
endDate: 'Select End Date',
time: 'Select Time',
cancel: 'Cancel',
confirm: 'Confirm',
},
pickers: {
timesPerDay: 'Select Times Per Day',
dosageUnit: 'Select Dosage Unit',
cancel: 'Cancel',
confirm: 'Confirm',
},
},
// Medication Management Page
manage: {
title: 'Medication Management',
subtitle: 'Manage status and reminders for all medications',
filters: {
all: 'All',
active: 'Active',
inactive: 'Inactive',
},
loading: 'Loading medication information...',
empty: {
title: 'No Medications',
subtitle: 'No medication records yet, click the top right to add',
},
deactivate: {
title: 'Deactivate {{name}}?',
description: 'After deactivation, medication plans generated for the day will be deleted and cannot be recovered.',
confirm: 'Confirm Deactivation',
cancel: 'Cancel',
error: {
title: 'Operation Failed',
message: 'An error occurred while deactivating medication, please try again later.',
},
},
toggleError: {
title: 'Operation Failed',
message: 'An error occurred while toggling medication status, please try again later.',
},
formLabels: {
capsule: 'Capsule',
pill: 'Tablet',
tablet: 'Tablet',
injection: 'Injection',
spray: 'Spray',
drop: 'Drops',
syrup: 'Syrup',
other: 'Other',
ointment: 'Ointment',
},
frequency: {
daily: 'Daily',
weekly: 'Weekly',
custom: 'Custom',
},
cardMeta: 'Started {{date}} Reminder: {{reminder}}',
reminderNotSet: 'Not set',
unknownDate: 'Unknown date',
},
// Medication Detail Page
detail: {
title: 'Medication Details',
notFound: {
title: 'Medication information not found',
subtitle: 'Please re-enter this page from the medication list.',
},
loading: 'Loading...',
error: {
title: 'Unable to retrieve medication information at this time, please try again later.',
subtitle: 'Please check your network and try again, or return to the previous page.',
},
sections: {
plan: 'Medication Plan',
dosage: 'Dosage & Form',
note: 'Notes',
overview: 'Medication Overview',
aiAnalysis: 'AI Medication Analysis',
},
plan: {
period: 'Medication Period',
time: 'Medication Time',
frequency: 'Frequency',
expiryDate: 'Expiry Date',
longTerm: 'Long-term',
periodMessage: 'Start date: {{startDate}}\n{{endDateInfo}}',
longTermPlan: 'Medication plan: Long-term medication',
timeMessage: 'Set times: {{times}}',
dateFormat: 'MMM D, YYYY',
periodRange: 'From {{startDate}} to {{endDate}}',
periodLongTerm: 'From {{startDate}} until indefinitely',
expiryStatus: {
notSet: 'Not set',
expired: 'Expired',
expiresToday: 'Expires today',
expiresInDays: 'Expires in {{days}} days',
},
},
dosage: {
label: 'Dosage per administration',
form: 'Form',
selectDosage: 'Select Dosage',
selectForm: 'Select Form',
dosageValue: 'Dosage Value',
unit: 'Unit',
},
note: {
label: 'Medication Notes',
placeholder: 'Record precautions, doctor instructions or custom reminders',
edit: 'Edit Notes',
noNote: 'No notes',
voiceNotSupported: 'Voice-to-text is not supported on this device, you can type notes directly',
save: 'Save',
saveError: {
title: 'Save Failed',
message: 'An error occurred while submitting notes, please try again later.',
},
},
overview: {
calculating: 'Calculating...',
takenCount: 'Taken {{count}} times in total',
calculatingDays: 'Calculating adherence days',
startedDays: 'Adhered for {{days}} days',
startDate: 'Started {{date}}',
noStartDate: 'No start date',
},
aiAnalysis: {
analyzing: 'Analyzing medication information...',
analyzingButton: 'Analyzing...',
reanalyzeButton: 'Reanalyze',
getAnalysisButton: 'Get AI Analysis',
button: 'AI Analysis',
status: {
generated: 'Generated',
memberExclusive: 'Member Exclusive',
pending: 'Pending',
},
title: 'Analysis Results',
recommendation: 'AI Recommended',
placeholder: 'Get AI analysis to quickly understand suitable populations, ingredient safety, and usage recommendations.',
categories: {
suitableFor: 'Suitable For',
unsuitableFor: 'Unsuitable For',
sideEffects: 'Possible Side Effects',
storageAdvice: 'Storage Advice',
healthAdvice: 'Health/Usage Advice',
},
membershipCard: {
title: 'Member Exclusive AI In-depth Analysis',
subtitle: 'Unlock complete medication analysis and unlimited usage',
},
error: {
title: 'Analysis Failed',
message: 'AI analysis failed, please try again later',
networkError: 'Failed to initiate analysis request, please check network connection',
unauthorized: 'Please log in first',
forbidden: 'No access to this medication',
notFound: 'Medication not found',
},
},
aiDraft: {
reshoot: 'Reshoot',
saveAndCreate: 'Save & Create',
saveError: {
title: 'Save Failed',
message: 'An error occurred while creating medication, please try again later',
},
},
status: {
enabled: 'Reminders Enabled',
disabled: 'Reminders Disabled',
},
delete: {
title: 'Delete {{name}}?',
description: 'After deletion, reminders and history related to this medication will be cleared and cannot be recovered.',
confirm: 'Delete',
cancel: 'Cancel',
error: {
title: 'Delete Failed',
message: 'An error occurred while removing this medication, please try again later.',
},
},
deactivate: {
title: 'Deactivate {{name}}?',
description: 'After deactivation, medication plans generated for the day will be deleted and cannot be recovered.',
confirm: 'Confirm Deactivation',
cancel: 'Cancel',
error: {
title: 'Operation Failed',
message: 'An error occurred while deactivating medication, please try again later.',
},
},
toggleError: {
title: 'Operation Failed',
message: 'An error occurred while toggling reminder status, please try again later.',
},
updateErrors: {
dosage: 'Update Failed',
dosageMessage: 'An error occurred while updating dosage, please try again later.',
form: 'Update Failed',
formMessage: 'An error occurred while updating form, please try again later.',
expiryDate: 'Update Failed',
expiryDateMessage: 'Failed to update expiry date, please try again later.',
},
imageViewer: {
close: 'Close',
},
pickers: {
cancel: 'Cancel',
confirm: 'Confirm',
},
},
// Edit Frequency Page
editFrequency: {
title: 'Edit Medication Frequency',
missingParams: 'Missing required parameters',
medicationName: 'Editing: {{name}}',
sections: {
frequency: 'Medication Frequency',
frequencyDescription: 'Set daily medication frequency',
time: 'Daily Reminder Times',
timeDescription: 'Add and manage daily reminder times',
},
frequency: {
repeatPattern: 'Repeat Pattern',
timesPerDay: 'Times Per Day',
daily: 'Daily',
weekly: 'Weekly',
custom: 'Custom',
timesLabel: '{{count}} times',
summary: '{{pattern}} {{count}} times',
},
time: {
addTime: 'Add Time',
editTime: 'Edit Reminder Time',
addTimeButton: 'Add Time',
},
actions: {
save: 'Save Changes',
},
error: {
title: 'Update Failed',
message: 'An error occurred while updating medication frequency, please try again later.',
},
pickers: {
cancel: 'Cancel',
confirm: 'Confirm',
},
},
aiProgress: {
title: 'Analyzing',
steps: {
analyzing_product: 'Analyzing product...',
analyzing_suitability: 'Checking suitability...',
analyzing_ingredients: 'Evaluating ingredients...',
analyzing_effects: 'Generating safety advice...',
completed: 'Completed, loading details...',
},
errors: {
default: 'Recognition failed, please retake photo',
queryFailed: 'Query failed, please try again later',
},
modal: {
title: 'Retake Required',
retry: 'Retake Photo',
},
},
aiCamera: {
title: 'AI Scan',
steps: {
front: {
title: 'Front',
subtitle: 'Ensure medication name is clearly visible',
},
side: {
title: 'Back',
subtitle: 'Include specs and ingredients info',
},
aux: {
title: 'Side',
subtitle: 'Add more details to improve accuracy',
},
stepProgress: 'Step {{current}} / {{total}}',
optional: '(Optional)',
notTaken: 'Empty',
},
buttons: {
flip: 'Flip',
capture: 'Snap',
complete: 'Done',
album: 'Album',
},
permission: {
title: 'Camera Permission Required',
description: 'Allow access to capture medication packaging for automatic recognition',
button: 'Allow Camera Access',
},
alerts: {
pickFailed: {
title: 'Selection Failed',
message: 'Please try again or choose another image',
},
captureFailed: {
title: 'Capture Failed',
message: 'Please try again',
},
insufficientPhotos: {
title: 'Photos Missing',
message: 'Please capture at least front and back sides',
},
taskFailed: {
title: 'Task Creation Failed',
defaultMessage: 'Please check network and try again',
},
},
guideModal: {
badge: 'Guide',
title: 'Keep Photos Clear',
description1: 'Please capture the product name and description on the front/back of the medication.',
description2: 'Ensure good lighting, avoid glare, and keep text legible. Photo clarity affects recognition accuracy.',
button: 'Got it!',
},
},
};