Files
digital-pilates/i18n/en/personal.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

408 lines
12 KiB
TypeScript

export const personal = {
edit: 'Edit',
login: 'Log in',
memberNumber: 'Member ID: {{number}}',
aiUsage: 'Free AI credits: {{value}}',
aiUsageUnlimited: 'Unlimited',
fishRecord: 'Energy log',
badgesPreview: {
title: 'My badges',
subtitle: 'Celebrate every milestone',
cta: 'View all',
loading: 'Syncing your badges…',
empty: 'Complete sleep or challenge tasks to unlock your first badge.',
lockedHint: 'Keep building the habit to unlock more.',
},
stats: {
height: 'Height',
weight: 'Weight',
age: 'Age',
ageSuffix: ' yrs',
},
membership: {
badge: 'Premium member',
planFallback: 'VIP Membership',
expiryLabel: 'Valid until',
changeButton: 'Change plan',
validForever: 'No expiry',
dateFormat: 'YYYY-MM-DD',
},
sections: {
notifications: 'Notifications',
developer: 'Developer',
other: 'Other',
account: 'Account & Security',
language: 'Language',
healthData: 'Health data permissions',
medicalSources: 'Medical Advice Sources',
customization: 'Customization',
},
menu: {
notificationSettings: 'Notification settings',
developerOptions: 'Developer options',
pushSettings: 'Push notification settings',
privacyPolicy: 'Privacy policy',
feedback: 'Feedback',
userAgreement: 'User agreement',
logout: 'Log out',
deleteAccount: 'Delete account',
healthDataPermissions: 'Health data disclosure',
whoSource: 'World Health Organization (WHO)',
tabBarConfig: 'Tab Bar Settings',
},
language: {
title: 'Language',
menuTitle: 'Display language',
modalTitle: 'Choose language',
modalSubtitle: 'Your selection applies immediately',
cancel: 'Cancel',
options: {
zh: {
label: 'Chinese',
description: 'Use the Chinese interface',
},
en: {
label: 'English',
description: 'Use the app in English',
},
},
},
tabBarConfig: {
title: 'Tab Bar Settings',
subtitle: 'Customize your bottom navigation',
description: 'Use toggles to show or hide tabs',
resetButton: 'Reset',
cannotDisable: 'Cannot be disabled',
resetConfirm: {
title: 'Reset to Default?',
message: 'This will reset all tab bar settings and visibility',
cancel: 'Cancel',
confirm: 'Confirm',
},
resetSuccess: 'Settings reset to default',
},
};
export const editProfile = {
title: 'Edit Profile',
fields: {
name: 'Nickname',
gender: 'Gender',
height: 'Height',
weight: 'Weight',
activityLevel: 'Activity Level',
birthDate: 'Birth Date',
maxHeartRate: 'Max Heart Rate',
},
gender: {
male: 'Male',
female: 'Female',
notSet: 'Not set',
},
height: {
unit: 'cm',
placeholder: '170cm',
},
weight: {
unit: 'kg',
placeholder: '55kg',
},
activityLevels: {
1: 'Sedentary',
2: 'Lightly active',
3: 'Moderately active',
4: 'Very active',
descriptions: {
1: 'Rarely exercise',
2: 'Exercise 1-3 times per week',
3: 'Exercise 3-5 times per week',
4: 'Exercise 6-7 times per week',
},
},
birthDate: {
placeholder: 'January 1, 1995',
format: '{{month}} {{day}}, {{year}}',
},
maxHeartRate: {
unit: 'bpm',
notAvailable: 'Not available',
alert: {
title: 'Notice',
message: 'Max heart rate data is automatically retrieved from Health app',
},
},
alerts: {
notLoggedIn: {
title: 'Not logged in',
message: 'Please log in before trying to save',
},
saveFailed: {
title: 'Save failed',
message: 'Please try again later',
},
avatarPermissions: {
title: 'Insufficient permissions',
message: 'Photo album permission is required to select avatar',
},
avatarUploadFailed: {
title: 'Upload failed',
message: 'Avatar upload failed, please try again',
},
avatarError: {
title: 'Error occurred',
message: 'Failed to select avatar, please try again',
},
avatarSuccess: {
title: 'Success',
message: 'Avatar updated successfully',
},
},
modals: {
cancel: 'Cancel',
confirm: 'Confirm',
save: 'Save',
input: {
namePlaceholder: 'Enter nickname',
weightPlaceholder: 'Enter weight',
weightUnit: 'kg',
},
selectHeight: 'Select Height',
selectGender: 'Select Gender',
selectActivityLevel: 'Select Activity Level',
female: 'Female',
male: 'Male',
},
defaultValues: {
name: 'TonightEatMeat',
height: 170,
weight: 55,
birthDate: '1995-01-01',
activityLevel: 1,
},
};
export const login = {
title: 'Log In',
subtitle: 'Healthy living, freedom through self-discipline',
appleLogin: 'Sign in with Apple',
loggingIn: 'Logging in...',
agreement: {
readAndAgree: 'I have read and agree to ',
privacyPolicy: 'Privacy Policy',
and: ' and ',
userAgreement: 'User Agreement',
alert: {
title: 'Please read and agree',
message: 'Please read and check the "Privacy Policy" and "User Agreement" before continuing. Clicking "Agree and Continue" will automatically check the box and proceed.',
cancel: 'Cancel',
confirm: 'Agree and Continue',
},
},
errors: {
appleIdentityTokenMissing: 'Failed to get Apple identity token',
loginFailed: 'Login failed, please try again later',
loginFailedTitle: 'Login Failed',
},
success: {
loginSuccess: 'Login Successful',
},
};
export const authGuard = {
logout: {
error: 'Logout Failed',
errorMessage: 'Failed to logout, please try again later',
},
confirmLogout: {
title: 'Confirm Logout',
message: 'Are you sure you want to logout of your current account?',
cancelButton: 'Cancel',
confirmButton: 'Confirm',
},
deleteAccount: {
successTitle: 'Account Deleted',
successMessage: 'Your account has been successfully deleted',
confirmButton: 'OK',
errorTitle: 'Deletion Failed',
errorMessage: 'Failed to delete account, please try again later',
},
confirmDeleteAccount: {
title: 'Confirm Account Deletion',
message: 'This action cannot be undone. Your account and all related data will be permanently deleted. Are you sure you want to continue?',
cancelButton: 'Cancel',
confirmButton: 'Confirm Deletion',
},
};
export const membershipModal = {
plans: {
lifetime: {
title: 'Lifetime',
subtitle: 'Lifetime companion, witnessing every health transformation',
},
quarterly: {
title: 'Quarterly',
subtitle: '3-month scientific plan, making health a habit',
},
weekly: {
title: 'Weekly',
subtitle: '7-day trial, experience the power of professional guidance',
},
unknown: 'Unknown Plan',
tag: 'Best Value',
},
benefits: {
title: 'Benefits Comparison',
subtitle: 'Core benefits at a glance, choose with confidence',
table: {
benefit: 'Benefit',
vip: 'VIP',
regular: 'Regular',
},
items: {
aiCalories: {
title: 'AI Calorie Tracking',
description: 'Photo recognition for automatic calorie tracking',
},
aiNutrition: {
title: 'AI Nutrition Label',
description: 'Identify nutrition facts from food packaging',
},
healthReminder: {
title: 'Daily Health Reminder',
description: 'Personalized health reminders based on goals',
},
aiMedication: {
title: 'AI Medication Manager',
description: 'Deep analysis of interactions & personalized schedules',
},
customChallenge: {
title: 'Unlimited Custom Challenges',
description: 'Create exclusive challenges & invite friends to join the journey',
},
},
permissions: {
unlimited: 'Unlimited',
limited: 'Limited',
dailyLimit: '{{count}} times/day',
fullSupport: 'Full Support',
basicSupport: 'Basic',
smartReminder: 'Smart',
fullAnalysis: 'Deep Analysis',
createUnlimited: 'Unlimited',
notSupported: 'Not Supported',
},
},
sectionTitle: {
plans: 'Membership Plans',
plansSubtitle: 'Flexible choices, improve at your own pace',
},
actions: {
subscribe: 'Subscribe Now',
processing: 'Processing...',
restore: 'Restore Purchase',
restoring: 'Restoring...',
back: 'Back',
close: 'Close membership modal',
selectPlan: 'Select {{plan}} plan',
purchaseHint: 'Click to purchase {{plan}} membership',
},
agreements: {
prefix: 'By subscribing, you agree to',
userAgreement: 'User Agreement',
membershipAgreement: 'Membership Agreement',
autoRenewalAgreement: 'Auto-Renewal Agreement',
alert: {
title: 'Please read and agree',
message: 'Please agree to User Agreement, Membership Agreement and Auto-Renewal Agreement before purchasing',
confirm: 'OK',
},
},
errors: {
noProducts: 'No membership products found. Please configure iOS products in RevenueCat and sync to current Offering.',
purchaseCancelled: 'Purchase cancelled',
alreadyPurchased: 'You already own this item',
networkError: 'Network connection failed',
paymentPending: 'Payment is processing',
invalidCredentials: 'Account verification failed',
purchaseFailed: 'Purchase failed',
restoreSuccess: 'Restore successful',
restoreFailed: 'Restore failed',
restoreCancelled: 'Restore cancelled',
restorePartialFailed: 'Restore partially failed',
noPurchasesFound: 'No purchase records found',
selectPlan: 'Please select a plan',
},
loading: {
products: 'Loading membership plans, please wait',
purchase: 'Purchase in progress, please wait',
},
success: {
purchase: 'Membership activated successfully',
},
};
export const notificationSettings = {
title: 'Notification Settings',
loading: 'Loading...',
sections: {
notifications: 'Notification Settings',
medicationReminder: 'Medication Reminder',
nutritionReminder: 'Nutrition Reminder',
moodReminder: 'Mood Reminder',
description: 'Description',
},
items: {
pushNotifications: {
title: 'Push Notifications',
description: 'Receive app notifications when enabled',
},
medicationReminder: {
title: 'Medication Reminder',
description: 'Receive reminder notifications at medication time',
},
nutritionReminder: {
title: 'Nutrition Record Reminder',
description: 'Receive nutrition record reminders at meal times',
},
moodReminder: {
title: 'Mood Record Reminder',
description: 'Receive mood record reminders in the evening',
},
},
description: {
text: '• Push notifications is the master switch for all notifications\n• Various reminders require push notifications to be enabled\n• You can manage notification permissions in system settings\n• Disabling push notifications will stop all app notifications',
},
alerts: {
permissionDenied: {
title: 'Permission Denied',
message: 'Please enable notification permission in system settings, then try to enable push notifications',
cancel: 'Cancel',
goToSettings: 'Go to Settings',
},
error: {
title: 'Error',
message: 'Failed to request notification permission',
saveFailed: 'Failed to save settings',
medicationReminderFailed: 'Failed to set medication reminder',
nutritionReminderFailed: 'Failed to set nutrition reminder',
moodReminderFailed: 'Failed to set mood reminder',
},
notificationsEnabled: {
title: 'Notifications Enabled',
body: 'You will receive app notifications and reminders',
},
medicationReminderEnabled: {
title: 'Medication Reminder Enabled',
body: 'You will receive reminder notifications at medication time',
},
nutritionReminderEnabled: {
title: 'Nutrition Reminder Enabled',
body: 'You will receive nutrition record reminders at meal times',
},
moodReminderEnabled: {
title: 'Mood Reminder Enabled',
body: 'You will receive mood record reminders in the evening',
},
},
};