Files
photo-live/apps/mobile/lib/l10n/app_localizations_en.dart
T
2026-09-21 17:20:43 +08:00

708 lines
16 KiB
Dart

// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for English (`en`).
class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
@override
String get appName => 'Photo Live';
@override
String get login => 'Sign in';
@override
String get logout => 'Sign out';
@override
String get username => 'Account';
@override
String get password => 'Password';
@override
String get albums => 'Albums';
@override
String get albumDetail => 'Album details';
@override
String get queue => 'Uploads';
@override
String get settings => 'Settings';
@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';
@override
String get localeChinese => '中文';
@override
String get localeEnglish => 'English';
@override
String get retry => 'Retry';
@override
String get cancel => 'Cancel';
@override
String get errorGeneric => 'Something went wrong, please retry';
@override
String get ok => 'OK';
@override
String get navAlbums => 'Albums';
@override
String get navUploads => 'Uploads';
@override
String get navSettings => 'Settings';
@override
String badgeUploading(int count) {
return '$count tasks';
}
@override
String get albumUploadsOn => 'Uploads on';
@override
String get albumUploadsOff => 'Uploads off';
@override
String get albumPublicOff => 'Not public';
@override
String get loginHint => 'Sign in with your staff account';
@override
String get fieldRequired => 'This field is required';
@override
String get passwordChangeTitle => 'Change password';
@override
String get currentPassword => 'Current password';
@override
String get newPassword => 'New password';
@override
String get confirmNewPassword => 'Confirm new password';
@override
String get passwordMinLength => 'New password must be at least 8 characters';
@override
String get passwordMismatch => 'New passwords do not match';
@override
String get passwordChangeSuccess => 'Password changed';
@override
String get errorAuthInvalidCredentials => 'Incorrect account or password';
@override
String get errorOldPasswordIncorrect => 'Current password is incorrect';
@override
String get errorAuthRateLimited =>
'Too many attempts. Please try again later';
@override
String get errorAuthTokenExpired => 'Session expired. Please sign in again';
@override
String get errorValidation => 'Invalid input. Please check and retry';
@override
String get errorNetwork => 'Network error. Check your connection and retry';
@override
String get errorNetworkTimeout => 'Network timed out. Please retry';
@override
String get errorInternal =>
'Service temporarily unavailable. Please retry later';
@override
String get albumsEmpty =>
'No albums yet. Tap \"Create album\" to get started';
@override
String get loadMoreFailed => 'Failed to load more. Tap to retry';
@override
String get albumCreate => 'Create album';
@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';
@override
String get albumDescription => 'Description';
@override
String get albumVenue => 'Venue';
@override
String get albumAddress => 'Address';
@override
String get albumDefaultLocale => 'Default locale';
@override
String get albumStartAt => 'Start time';
@override
String get albumEndAtOptional => 'End time (optional)';
@override
String get clearEndAt => 'Clear end time';
@override
String get albumTimezone => 'Timezone';
@override
String get albumTimezoneInvalid => 'Invalid IANA timezone name';
@override
String get switchUpload => 'Allow uploads';
@override
String get switchPublic => 'Publicly visible';
@override
String get switchDownload => 'Allow downloads';
@override
String get switchOriginalDownload => 'Allow original downloads';
@override
String get formStartAtRequired => 'Pick a start time';
@override
String get formDefaultLocaleMissing => 'Default locale must have a title';
@override
String get formTitleRequiredWithFields =>
'Title is required when description, venue or address is filled';
@override
String get formEndAtNotAfterStartAt => 'End time must be after start time';
@override
String get create => 'Create';
@override
String get save => 'Save';
@override
String get albumStatusActive => 'Active';
@override
String get albumStatusOffline => 'Offline';
@override
String get tagUpload => 'Upload';
@override
String get tagPublic => 'Public';
@override
String get tagDownload => 'Download';
@override
String get tagOriginal => 'Original';
@override
String get notSet => 'Not set';
@override
String get actionEdit => 'Edit';
@override
String get albumMembers => 'Members';
@override
String get albumCategories => 'Categories';
@override
String get shareQrTitle => 'Share QR code';
@override
String get albumPhotos => 'Photos';
@override
String get delete => 'Delete';
@override
String get deleteConfirmCategory =>
'Delete this category? Its photos will become uncategorized.';
@override
String get categoryEmpty => 'No categories yet. Tap + to add one';
@override
String get categoryAdd => 'Add category';
@override
String get categoryEdit => 'Edit category';
@override
String get categoryNameZh => 'Chinese name';
@override
String get categoryNameEn => 'English name';
@override
String get categorySortOrder => 'Sort order';
@override
String get categoryNameRequired => 'At least one language name is required';
@override
String get categorySortOrderInvalid => 'Sort order must be an integer';
@override
String get albumMembersEmpty => 'No members yet';
@override
String get inviteSearchHint =>
'Search by account prefix to invite (at least 2 characters)';
@override
String get inviteNoResults => 'No matching users';
@override
String get invite => 'Invite';
@override
String get memberInvited => 'Invited';
@override
String get removeMember => 'Remove member';
@override
String get removeMemberConfirm => 'Remove this member?';
@override
String get roleOwner => 'Owner';
@override
String get roleCollaborator => 'Collaborator';
@override
String get selfMarker => ' (you)';
@override
String get errorMemberConflict => 'User is already a member';
@override
String get qrHint => 'Scan the code or open the link to view';
@override
String get copyLink => 'Copy link';
@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';
@override
String get albumPhotosEmpty => 'No photos yet';
@override
String get visibilityPublished => 'Published';
@override
String get visibilityUnpublished => 'Unpublished';
@override
String get visibilityHidden => 'Hidden';
@override
String get visibilityDeleted => 'Deleted';
@override
String get procPendingUpload => 'Pending upload';
@override
String get procUploaded => 'Uploaded';
@override
String get procProcessing => 'Processing';
@override
String get procReady => 'Ready';
@override
String get procProcessingFailed => 'Processing failed';
@override
String get queueStubHint =>
'Local upload queue and continuous capture arrive in Task 9';
@override
String get serverHistoryEntry => 'Server history';
@override
String get serverHistoryTitle => 'Server history (cross-device)';
@override
String get serverHistoryBanner =>
'Upload records from all of your devices. The local queue is on the Uploads tab.';
@override
String get serverHistoryEmpty => 'No upload sessions yet';
@override
String get uploadStatePending => 'Pending';
@override
String get uploadStateConfirmed => 'Confirmed';
@override
String get uploadStateCancelled => 'Cancelled';
@override
String get uploadStateExpired => 'Expired';
@override
String get thisDevice => 'This device';
@override
String get queueAlbumFilterAll => 'All albums';
@override
String get queueStateAll => 'All';
@override
String get queueStateInProgress => 'In progress';
@override
String get queueStateNeedsAttention => 'Needs attention';
@override
String get queueStateCompleted => 'Completed';
@override
String get queueSummaryCompleted => 'completed';
@override
String get queueSummaryUploading => 'uploading';
@override
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';
@override
String get queueTimeToday => 'Today';
@override
String get queueTimeLast7Days => 'Last 7 days';
@override
String get queueTimeLast30Days => 'Last 30 days';
@override
String get queueEmpty => 'No upload tasks';
@override
String get queueRetryAllFailed => 'Retry all failed';
@override
String queueAttemptCount(int count) {
return '$count attempt(s)';
}
@override
String get taskStatePreparing => 'Preparing';
@override
String get taskStatePreparationFailed => 'Preparation failed';
@override
String get taskStateQueued => 'Queued';
@override
String get taskStateUploading => 'Uploading';
@override
String get taskStateUploadedConfirming => 'Confirming';
@override
String get taskStateCompleted => 'Completed';
@override
String get taskStateWaitingNetwork => 'Waiting for network';
@override
String get taskStateRetryableFailed => 'Upload failed';
@override
String get taskStateCancelled => 'Cancelled';
@override
String get errorPrepSourceUnreadable =>
'Could not read the selected photo. Please reselect';
@override
String get errorPrepUnsupportedType =>
'Only JPG, PNG and HEIC images are supported';
@override
String get errorPrepTooLarge => 'Photo exceeds the 50MB limit';
@override
String get errorPrepCopyFailed => 'Failed to copy the photo. Please retry';
@override
String get errorUploadSourceMissing =>
'Source file is missing. Please reselect';
@override
String get errorAlbumUploadDisabled => 'Album uploads are disabled';
@override
String get errorUploadSessionConflict =>
'Upload session conflict. Please retry';
@override
String get errorUploadVerifyFailed =>
'Upload verification failed. Will retry';
@override
String get captureTitle => 'Continuous capture';
@override
String get captureCategoryDefault => 'Default category';
@override
String get captureSwitchHint =>
'Switching only affects photos captured afterwards';
@override
String capturePendingBadge(int count) {
return 'Pending $count';
}
@override
String captureFailedBadge(int count) {
return 'Failed $count';
}
@override
String get capturePickFromGallery => 'Pick from gallery';
@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?';
@override
String captureExitBody(int count) {
return '$count photo(s) are still uploading. Tasks will continue in the background after you leave.';
}
@override
String get captureKeepShooting => 'Keep shooting';
@override
String get captureExitConfirm => 'Leave';
@override
String get cameraPermissionDenied =>
'Camera unavailable. Allow camera access in system settings';
@override
String get cameraInitFailed => 'Camera failed to initialize';
@override
String get uploadActionCapture => 'Capture and upload';
@override
String get uploadActionPick => 'Pick from gallery';
@override
String get uploadAction => 'Upload';
@override
String uploadEnqueuedCount(int count) {
return 'Added $count photo(s) to the upload queue';
}
@override
String get uploadPickNone => 'No photos selected';
@override
String get albumManagePhotos => 'Manage photos';
@override
String get albumTakeFirstPhoto => 'Take the first photo';
@override
String get albumUploadDisabledHint =>
'Uploads are off for this album. New photos cannot be added right now';
@override
String get albumRecentPhotos => 'Recent uploads';
@override
String get photoFilterAll => 'All';
@override
String get photoFilterFailed => 'Failed';
@override
String get photosScopeOwnHint =>
'Collaborator view: only photos you uploaded are shown';
@override
String get photosEmptyFiltered => 'No photos match this filter';
@override
String get photoHide => 'Hide';
@override
String get photoUnhide => 'Unhide';
@override
String get photoDeleteConfirmTitle => 'Delete this photo?';
@override
String get photoDeleteConfirmBody =>
'The cloud photo will be deleted. This cannot be undone.';
@override
String get photoHiddenToast => 'Hidden';
@override
String get photoUnhiddenToast => 'Unhidden';
@override
String get photoDeletedToast => 'Deleted';
@override
String get photoReload => 'Reload';
@override
String get photoPreviewUnavailable => 'Image unavailable';
}