feat(app): add version check system and enhance internationalization support

Add comprehensive app update checking functionality with:
- New VersionCheckContext for managing update detection and notifications
- VersionUpdateModal UI component for presenting update information
- Version service API integration with platform-specific update URLs
- Version check menu item in personal settings with manual/automatic checking

Enhance internationalization across workout features:
- Complete workout type translations for English and Chinese
- Localized workout detail modal with proper date/time formatting
- Locale-aware date formatting in fitness rings detail
- Workout notification improvements with deep linking to specific workout details

Improve UI/UX with better chart rendering, sizing fixes, and enhanced navigation flow. Update app version to 1.1.3 and include app version in API headers for better tracking.
This commit is contained in:
2025-11-29 20:47:16 +08:00
parent 83b77615cf
commit a309123b35
19 changed files with 1132 additions and 159 deletions

View File

@@ -37,6 +37,25 @@ export const personal = {
medicalSources: 'Medical Advice Sources',
customization: 'Customization',
},
versionCheck: {
sectionTitle: 'Updates',
menuTitle: 'Check for updates',
checking: 'Checking for updates...',
upToDate: 'You are on the latest version',
updateBadge: 'v{{version}} available',
failed: 'Update check failed, please try again later',
updateFound: 'New version v{{version}}',
modalTitle: 'Update available',
modalTag: 'New',
currentVersion: 'Current',
latestVersion: 'Latest',
releaseNotesTitle: "What's new",
fallbackNotes: 'Performance improvements and fixes to keep things smooth.',
later: 'Remind me later',
updateNow: 'Update now',
missingUrl: 'Store link is not ready yet',
openStoreFailed: 'Could not open the store, please try again',
},
menu: {
notificationSettings: 'Notification settings',
developerOptions: 'Developer options',
@@ -405,4 +424,4 @@ export const notificationSettings = {
body: 'You will receive mood record reminders in the evening',
},
},
};
};