feat(mobile): UI-01 upload center, capture and auxiliary pages

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-21 17:20:43 +08:00
parent f6929ae18f
commit 1f67b7c818
26 changed files with 2144 additions and 771 deletions
+109 -10
View File
@@ -30,7 +30,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get albumDetail => 'Album details';
@override
String get queue => 'Upload queue';
String get queue => 'Uploads';
@override
String get settings => 'Settings';
@@ -38,6 +38,41 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get language => 'Language';
@override
String get settingsSectionAccount => 'Account';
@override
String get settingsSectionLanguage => 'Language';
@override
String get settingsSectionSecurity => 'Security';
@override
String get settingsSectionUploadHelp => 'Upload help';
@override
String get settingsSectionAbout => 'About';
@override
String get settingsSignedInAccount => 'Currently signed-in account';
@override
String get settingsVersion => 'Version';
@override
String get settingsUploadHelpTitle => 'How background uploads work';
@override
String get settingsUploadHelpBody =>
'While the app stays in the background, the system keeps uploads running within its battery limits. If you force quit the app or the system stops it, unfinished tasks pause and resume the next time you open the app. Tasks waiting for the network start automatically once a connection is available — no manual retry needed.';
@override
String get logoutConfirmTitle => 'Sign out?';
@override
String get logoutConfirmBody =>
'Local upload tasks are preserved on this device and will resume when you sign back in.';
@override
String get localeFollowSystem => 'Follow system';
@@ -148,6 +183,15 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get albumEdit => 'Edit album';
@override
String get albumSectionEventInfo => 'Event info';
@override
String get albumSectionContent => 'Multilingual content';
@override
String get albumSectionAccess => 'Access settings';
@override
String get albumTitle => 'Title';
@@ -319,6 +363,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get copiedToClipboard => 'Copied';
@override
String get openInBrowser => 'Open in browser';
@override
String get photosTask9Placeholder =>
'Photo management is a placeholder; the full experience ships in Task 9';
@@ -358,14 +405,14 @@ class AppLocalizationsEn extends AppLocalizations {
'Local upload queue and continuous capture arrive in Task 9';
@override
String get serverHistoryEntry => 'View server upload history';
String get serverHistoryEntry => 'Server history';
@override
String get serverHistoryTitle => 'Server upload history';
String get serverHistoryTitle => 'Server history (cross-device)';
@override
String get serverHistoryBanner =>
'Server-side history (cross-device) — for this device\'s pending uploads see the Queue tab';
'Upload records from all of your devices. The local queue is on the Uploads tab.';
@override
String get serverHistoryEmpty => 'No upload sessions yet';
@@ -392,22 +439,66 @@ class AppLocalizationsEn extends AppLocalizations {
String get queueStateAll => 'All';
@override
String get queueStatePreparing => 'Preparing';
String get queueStateInProgress => 'In progress';
@override
String get queueStateQueued => 'Queued';
String get queueStateNeedsAttention => 'Needs attention';
@override
String get queueStateUploading => 'Uploading';
String get queueStateCompleted => 'Completed';
@override
String get queueStateWaitingNetwork => 'Waiting for network';
String get queueSummaryCompleted => 'completed';
@override
String get queueStateFailed => 'Failed';
String get queueSummaryUploading => 'uploading';
@override
String get queueStateCompleted => 'Done';
String get queueSummaryWaiting => 'waiting';
@override
String get queueSummaryNeedAttention => 'need attention';
@override
String queueRowUploadingPercent(int percent) {
return 'Uploading $percent%';
}
@override
String get queueRowConfirming => 'Confirming upload';
@override
String get queueRowWaitingUpload => 'Waiting to upload';
@override
String get queueRowPreparing => 'Preparing photo';
@override
String get queueWaitingNetworkHint =>
'Resumes automatically when the network recovers';
@override
String get queueRowFileUnavailable => 'File unavailable';
@override
String get queueActionSelectAgain => 'Select again';
@override
String get queueActionRemoveRecord => 'Remove record';
@override
String get queueRemoveRecordTitle => 'Remove this record?';
@override
String get queueRemoveRecordBody =>
'This only removes the local task record. Photos already uploaded are not deleted from the cloud.';
@override
String get queueRemoveRecordConfirm => 'Remove';
@override
String get queueRetryAllScope =>
'Only failed uploads on this device are retried. Tasks waiting for the network recover automatically.';
@override
String get queueTimeAll => 'Any time';
@@ -514,6 +605,14 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get captureShutter => 'Capture';
@override
String captureQueuedBadge(int count) {
return 'Queued $count';
}
@override
String get captureEnqueuedFeedback => 'Added to queue';
@override
String get captureExitTitle => 'Leave shooting?';