feat(mobile): album management pages with qr share
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -36,5 +36,76 @@
|
||||
"errorValidation": "Invalid input. Please check and retry",
|
||||
"errorNetwork": "Network error. Check your connection and retry",
|
||||
"errorNetworkTimeout": "Network timed out. Please retry",
|
||||
"errorInternal": "Service temporarily unavailable. Please retry later"
|
||||
"errorInternal": "Service temporarily unavailable. Please retry later",
|
||||
"albumsEmpty": "No albums yet. Tap \"Create album\" to get started",
|
||||
"loadMoreFailed": "Failed to load more. Tap to retry",
|
||||
"albumCreate": "Create album",
|
||||
"albumEdit": "Edit album",
|
||||
"albumTitle": "Title",
|
||||
"albumDescription": "Description",
|
||||
"albumVenue": "Venue",
|
||||
"albumAddress": "Address",
|
||||
"albumDefaultLocale": "Default locale",
|
||||
"albumStartAt": "Start time",
|
||||
"albumEndAtOptional": "End time (optional)",
|
||||
"clearEndAt": "Clear end time",
|
||||
"albumTimezone": "Timezone",
|
||||
"albumTimezoneInvalid": "Invalid IANA timezone name",
|
||||
"switchUpload": "Allow uploads",
|
||||
"switchPublic": "Publicly visible",
|
||||
"switchDownload": "Allow downloads",
|
||||
"switchOriginalDownload": "Allow original downloads",
|
||||
"formStartAtRequired": "Pick a start time",
|
||||
"formDefaultLocaleMissing": "Default locale must have a title",
|
||||
"formTitleRequiredWithFields": "Title is required when description, venue or address is filled",
|
||||
"formEndAtNotAfterStartAt": "End time must be after start time",
|
||||
"create": "Create",
|
||||
"save": "Save",
|
||||
"albumStatusActive": "Active",
|
||||
"albumStatusOffline": "Offline",
|
||||
"tagUpload": "Upload",
|
||||
"tagPublic": "Public",
|
||||
"tagDownload": "Download",
|
||||
"tagOriginal": "Original",
|
||||
"notSet": "Not set",
|
||||
"actionEdit": "Edit",
|
||||
"albumMembers": "Members",
|
||||
"albumCategories": "Categories",
|
||||
"shareQrTitle": "Share QR code",
|
||||
"albumPhotos": "Photos",
|
||||
"delete": "Delete",
|
||||
"deleteConfirmCategory": "Delete this category? Its photos will become uncategorized.",
|
||||
"categoryEmpty": "No categories yet. Tap + to add one",
|
||||
"categoryAdd": "Add category",
|
||||
"categoryEdit": "Edit category",
|
||||
"categoryNameZh": "Chinese name",
|
||||
"categoryNameEn": "English name",
|
||||
"categorySortOrder": "Sort order",
|
||||
"categoryNameRequired": "At least one language name is required",
|
||||
"categorySortOrderInvalid": "Sort order must be an integer",
|
||||
"albumMembersEmpty": "No members yet",
|
||||
"inviteSearchHint": "Search by account prefix to invite (at least 2 characters)",
|
||||
"inviteNoResults": "No matching users",
|
||||
"invite": "Invite",
|
||||
"memberInvited": "Invited",
|
||||
"removeMember": "Remove member",
|
||||
"removeMemberConfirm": "Remove this member?",
|
||||
"roleOwner": "Owner",
|
||||
"roleCollaborator": "Collaborator",
|
||||
"selfMarker": " (you)",
|
||||
"errorMemberConflict": "User is already a member",
|
||||
"qrHint": "Scan the code or open the link to view",
|
||||
"copyLink": "Copy link",
|
||||
"copiedToClipboard": "Copied",
|
||||
"photosTask9Placeholder": "Photo management is a placeholder; the full experience ships in Task 9",
|
||||
"albumPhotosEmpty": "No photos yet",
|
||||
"visibilityPublished": "Published",
|
||||
"visibilityUnpublished": "Unpublished",
|
||||
"visibilityHidden": "Hidden",
|
||||
"visibilityDeleted": "Deleted",
|
||||
"procPendingUpload": "Pending upload",
|
||||
"procUploaded": "Uploaded",
|
||||
"procProcessing": "Processing",
|
||||
"procReady": "Ready",
|
||||
"procProcessingFailed": "Processing failed"
|
||||
}
|
||||
|
||||
@@ -319,6 +319,432 @@ abstract class AppLocalizations {
|
||||
/// In zh, this message translates to:
|
||||
/// **'服务暂时不可用,请稍后重试'**
|
||||
String get errorInternal;
|
||||
|
||||
/// No description provided for @albumsEmpty.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'暂无相册,点击「新建相册」开始'**
|
||||
String get albumsEmpty;
|
||||
|
||||
/// No description provided for @loadMoreFailed.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'加载更多失败,点击重试'**
|
||||
String get loadMoreFailed;
|
||||
|
||||
/// No description provided for @albumCreate.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'新建相册'**
|
||||
String get albumCreate;
|
||||
|
||||
/// No description provided for @albumEdit.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'编辑相册'**
|
||||
String get albumEdit;
|
||||
|
||||
/// No description provided for @albumTitle.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'标题'**
|
||||
String get albumTitle;
|
||||
|
||||
/// No description provided for @albumDescription.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'描述'**
|
||||
String get albumDescription;
|
||||
|
||||
/// No description provided for @albumVenue.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'场地'**
|
||||
String get albumVenue;
|
||||
|
||||
/// No description provided for @albumAddress.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'地址'**
|
||||
String get albumAddress;
|
||||
|
||||
/// No description provided for @albumDefaultLocale.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'默认语言'**
|
||||
String get albumDefaultLocale;
|
||||
|
||||
/// No description provided for @albumStartAt.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'开始时间'**
|
||||
String get albumStartAt;
|
||||
|
||||
/// No description provided for @albumEndAtOptional.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'结束时间(可选)'**
|
||||
String get albumEndAtOptional;
|
||||
|
||||
/// No description provided for @clearEndAt.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'清除结束时间'**
|
||||
String get clearEndAt;
|
||||
|
||||
/// No description provided for @albumTimezone.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'时区'**
|
||||
String get albumTimezone;
|
||||
|
||||
/// No description provided for @albumTimezoneInvalid.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'无效的 IANA 时区名称'**
|
||||
String get albumTimezoneInvalid;
|
||||
|
||||
/// No description provided for @switchUpload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'允许上传'**
|
||||
String get switchUpload;
|
||||
|
||||
/// No description provided for @switchPublic.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'公开可见'**
|
||||
String get switchPublic;
|
||||
|
||||
/// No description provided for @switchDownload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'允许下载'**
|
||||
String get switchDownload;
|
||||
|
||||
/// No description provided for @switchOriginalDownload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'允许下载原图'**
|
||||
String get switchOriginalDownload;
|
||||
|
||||
/// No description provided for @formStartAtRequired.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'请选择开始时间'**
|
||||
String get formStartAtRequired;
|
||||
|
||||
/// No description provided for @formDefaultLocaleMissing.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'默认语言必须填写标题'**
|
||||
String get formDefaultLocaleMissing;
|
||||
|
||||
/// No description provided for @formTitleRequiredWithFields.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'填写了描述/场地/地址时,标题不能为空'**
|
||||
String get formTitleRequiredWithFields;
|
||||
|
||||
/// No description provided for @formEndAtNotAfterStartAt.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'结束时间必须晚于开始时间'**
|
||||
String get formEndAtNotAfterStartAt;
|
||||
|
||||
/// No description provided for @create.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'创建'**
|
||||
String get create;
|
||||
|
||||
/// No description provided for @save.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'保存'**
|
||||
String get save;
|
||||
|
||||
/// No description provided for @albumStatusActive.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'正常'**
|
||||
String get albumStatusActive;
|
||||
|
||||
/// No description provided for @albumStatusOffline.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'下线'**
|
||||
String get albumStatusOffline;
|
||||
|
||||
/// No description provided for @tagUpload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'上传'**
|
||||
String get tagUpload;
|
||||
|
||||
/// No description provided for @tagPublic.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'公开'**
|
||||
String get tagPublic;
|
||||
|
||||
/// No description provided for @tagDownload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'下载'**
|
||||
String get tagDownload;
|
||||
|
||||
/// No description provided for @tagOriginal.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'原图'**
|
||||
String get tagOriginal;
|
||||
|
||||
/// No description provided for @notSet.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'未定'**
|
||||
String get notSet;
|
||||
|
||||
/// No description provided for @actionEdit.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'编辑'**
|
||||
String get actionEdit;
|
||||
|
||||
/// No description provided for @albumMembers.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'成员管理'**
|
||||
String get albumMembers;
|
||||
|
||||
/// No description provided for @albumCategories.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'分类管理'**
|
||||
String get albumCategories;
|
||||
|
||||
/// No description provided for @shareQrTitle.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'分享二维码'**
|
||||
String get shareQrTitle;
|
||||
|
||||
/// No description provided for @albumPhotos.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'照片管理'**
|
||||
String get albumPhotos;
|
||||
|
||||
/// No description provided for @delete.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'删除'**
|
||||
String get delete;
|
||||
|
||||
/// No description provided for @deleteConfirmCategory.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'确定删除该分类?该分类下的照片将变为未分类。'**
|
||||
String get deleteConfirmCategory;
|
||||
|
||||
/// No description provided for @categoryEmpty.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'暂无分类,点击右上角新增'**
|
||||
String get categoryEmpty;
|
||||
|
||||
/// No description provided for @categoryAdd.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'新增分类'**
|
||||
String get categoryAdd;
|
||||
|
||||
/// No description provided for @categoryEdit.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'编辑分类'**
|
||||
String get categoryEdit;
|
||||
|
||||
/// No description provided for @categoryNameZh.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'中文名称'**
|
||||
String get categoryNameZh;
|
||||
|
||||
/// No description provided for @categoryNameEn.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'英文名称'**
|
||||
String get categoryNameEn;
|
||||
|
||||
/// No description provided for @categorySortOrder.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'排序序号'**
|
||||
String get categorySortOrder;
|
||||
|
||||
/// No description provided for @categoryNameRequired.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'至少填写一个语言的名称'**
|
||||
String get categoryNameRequired;
|
||||
|
||||
/// No description provided for @categorySortOrderInvalid.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'排序序号必须是整数'**
|
||||
String get categorySortOrderInvalid;
|
||||
|
||||
/// No description provided for @albumMembersEmpty.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'暂无成员'**
|
||||
String get albumMembersEmpty;
|
||||
|
||||
/// No description provided for @inviteSearchHint.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'输入账号前缀搜索邀请(至少 2 个字符)'**
|
||||
String get inviteSearchHint;
|
||||
|
||||
/// No description provided for @inviteNoResults.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'未找到匹配用户'**
|
||||
String get inviteNoResults;
|
||||
|
||||
/// No description provided for @invite.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'邀请'**
|
||||
String get invite;
|
||||
|
||||
/// No description provided for @memberInvited.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已邀请'**
|
||||
String get memberInvited;
|
||||
|
||||
/// No description provided for @removeMember.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'移除成员'**
|
||||
String get removeMember;
|
||||
|
||||
/// No description provided for @removeMemberConfirm.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'确定移除该成员?'**
|
||||
String get removeMemberConfirm;
|
||||
|
||||
/// No description provided for @roleOwner.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'创建者'**
|
||||
String get roleOwner;
|
||||
|
||||
/// No description provided for @roleCollaborator.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'协作者'**
|
||||
String get roleCollaborator;
|
||||
|
||||
/// No description provided for @selfMarker.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'(我)'**
|
||||
String get selfMarker;
|
||||
|
||||
/// No description provided for @errorMemberConflict.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'该用户已是相册成员'**
|
||||
String get errorMemberConflict;
|
||||
|
||||
/// No description provided for @qrHint.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'扫码或打开链接观看'**
|
||||
String get qrHint;
|
||||
|
||||
/// No description provided for @copyLink.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'复制链接'**
|
||||
String get copyLink;
|
||||
|
||||
/// No description provided for @copiedToClipboard.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已复制'**
|
||||
String get copiedToClipboard;
|
||||
|
||||
/// No description provided for @photosTask9Placeholder.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'照片管理为占位版本,完整功能将在任务 9 上线'**
|
||||
String get photosTask9Placeholder;
|
||||
|
||||
/// No description provided for @albumPhotosEmpty.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'暂无照片'**
|
||||
String get albumPhotosEmpty;
|
||||
|
||||
/// No description provided for @visibilityPublished.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已发布'**
|
||||
String get visibilityPublished;
|
||||
|
||||
/// No description provided for @visibilityUnpublished.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'未发布'**
|
||||
String get visibilityUnpublished;
|
||||
|
||||
/// No description provided for @visibilityHidden.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已隐藏'**
|
||||
String get visibilityHidden;
|
||||
|
||||
/// No description provided for @visibilityDeleted.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已删除'**
|
||||
String get visibilityDeleted;
|
||||
|
||||
/// No description provided for @procPendingUpload.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'待上传'**
|
||||
String get procPendingUpload;
|
||||
|
||||
/// No description provided for @procUploaded.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已上传'**
|
||||
String get procUploaded;
|
||||
|
||||
/// No description provided for @procProcessing.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'处理中'**
|
||||
String get procProcessing;
|
||||
|
||||
/// No description provided for @procReady.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'就绪'**
|
||||
String get procReady;
|
||||
|
||||
/// No description provided for @procProcessingFailed.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'处理失败'**
|
||||
String get procProcessingFailed;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
@@ -120,4 +120,222 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@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 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 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';
|
||||
}
|
||||
|
||||
@@ -118,4 +118,217 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get errorInternal => '服务暂时不可用,请稍后重试';
|
||||
|
||||
@override
|
||||
String get albumsEmpty => '暂无相册,点击「新建相册」开始';
|
||||
|
||||
@override
|
||||
String get loadMoreFailed => '加载更多失败,点击重试';
|
||||
|
||||
@override
|
||||
String get albumCreate => '新建相册';
|
||||
|
||||
@override
|
||||
String get albumEdit => '编辑相册';
|
||||
|
||||
@override
|
||||
String get albumTitle => '标题';
|
||||
|
||||
@override
|
||||
String get albumDescription => '描述';
|
||||
|
||||
@override
|
||||
String get albumVenue => '场地';
|
||||
|
||||
@override
|
||||
String get albumAddress => '地址';
|
||||
|
||||
@override
|
||||
String get albumDefaultLocale => '默认语言';
|
||||
|
||||
@override
|
||||
String get albumStartAt => '开始时间';
|
||||
|
||||
@override
|
||||
String get albumEndAtOptional => '结束时间(可选)';
|
||||
|
||||
@override
|
||||
String get clearEndAt => '清除结束时间';
|
||||
|
||||
@override
|
||||
String get albumTimezone => '时区';
|
||||
|
||||
@override
|
||||
String get albumTimezoneInvalid => '无效的 IANA 时区名称';
|
||||
|
||||
@override
|
||||
String get switchUpload => '允许上传';
|
||||
|
||||
@override
|
||||
String get switchPublic => '公开可见';
|
||||
|
||||
@override
|
||||
String get switchDownload => '允许下载';
|
||||
|
||||
@override
|
||||
String get switchOriginalDownload => '允许下载原图';
|
||||
|
||||
@override
|
||||
String get formStartAtRequired => '请选择开始时间';
|
||||
|
||||
@override
|
||||
String get formDefaultLocaleMissing => '默认语言必须填写标题';
|
||||
|
||||
@override
|
||||
String get formTitleRequiredWithFields => '填写了描述/场地/地址时,标题不能为空';
|
||||
|
||||
@override
|
||||
String get formEndAtNotAfterStartAt => '结束时间必须晚于开始时间';
|
||||
|
||||
@override
|
||||
String get create => '创建';
|
||||
|
||||
@override
|
||||
String get save => '保存';
|
||||
|
||||
@override
|
||||
String get albumStatusActive => '正常';
|
||||
|
||||
@override
|
||||
String get albumStatusOffline => '下线';
|
||||
|
||||
@override
|
||||
String get tagUpload => '上传';
|
||||
|
||||
@override
|
||||
String get tagPublic => '公开';
|
||||
|
||||
@override
|
||||
String get tagDownload => '下载';
|
||||
|
||||
@override
|
||||
String get tagOriginal => '原图';
|
||||
|
||||
@override
|
||||
String get notSet => '未定';
|
||||
|
||||
@override
|
||||
String get actionEdit => '编辑';
|
||||
|
||||
@override
|
||||
String get albumMembers => '成员管理';
|
||||
|
||||
@override
|
||||
String get albumCategories => '分类管理';
|
||||
|
||||
@override
|
||||
String get shareQrTitle => '分享二维码';
|
||||
|
||||
@override
|
||||
String get albumPhotos => '照片管理';
|
||||
|
||||
@override
|
||||
String get delete => '删除';
|
||||
|
||||
@override
|
||||
String get deleteConfirmCategory => '确定删除该分类?该分类下的照片将变为未分类。';
|
||||
|
||||
@override
|
||||
String get categoryEmpty => '暂无分类,点击右上角新增';
|
||||
|
||||
@override
|
||||
String get categoryAdd => '新增分类';
|
||||
|
||||
@override
|
||||
String get categoryEdit => '编辑分类';
|
||||
|
||||
@override
|
||||
String get categoryNameZh => '中文名称';
|
||||
|
||||
@override
|
||||
String get categoryNameEn => '英文名称';
|
||||
|
||||
@override
|
||||
String get categorySortOrder => '排序序号';
|
||||
|
||||
@override
|
||||
String get categoryNameRequired => '至少填写一个语言的名称';
|
||||
|
||||
@override
|
||||
String get categorySortOrderInvalid => '排序序号必须是整数';
|
||||
|
||||
@override
|
||||
String get albumMembersEmpty => '暂无成员';
|
||||
|
||||
@override
|
||||
String get inviteSearchHint => '输入账号前缀搜索邀请(至少 2 个字符)';
|
||||
|
||||
@override
|
||||
String get inviteNoResults => '未找到匹配用户';
|
||||
|
||||
@override
|
||||
String get invite => '邀请';
|
||||
|
||||
@override
|
||||
String get memberInvited => '已邀请';
|
||||
|
||||
@override
|
||||
String get removeMember => '移除成员';
|
||||
|
||||
@override
|
||||
String get removeMemberConfirm => '确定移除该成员?';
|
||||
|
||||
@override
|
||||
String get roleOwner => '创建者';
|
||||
|
||||
@override
|
||||
String get roleCollaborator => '协作者';
|
||||
|
||||
@override
|
||||
String get selfMarker => '(我)';
|
||||
|
||||
@override
|
||||
String get errorMemberConflict => '该用户已是相册成员';
|
||||
|
||||
@override
|
||||
String get qrHint => '扫码或打开链接观看';
|
||||
|
||||
@override
|
||||
String get copyLink => '复制链接';
|
||||
|
||||
@override
|
||||
String get copiedToClipboard => '已复制';
|
||||
|
||||
@override
|
||||
String get photosTask9Placeholder => '照片管理为占位版本,完整功能将在任务 9 上线';
|
||||
|
||||
@override
|
||||
String get albumPhotosEmpty => '暂无照片';
|
||||
|
||||
@override
|
||||
String get visibilityPublished => '已发布';
|
||||
|
||||
@override
|
||||
String get visibilityUnpublished => '未发布';
|
||||
|
||||
@override
|
||||
String get visibilityHidden => '已隐藏';
|
||||
|
||||
@override
|
||||
String get visibilityDeleted => '已删除';
|
||||
|
||||
@override
|
||||
String get procPendingUpload => '待上传';
|
||||
|
||||
@override
|
||||
String get procUploaded => '已上传';
|
||||
|
||||
@override
|
||||
String get procProcessing => '处理中';
|
||||
|
||||
@override
|
||||
String get procReady => '就绪';
|
||||
|
||||
@override
|
||||
String get procProcessingFailed => '处理失败';
|
||||
}
|
||||
|
||||
@@ -36,5 +36,76 @@
|
||||
"errorValidation": "输入有误,请检查后重试",
|
||||
"errorNetwork": "网络连接失败,请检查网络后重试",
|
||||
"errorNetworkTimeout": "网络超时,请重试",
|
||||
"errorInternal": "服务暂时不可用,请稍后重试"
|
||||
"errorInternal": "服务暂时不可用,请稍后重试",
|
||||
"albumsEmpty": "暂无相册,点击「新建相册」开始",
|
||||
"loadMoreFailed": "加载更多失败,点击重试",
|
||||
"albumCreate": "新建相册",
|
||||
"albumEdit": "编辑相册",
|
||||
"albumTitle": "标题",
|
||||
"albumDescription": "描述",
|
||||
"albumVenue": "场地",
|
||||
"albumAddress": "地址",
|
||||
"albumDefaultLocale": "默认语言",
|
||||
"albumStartAt": "开始时间",
|
||||
"albumEndAtOptional": "结束时间(可选)",
|
||||
"clearEndAt": "清除结束时间",
|
||||
"albumTimezone": "时区",
|
||||
"albumTimezoneInvalid": "无效的 IANA 时区名称",
|
||||
"switchUpload": "允许上传",
|
||||
"switchPublic": "公开可见",
|
||||
"switchDownload": "允许下载",
|
||||
"switchOriginalDownload": "允许下载原图",
|
||||
"formStartAtRequired": "请选择开始时间",
|
||||
"formDefaultLocaleMissing": "默认语言必须填写标题",
|
||||
"formTitleRequiredWithFields": "填写了描述/场地/地址时,标题不能为空",
|
||||
"formEndAtNotAfterStartAt": "结束时间必须晚于开始时间",
|
||||
"create": "创建",
|
||||
"save": "保存",
|
||||
"albumStatusActive": "正常",
|
||||
"albumStatusOffline": "下线",
|
||||
"tagUpload": "上传",
|
||||
"tagPublic": "公开",
|
||||
"tagDownload": "下载",
|
||||
"tagOriginal": "原图",
|
||||
"notSet": "未定",
|
||||
"actionEdit": "编辑",
|
||||
"albumMembers": "成员管理",
|
||||
"albumCategories": "分类管理",
|
||||
"shareQrTitle": "分享二维码",
|
||||
"albumPhotos": "照片管理",
|
||||
"delete": "删除",
|
||||
"deleteConfirmCategory": "确定删除该分类?该分类下的照片将变为未分类。",
|
||||
"categoryEmpty": "暂无分类,点击右上角新增",
|
||||
"categoryAdd": "新增分类",
|
||||
"categoryEdit": "编辑分类",
|
||||
"categoryNameZh": "中文名称",
|
||||
"categoryNameEn": "英文名称",
|
||||
"categorySortOrder": "排序序号",
|
||||
"categoryNameRequired": "至少填写一个语言的名称",
|
||||
"categorySortOrderInvalid": "排序序号必须是整数",
|
||||
"albumMembersEmpty": "暂无成员",
|
||||
"inviteSearchHint": "输入账号前缀搜索邀请(至少 2 个字符)",
|
||||
"inviteNoResults": "未找到匹配用户",
|
||||
"invite": "邀请",
|
||||
"memberInvited": "已邀请",
|
||||
"removeMember": "移除成员",
|
||||
"removeMemberConfirm": "确定移除该成员?",
|
||||
"roleOwner": "创建者",
|
||||
"roleCollaborator": "协作者",
|
||||
"selfMarker": "(我)",
|
||||
"errorMemberConflict": "该用户已是相册成员",
|
||||
"qrHint": "扫码或打开链接观看",
|
||||
"copyLink": "复制链接",
|
||||
"copiedToClipboard": "已复制",
|
||||
"photosTask9Placeholder": "照片管理为占位版本,完整功能将在任务 9 上线",
|
||||
"albumPhotosEmpty": "暂无照片",
|
||||
"visibilityPublished": "已发布",
|
||||
"visibilityUnpublished": "未发布",
|
||||
"visibilityHidden": "已隐藏",
|
||||
"visibilityDeleted": "已删除",
|
||||
"procPendingUpload": "待上传",
|
||||
"procUploaded": "已上传",
|
||||
"procProcessing": "处理中",
|
||||
"procReady": "就绪",
|
||||
"procProcessingFailed": "处理失败"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user