Files
photo-live/apps/mobile/lib/l10n/app_localizations.dart
T
浅念 33f347cdea feat(app): P0 batch 3 — offline detection with engine pause/resume + UI banner
P0-4 离线感知:
  - connectivity_plus → NetworkAvailability(online/offline/unknown)
  - engine_scope 三重绑定:有账号+有网 → start;任一失去 → stop(在途不中断)
  - 网络恢复 → start + onNetworkRestored(waitingNetwork 即时重试)
  - HomePage 顶部离线黄条(wifi_off + i18n 双语)

P0-5 更正:EXIF 方向已由服务端 sharp .rotate() 自动转正——v2 分析误报

397/397 全绿、analyze 0

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-28 11:23:51 +08:00

2067 lines
56 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart' as intl;
import 'app_localizations_en.dart';
import 'app_localizations_zh.dart';
// ignore_for_file: type=lint
/// Callers can lookup localized strings with an instance of AppLocalizations
/// returned by `AppLocalizations.of(context)`.
///
/// Applications need to include `AppLocalizations.delegate()` in their app's
/// `localizationDelegates` list, and the locales they support in the app's
/// `supportedLocales` list. For example:
///
/// ```dart
/// import 'l10n/app_localizations.dart';
///
/// return MaterialApp(
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
/// supportedLocales: AppLocalizations.supportedLocales,
/// home: MyApplicationHome(),
/// );
/// ```
///
/// ## Update pubspec.yaml
///
/// Please make sure to update your pubspec.yaml to include the following
/// packages:
///
/// ```yaml
/// dependencies:
/// # Internationalization support.
/// flutter_localizations:
/// sdk: flutter
/// intl: any # Use the pinned version from flutter_localizations
///
/// # Rest of dependencies
/// ```
///
/// ## iOS Applications
///
/// iOS applications define key application metadata, including supported
/// locales, in an Info.plist file that is built into the application bundle.
/// To configure the locales supported by your app, you’ll need to edit this
/// file.
///
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
/// Then, in the Project Navigator, open the Info.plist file under the Runner
/// project’s Runner folder.
///
/// Next, select the Information Property List item, select Add Item from the
/// Editor menu, then select Localizations from the pop-up menu.
///
/// Select and expand the newly-created Localizations item then, for each
/// locale your application supports, add a new item and select the locale
/// you wish to add from the pop-up menu in the Value field. This list should
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
/// property.
abstract class AppLocalizations {
AppLocalizations(String locale)
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
final String localeName;
static AppLocalizations of(BuildContext context) {
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
}
static const LocalizationsDelegate<AppLocalizations> delegate =
_AppLocalizationsDelegate();
/// A list of this localizations delegate along with the default localizations
/// delegates.
///
/// Returns a list of localizations delegates containing this delegate along with
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
/// and GlobalWidgetsLocalizations.delegate.
///
/// Additional delegates can be added by appending to this list in
/// MaterialApp. This list does not have to be used at all if a custom list
/// of delegates is preferred or required.
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
<LocalizationsDelegate<dynamic>>[
delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
];
/// A list of this localizations delegate's supported locales.
static const List<Locale> supportedLocales = <Locale>[
Locale('en'),
Locale('zh'),
];
/// No description provided for @appName.
///
/// In zh, this message translates to:
/// **'现场影像'**
String get appName;
/// No description provided for @login.
///
/// In zh, this message translates to:
/// **'登录'**
String get login;
/// No description provided for @logout.
///
/// In zh, this message translates to:
/// **'退出登录'**
String get logout;
/// No description provided for @username.
///
/// In zh, this message translates to:
/// **'账号'**
String get username;
/// No description provided for @password.
///
/// In zh, this message translates to:
/// **'密码'**
String get password;
/// No description provided for @albums.
///
/// In zh, this message translates to:
/// **'相册'**
String get albums;
/// No description provided for @albumDetail.
///
/// In zh, this message translates to:
/// **'相册详情'**
String get albumDetail;
/// No description provided for @queue.
///
/// In zh, this message translates to:
/// **'上传中心'**
String get queue;
/// No description provided for @settings.
///
/// In zh, this message translates to:
/// **'设置'**
String get settings;
/// No description provided for @language.
///
/// In zh, this message translates to:
/// **'语言'**
String get language;
/// No description provided for @settingsSectionAccount.
///
/// In zh, this message translates to:
/// **'账号'**
String get settingsSectionAccount;
/// No description provided for @settingsSectionLanguage.
///
/// In zh, this message translates to:
/// **'语言'**
String get settingsSectionLanguage;
/// No description provided for @settingsSectionSecurity.
///
/// In zh, this message translates to:
/// **'安全'**
String get settingsSectionSecurity;
/// No description provided for @settingsSectionUploadHelp.
///
/// In zh, this message translates to:
/// **'上传帮助'**
String get settingsSectionUploadHelp;
/// No description provided for @settingsSectionAbout.
///
/// In zh, this message translates to:
/// **'关于'**
String get settingsSectionAbout;
/// No description provided for @settingsSignedInAccount.
///
/// In zh, this message translates to:
/// **'当前登录账号'**
String get settingsSignedInAccount;
/// No description provided for @settingsVersion.
///
/// In zh, this message translates to:
/// **'版本'**
String get settingsVersion;
/// No description provided for @settingsUploadHelpTitle.
///
/// In zh, this message translates to:
/// **'后台上传说明'**
String get settingsUploadHelpTitle;
/// No description provided for @settingsUploadHelpBody.
///
/// In zh, this message translates to:
/// **'应用在后台期间,系统会在省电限制内尽量保持上传;强制退出或被系统结束后,未完成任务会暂停,下次打开应用时继续。等待网络的任务会在网络恢复后自动开始,无需手动重试。'**
String get settingsUploadHelpBody;
/// No description provided for @logoutConfirmTitle.
///
/// In zh, this message translates to:
/// **'退出登录?'**
String get logoutConfirmTitle;
/// No description provided for @logoutConfirmBody.
///
/// In zh, this message translates to:
/// **'本机的上传任务会保留,重新登录后将继续上传。'**
String get logoutConfirmBody;
/// No description provided for @localeFollowSystem.
///
/// In zh, this message translates to:
/// **'跟随系统'**
String get localeFollowSystem;
/// No description provided for @localeChinese.
///
/// In zh, this message translates to:
/// **'中文'**
String get localeChinese;
/// No description provided for @localeEnglish.
///
/// In zh, this message translates to:
/// **'English'**
String get localeEnglish;
/// No description provided for @retry.
///
/// In zh, this message translates to:
/// **'重试'**
String get retry;
/// No description provided for @cancel.
///
/// In zh, this message translates to:
/// **'取消'**
String get cancel;
/// No description provided for @errorGeneric.
///
/// In zh, this message translates to:
/// **'出错了,请重试'**
String get errorGeneric;
/// No description provided for @ok.
///
/// In zh, this message translates to:
/// **'好的'**
String get ok;
/// No description provided for @navAlbums.
///
/// In zh, this message translates to:
/// **'相册'**
String get navAlbums;
/// No description provided for @navUploads.
///
/// In zh, this message translates to:
/// **'上传'**
String get navUploads;
/// No description provided for @navSettings.
///
/// In zh, this message translates to:
/// **'设置'**
String get navSettings;
/// No description provided for @badgeUploading.
///
/// In zh, this message translates to:
/// **'{count} 个任务'**
String badgeUploading(int count);
/// No description provided for @albumUploadsOn.
///
/// In zh, this message translates to:
/// **'开放上传'**
String get albumUploadsOn;
/// No description provided for @albumUploadsOff.
///
/// In zh, this message translates to:
/// **'上传已关闭'**
String get albumUploadsOff;
/// No description provided for @albumPublicOff.
///
/// In zh, this message translates to:
/// **'未公开'**
String get albumPublicOff;
/// No description provided for @loginHint.
///
/// In zh, this message translates to:
/// **'使用工作人员账号登录'**
String get loginHint;
/// No description provided for @loginTitle.
///
/// In zh, this message translates to:
/// **'记录每个精彩瞬间。'**
String get loginTitle;
/// No description provided for @loginSubtitle.
///
/// In zh, this message translates to:
/// **'登录以管理相册和照片'**
String get loginSubtitle;
/// No description provided for @loginAskAdmin.
///
/// In zh, this message translates to:
/// **'请向管理员获取账号'**
String get loginAskAdmin;
/// No description provided for @loginShowPassword.
///
/// In zh, this message translates to:
/// **'显示密码'**
String get loginShowPassword;
/// No description provided for @loginHidePassword.
///
/// In zh, this message translates to:
/// **'隐藏密码'**
String get loginHidePassword;
/// No description provided for @languageDone.
///
/// In zh, this message translates to:
/// **'完成'**
String get languageDone;
/// No description provided for @passwordSecurityHint.
///
/// In zh, this message translates to:
/// **'请设置至少 8 个字符的新密码。'**
String get passwordSecurityHint;
/// No description provided for @passwordSave.
///
/// In zh, this message translates to:
/// **'保存密码'**
String get passwordSave;
/// No description provided for @settingsSectionGeneral.
///
/// In zh, this message translates to:
/// **'通用'**
String get settingsSectionGeneral;
/// No description provided for @logoutConfirmBodyIdle.
///
/// In zh, this message translates to:
/// **'将在此设备上退出登录。'**
String get logoutConfirmBodyIdle;
/// No description provided for @fieldRequired.
///
/// In zh, this message translates to:
/// **'此项为必填项'**
String get fieldRequired;
/// No description provided for @passwordChangeTitle.
///
/// In zh, this message translates to:
/// **'修改密码'**
String get passwordChangeTitle;
/// No description provided for @currentPassword.
///
/// In zh, this message translates to:
/// **'当前密码'**
String get currentPassword;
/// No description provided for @newPassword.
///
/// In zh, this message translates to:
/// **'新密码'**
String get newPassword;
/// No description provided for @confirmNewPassword.
///
/// In zh, this message translates to:
/// **'确认新密码'**
String get confirmNewPassword;
/// No description provided for @passwordMinLength.
///
/// In zh, this message translates to:
/// **'新密码至少需要 8 个字符'**
String get passwordMinLength;
/// No description provided for @passwordMismatch.
///
/// In zh, this message translates to:
/// **'两次输入的新密码不一致'**
String get passwordMismatch;
/// No description provided for @passwordChangeSuccess.
///
/// In zh, this message translates to:
/// **'密码已修改'**
String get passwordChangeSuccess;
/// No description provided for @errorAuthInvalidCredentials.
///
/// In zh, this message translates to:
/// **'账号或密码错误'**
String get errorAuthInvalidCredentials;
/// No description provided for @errorOldPasswordIncorrect.
///
/// In zh, this message translates to:
/// **'当前密码错误'**
String get errorOldPasswordIncorrect;
/// No description provided for @errorAuthRateLimited.
///
/// In zh, this message translates to:
/// **'尝试次数过多,请稍后再试'**
String get errorAuthRateLimited;
/// No description provided for @errorAuthTokenExpired.
///
/// In zh, this message translates to:
/// **'会话已过期,请重新登录'**
String get errorAuthTokenExpired;
/// No description provided for @errorValidation.
///
/// In zh, this message translates to:
/// **'输入有误,请检查后重试'**
String get errorValidation;
/// No description provided for @errorNetwork.
///
/// In zh, this message translates to:
/// **'网络连接失败,请检查网络后重试'**
String get errorNetwork;
/// No description provided for @errorNetworkTimeout.
///
/// In zh, this message translates to:
/// **'网络超时,请重试'**
String get errorNetworkTimeout;
/// No description provided for @errorInternal.
///
/// 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 @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 @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 @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 @formEventDetails.
///
/// In zh, this message translates to:
/// **'活动信息'**
String get formEventDetails;
/// No description provided for @coverPicker.
///
/// In zh, this message translates to:
/// **'相册封面'**
String get coverPicker;
/// No description provided for @coverPickerHint.
///
/// In zh, this message translates to:
/// **'点击选择封面图片(可选)'**
String get coverPickerHint;
/// No description provided for @coverSelected.
///
/// In zh, this message translates to:
/// **'已选择封面,保存后上传'**
String get coverSelected;
/// No description provided for @coverUploadFailed.
///
/// In zh, this message translates to:
/// **'封面上传失败,可稍后在相册详情中重新上传'**
String get coverUploadFailed;
/// No description provided for @formDescriptionLanguages.
///
/// In zh, this message translates to:
/// **'描述与语言'**
String get formDescriptionLanguages;
/// No description provided for @formDefaultLanguage.
///
/// In zh, this message translates to:
/// **'默认语言'**
String get formDefaultLanguage;
/// No description provided for @formDetailsTab.
///
/// In zh, this message translates to:
/// **'详情'**
String get formDetailsTab;
/// No description provided for @formAccessTab.
///
/// In zh, this message translates to:
/// **'访问'**
String get formAccessTab;
/// No description provided for @formAllowUploads.
///
/// In zh, this message translates to:
/// **'允许上传'**
String get formAllowUploads;
/// No description provided for @formAllowUploadsDesc.
///
/// In zh, this message translates to:
/// **'允许工作人员向该相册上传照片'**
String get formAllowUploadsDesc;
/// No description provided for @formPublicAccess.
///
/// In zh, this message translates to:
/// **'公开访问'**
String get formPublicAccess;
/// No description provided for @formPublicAccessDesc.
///
/// In zh, this message translates to:
/// **'任何获得链接的人都可以查看照片'**
String get formPublicAccessDesc;
/// No description provided for @formAllowDownloads.
///
/// In zh, this message translates to:
/// **'允许下载'**
String get formAllowDownloads;
/// No description provided for @formAllowDownloadsDesc.
///
/// In zh, this message translates to:
/// **'观众可以下载浏览质量的照片'**
String get formAllowDownloadsDesc;
/// No description provided for @formOriginalDownloads.
///
/// In zh, this message translates to:
/// **'下载原图'**
String get formOriginalDownloads;
/// No description provided for @formOriginalDownloadsDesc.
///
/// In zh, this message translates to:
/// **'观众可以下载原图照片'**
String get formOriginalDownloadsDesc;
/// No description provided for @createAlbumTitle.
///
/// In zh, this message translates to:
/// **'新建相册'**
String get createAlbumTitle;
/// No description provided for @createAlbumSubmit.
///
/// In zh, this message translates to:
/// **'新建相册'**
String get createAlbumSubmit;
/// No description provided for @editAlbumTitle.
///
/// In zh, this message translates to:
/// **'编辑相册'**
String get editAlbumTitle;
/// No description provided for @saveChanges.
///
/// In zh, this message translates to:
/// **'保存修改'**
String get saveChanges;
/// No description provided for @unsavedChangesTitle.
///
/// In zh, this message translates to:
/// **'放弃修改?'**
String get unsavedChangesTitle;
/// No description provided for @unsavedChangesBody.
///
/// In zh, this message translates to:
/// **'修改尚未保存,离开将丢失这些修改。'**
String get unsavedChangesBody;
/// No description provided for @discardChanges.
///
/// In zh, this message translates to:
/// **'放弃'**
String get discardChanges;
/// No description provided for @keepEditing.
///
/// In zh, this message translates to:
/// **'继续编辑'**
String get keepEditing;
/// 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 @membersTitle.
///
/// In zh, this message translates to:
/// **'成员'**
String get membersTitle;
/// No description provided for @membersTitleCount.
///
/// In zh, this message translates to:
/// **'成员({count})'**
String membersTitleCount(int count);
/// No description provided for @ownerGroup.
///
/// In zh, this message translates to:
/// **'创建者'**
String get ownerGroup;
/// No description provided for @collaboratorsGroup.
///
/// In zh, this message translates to:
/// **'协作者'**
String get collaboratorsGroup;
/// No description provided for @noCollaborators.
///
/// In zh, this message translates to:
/// **'还没有协作者'**
String get noCollaborators;
/// No description provided for @inviteColleague.
///
/// In zh, this message translates to:
/// **'邀请同事'**
String get inviteColleague;
/// No description provided for @alreadyAdded.
///
/// In zh, this message translates to:
/// **'已添加'**
String get alreadyAdded;
/// No description provided for @add.
///
/// In zh, this message translates to:
/// **'添加'**
String get add;
/// No description provided for @categoriesTitle.
///
/// In zh, this message translates to:
/// **'分类'**
String get categoriesTitle;
/// No description provided for @newCategory.
///
/// In zh, this message translates to:
/// **'新增分类'**
String get newCategory;
/// No description provided for @editCategory.
///
/// In zh, this message translates to:
/// **'编辑分类'**
String get editCategory;
/// No description provided for @deleteCategoryConfirm.
///
/// In zh, this message translates to:
/// **'删除「{name}」?该分类下的照片将变为未分类。'**
String deleteCategoryConfirm(String name);
/// No description provided for @noCategories.
///
/// In zh, this message translates to:
/// **'暂无分类'**
String get noCategories;
/// 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 @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 @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 @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:
/// **'确定将 {name} 从该相册移除?'**
String removeMemberConfirm(String name);
/// 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 @openInBrowser.
///
/// In zh, this message translates to:
/// **'在浏览器中打开'**
String get openInBrowser;
/// 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;
/// No description provided for @queueStubHint.
///
/// In zh, this message translates to:
/// **'本机待传队列与连拍管理将在任务 9 上线'**
String get queueStubHint;
/// No description provided for @serverHistoryEntry.
///
/// In zh, this message translates to:
/// **'服务端历史'**
String get serverHistoryEntry;
/// No description provided for @serverHistoryTitle.
///
/// In zh, this message translates to:
/// **'服务端历史(跨设备)'**
String get serverHistoryTitle;
/// No description provided for @serverHistoryBanner.
///
/// In zh, this message translates to:
/// **'展示全部设备的服务端上传记录;本机待传队列在「上传」页。'**
String get serverHistoryBanner;
/// No description provided for @serverHistoryEmpty.
///
/// In zh, this message translates to:
/// **'暂无上传记录'**
String get serverHistoryEmpty;
/// No description provided for @uploadStatePending.
///
/// In zh, this message translates to:
/// **'待完成'**
String get uploadStatePending;
/// No description provided for @uploadStateConfirmed.
///
/// In zh, this message translates to:
/// **'已确认'**
String get uploadStateConfirmed;
/// No description provided for @uploadStateCancelled.
///
/// In zh, this message translates to:
/// **'已取消'**
String get uploadStateCancelled;
/// No description provided for @uploadStateExpired.
///
/// In zh, this message translates to:
/// **'已过期'**
String get uploadStateExpired;
/// No description provided for @thisDevice.
///
/// In zh, this message translates to:
/// **'本设备'**
String get thisDevice;
/// No description provided for @queueAlbumFilterAll.
///
/// In zh, this message translates to:
/// **'全部相册'**
String get queueAlbumFilterAll;
/// No description provided for @queueStateAll.
///
/// In zh, this message translates to:
/// **'全部'**
String get queueStateAll;
/// No description provided for @queueStateInProgress.
///
/// In zh, this message translates to:
/// **'进行中'**
String get queueStateInProgress;
/// No description provided for @queueStateNeedsAttention.
///
/// In zh, this message translates to:
/// **'需关注'**
String get queueStateNeedsAttention;
/// No description provided for @queueStateCompleted.
///
/// In zh, this message translates to:
/// **'已完成'**
String get queueStateCompleted;
/// No description provided for @queueSummaryCompleted.
///
/// In zh, this message translates to:
/// **'已完成'**
String get queueSummaryCompleted;
/// No description provided for @queueSummaryUploading.
///
/// In zh, this message translates to:
/// **'上传中'**
String get queueSummaryUploading;
/// No description provided for @queueSummaryWaiting.
///
/// In zh, this message translates to:
/// **'等待中'**
String get queueSummaryWaiting;
/// No description provided for @queueSummaryNeedAttention.
///
/// In zh, this message translates to:
/// **'需关注'**
String get queueSummaryNeedAttention;
/// No description provided for @queueRowUploadingPercent.
///
/// In zh, this message translates to:
/// **'上传中 {percent}%'**
String queueRowUploadingPercent(int percent);
/// No description provided for @queueRowConfirming.
///
/// In zh, this message translates to:
/// **'正在确认上传'**
String get queueRowConfirming;
/// No description provided for @queueRowWaitingUpload.
///
/// In zh, this message translates to:
/// **'等待上传'**
String get queueRowWaitingUpload;
/// No description provided for @queueRowPreparing.
///
/// In zh, this message translates to:
/// **'正在准备照片'**
String get queueRowPreparing;
/// No description provided for @queueWaitingNetworkHint.
///
/// In zh, this message translates to:
/// **'网络恢复后自动继续'**
String get queueWaitingNetworkHint;
/// No description provided for @queueRowFileUnavailable.
///
/// In zh, this message translates to:
/// **'文件不可用'**
String get queueRowFileUnavailable;
/// No description provided for @queueActionSelectAgain.
///
/// In zh, this message translates to:
/// **'重新选择'**
String get queueActionSelectAgain;
/// No description provided for @queueActionRemoveRecord.
///
/// In zh, this message translates to:
/// **'移除记录'**
String get queueActionRemoveRecord;
/// No description provided for @queueRemoveRecordTitle.
///
/// In zh, this message translates to:
/// **'移除这条记录?'**
String get queueRemoveRecordTitle;
/// No description provided for @queueRemoveRecordBody.
///
/// In zh, this message translates to:
/// **'仅移除本机的任务记录,不会删除云端已上传的照片。'**
String get queueRemoveRecordBody;
/// No description provided for @queueRemoveRecordConfirm.
///
/// In zh, this message translates to:
/// **'移除'**
String get queueRemoveRecordConfirm;
/// No description provided for @queueRetryAllScope.
///
/// In zh, this message translates to:
/// **'仅重试本机的上传失败任务;等待网络的任务会自动恢复。'**
String get queueRetryAllScope;
/// No description provided for @queueTimeAll.
///
/// In zh, this message translates to:
/// **'全部时间'**
String get queueTimeAll;
/// No description provided for @queueTimeToday.
///
/// In zh, this message translates to:
/// **'今天'**
String get queueTimeToday;
/// No description provided for @queueTimeLast7Days.
///
/// In zh, this message translates to:
/// **'近7天'**
String get queueTimeLast7Days;
/// No description provided for @queueTimeLast30Days.
///
/// In zh, this message translates to:
/// **'近30天'**
String get queueTimeLast30Days;
/// No description provided for @queueEmpty.
///
/// In zh, this message translates to:
/// **'暂无上传任务'**
String get queueEmpty;
/// No description provided for @queueRetryAllFailed.
///
/// In zh, this message translates to:
/// **'一键重试全部失败'**
String get queueRetryAllFailed;
/// No description provided for @queueAttemptCount.
///
/// In zh, this message translates to:
/// **'已尝试 {count} 次'**
String queueAttemptCount(int count);
/// No description provided for @captureQueued.
///
/// In zh, this message translates to:
/// **'{count} 张待传'**
String captureQueued(int count);
/// No description provided for @captureFlipCamera.
///
/// In zh, this message translates to:
/// **'切换前后摄像头'**
String get captureFlipCamera;
/// No description provided for @captureFlash.
///
/// In zh, this message translates to:
/// **'闪光灯'**
String get captureFlash;
/// No description provided for @uploadsHistory.
///
/// In zh, this message translates to:
/// **'历史记录'**
String get uploadsHistory;
/// No description provided for @uploadsToday.
///
/// In zh, this message translates to:
/// **'今天'**
String get uploadsToday;
/// No description provided for @uploadsThisDevice.
///
/// In zh, this message translates to:
/// **'本设备'**
String get uploadsThisDevice;
/// No description provided for @uploadsCompleted.
///
/// In zh, this message translates to:
/// **'已完成'**
String get uploadsCompleted;
/// No description provided for @uploadsUploading.
///
/// In zh, this message translates to:
/// **'上传中'**
String get uploadsUploading;
/// No description provided for @uploadsWaiting.
///
/// In zh, this message translates to:
/// **'等待中'**
String get uploadsWaiting;
/// No description provided for @uploadsNeedsAttention.
///
/// In zh, this message translates to:
/// **'需关注'**
String get uploadsNeedsAttention;
/// No description provided for @uploadsAll.
///
/// In zh, this message translates to:
/// **'全部'**
String get uploadsAll;
/// No description provided for @uploadsActive.
///
/// In zh, this message translates to:
/// **'进行中'**
String get uploadsActive;
/// No description provided for @uploadsConfirming.
///
/// In zh, this message translates to:
/// **'确认中…'**
String get uploadsConfirming;
/// No description provided for @uploadsWaitingUpload.
///
/// In zh, this message translates to:
/// **'等待上传'**
String get uploadsWaitingUpload;
/// No description provided for @uploadsWaitingNetwork.
///
/// In zh, this message translates to:
/// **'等待网络'**
String get uploadsWaitingNetwork;
/// No description provided for @uploadsFileUnavailable.
///
/// In zh, this message translates to:
/// **'文件不可用'**
String get uploadsFileUnavailable;
/// No description provided for @uploadsSelectAgain.
///
/// In zh, this message translates to:
/// **'重新选择'**
String get uploadsSelectAgain;
/// No description provided for @uploadsRemoveRecord.
///
/// In zh, this message translates to:
/// **'移除记录'**
String get uploadsRemoveRecord;
/// No description provided for @uploadsRemoveRecordConfirm.
///
/// In zh, this message translates to:
/// **'移除'**
String get uploadsRemoveRecordConfirm;
/// No description provided for @uploadsRetryEligible.
///
/// In zh, this message translates to:
/// **'重试可恢复项'**
String get uploadsRetryEligible;
/// No description provided for @uploadsRetryEligibleScope.
///
/// In zh, this message translates to:
/// **'仅重试可自动恢复的上传失败任务;文件不可用的任务需重新选择。'**
String get uploadsRetryEligibleScope;
/// No description provided for @uploadsNoNeedsAttention.
///
/// In zh, this message translates to:
/// **'暂无需要关注的任务'**
String get uploadsNoNeedsAttention;
/// No description provided for @uploadsShowingNeedsAttention.
///
/// In zh, this message translates to:
/// **'正在显示需要你处理的任务'**
String get uploadsShowingNeedsAttention;
/// No description provided for @uploadsFilters.
///
/// In zh, this message translates to:
/// **'筛选'**
String get uploadsFilters;
/// No description provided for @serverRecords.
///
/// In zh, this message translates to:
/// **'服务端记录'**
String get serverRecords;
/// No description provided for @serverSubtitle.
///
/// In zh, this message translates to:
/// **'全部设备 · 当前账号'**
String get serverSubtitle;
/// No description provided for @serverConfirmed.
///
/// In zh, this message translates to:
/// **'已确认'**
String get serverConfirmed;
/// No description provided for @serverReady.
///
/// In zh, this message translates to:
/// **'已就绪'**
String get serverReady;
/// No description provided for @serverProcessing.
///
/// In zh, this message translates to:
/// **'处理中'**
String get serverProcessing;
/// No description provided for @serverDeviceUnknown.
///
/// In zh, this message translates to:
/// **'未知设备'**
String get serverDeviceUnknown;
/// No description provided for @taskStatePreparing.
///
/// In zh, this message translates to:
/// **'准备中'**
String get taskStatePreparing;
/// No description provided for @taskStatePreparationFailed.
///
/// In zh, this message translates to:
/// **'准备失败'**
String get taskStatePreparationFailed;
/// No description provided for @taskStateQueued.
///
/// In zh, this message translates to:
/// **'待上传'**
String get taskStateQueued;
/// No description provided for @taskStateUploading.
///
/// In zh, this message translates to:
/// **'上传中'**
String get taskStateUploading;
/// No description provided for @taskStateUploadedConfirming.
///
/// In zh, this message translates to:
/// **'确认中'**
String get taskStateUploadedConfirming;
/// No description provided for @taskStateCompleted.
///
/// In zh, this message translates to:
/// **'已完成'**
String get taskStateCompleted;
/// No description provided for @taskStateWaitingNetwork.
///
/// In zh, this message translates to:
/// **'等待网络'**
String get taskStateWaitingNetwork;
/// No description provided for @taskStateRetryableFailed.
///
/// In zh, this message translates to:
/// **'上传失败'**
String get taskStateRetryableFailed;
/// No description provided for @taskStateCancelled.
///
/// In zh, this message translates to:
/// **'已取消'**
String get taskStateCancelled;
/// No description provided for @errorPrepSourceUnreadable.
///
/// In zh, this message translates to:
/// **'无法读取所选图片,请重新选择'**
String get errorPrepSourceUnreadable;
/// No description provided for @errorPrepUnsupportedType.
///
/// In zh, this message translates to:
/// **'仅支持 JPG/PNG/HEIC 图片'**
String get errorPrepUnsupportedType;
/// No description provided for @errorPrepTooLarge.
///
/// In zh, this message translates to:
/// **'图片超过 50MB 上限'**
String get errorPrepTooLarge;
/// No description provided for @errorPrepCopyFailed.
///
/// In zh, this message translates to:
/// **'保存图片副本失败,请重试'**
String get errorPrepCopyFailed;
/// No description provided for @errorUploadSourceMissing.
///
/// In zh, this message translates to:
/// **'源文件已缺失,请重新选择'**
String get errorUploadSourceMissing;
/// No description provided for @errorAlbumUploadDisabled.
///
/// In zh, this message translates to:
/// **'相册已关闭上传'**
String get errorAlbumUploadDisabled;
/// No description provided for @errorUploadSessionConflict.
///
/// In zh, this message translates to:
/// **'上传会话冲突,请重试'**
String get errorUploadSessionConflict;
/// No description provided for @errorUploadVerifyFailed.
///
/// In zh, this message translates to:
/// **'上传核验失败,将自动重试'**
String get errorUploadVerifyFailed;
/// No description provided for @captureTitle.
///
/// In zh, this message translates to:
/// **'连拍上传'**
String get captureTitle;
/// No description provided for @captureCategoryDefault.
///
/// In zh, this message translates to:
/// **'默认分类'**
String get captureCategoryDefault;
/// No description provided for @captureSwitchHint.
///
/// In zh, this message translates to:
/// **'切换分类仅影响之后拍摄的照片'**
String get captureSwitchHint;
/// No description provided for @capturePendingBadge.
///
/// In zh, this message translates to:
/// **'待传 {count}'**
String capturePendingBadge(int count);
/// No description provided for @captureFailedBadge.
///
/// In zh, this message translates to:
/// **'失败 {count}'**
String captureFailedBadge(int count);
/// No description provided for @capturePickFromGallery.
///
/// In zh, this message translates to:
/// **'从相册选择'**
String get capturePickFromGallery;
/// No description provided for @captureShutter.
///
/// In zh, this message translates to:
/// **'拍摄'**
String get captureShutter;
/// No description provided for @captureQueuedBadge.
///
/// In zh, this message translates to:
/// **'待传 {count}'**
String captureQueuedBadge(int count);
/// No description provided for @captureEnqueuedFeedback.
///
/// In zh, this message translates to:
/// **'已加入队列'**
String get captureEnqueuedFeedback;
/// No description provided for @captureExitTitle.
///
/// In zh, this message translates to:
/// **'退出拍摄?'**
String get captureExitTitle;
/// No description provided for @captureExitBody.
///
/// In zh, this message translates to:
/// **'还有 {count} 张照片未上传,退出后任务将在后台继续。'**
String captureExitBody(int count);
/// No description provided for @captureKeepShooting.
///
/// In zh, this message translates to:
/// **'继续拍摄'**
String get captureKeepShooting;
/// No description provided for @captureExitConfirm.
///
/// In zh, this message translates to:
/// **'退出'**
String get captureExitConfirm;
/// No description provided for @cameraPermissionDenied.
///
/// In zh, this message translates to:
/// **'无法访问相机,请在系统设置中允许相机权限'**
String get cameraPermissionDenied;
/// No description provided for @cameraInitFailed.
///
/// In zh, this message translates to:
/// **'相机初始化失败'**
String get cameraInitFailed;
/// No description provided for @uploadActionCapture.
///
/// In zh, this message translates to:
/// **'拍照上传'**
String get uploadActionCapture;
/// No description provided for @uploadActionPick.
///
/// In zh, this message translates to:
/// **'从相册选择'**
String get uploadActionPick;
/// No description provided for @uploadAction.
///
/// In zh, this message translates to:
/// **'上传'**
String get uploadAction;
/// No description provided for @uploadEnqueuedCount.
///
/// In zh, this message translates to:
/// **'已加入 {count} 张上传队列'**
String uploadEnqueuedCount(int count);
/// No description provided for @uploadPickNone.
///
/// In zh, this message translates to:
/// **'未选择照片'**
String get uploadPickNone;
/// No description provided for @albumManagePhotos.
///
/// In zh, this message translates to:
/// **'管理照片'**
String get albumManagePhotos;
/// No description provided for @albumTakeFirstPhoto.
///
/// In zh, this message translates to:
/// **'拍摄第一张照片'**
String get albumTakeFirstPhoto;
/// No description provided for @albumUploadDisabledHint.
///
/// In zh, this message translates to:
/// **'相册已关闭上传,暂不能新增照片'**
String get albumUploadDisabledHint;
/// No description provided for @albumRecentPhotos.
///
/// In zh, this message translates to:
/// **'最近上传'**
String get albumRecentPhotos;
/// No description provided for @photoFilterAll.
///
/// In zh, this message translates to:
/// **'全部'**
String get photoFilterAll;
/// No description provided for @photoFilterFailed.
///
/// In zh, this message translates to:
/// **'失败'**
String get photoFilterFailed;
/// No description provided for @photosScopeOwnHint.
///
/// In zh, this message translates to:
/// **'协作者视图:仅显示你上传的照片'**
String get photosScopeOwnHint;
/// No description provided for @photosEmptyFiltered.
///
/// In zh, this message translates to:
/// **'当前筛选下暂无照片'**
String get photosEmptyFiltered;
/// No description provided for @photoHide.
///
/// In zh, this message translates to:
/// **'隐藏'**
String get photoHide;
/// No description provided for @photoUnhide.
///
/// In zh, this message translates to:
/// **'恢复显示'**
String get photoUnhide;
/// No description provided for @photoDeleteConfirmTitle.
///
/// In zh, this message translates to:
/// **'删除这张照片?'**
String get photoDeleteConfirmTitle;
/// No description provided for @photoDeleteConfirmBody.
///
/// In zh, this message translates to:
/// **'该照片将被软删除,管理员仍可管理,云端存储不会立即清除。'**
String get photoDeleteConfirmBody;
/// No description provided for @photoHiddenToast.
///
/// In zh, this message translates to:
/// **'已隐藏'**
String get photoHiddenToast;
/// No description provided for @photoUnhiddenToast.
///
/// In zh, this message translates to:
/// **'已恢复显示'**
String get photoUnhiddenToast;
/// No description provided for @photoDeletedToast.
///
/// In zh, this message translates to:
/// **'已删除'**
String get photoDeletedToast;
/// No description provided for @photoReload.
///
/// In zh, this message translates to:
/// **'重新加载'**
String get photoReload;
/// No description provided for @photoPreviewUnavailable.
///
/// In zh, this message translates to:
/// **'图片暂不可用'**
String get photoPreviewUnavailable;
/// No description provided for @albumsSubtitle.
///
/// In zh, this message translates to:
/// **'管理和整理活动照片'**
String get albumsSubtitle;
/// No description provided for @actionPhotos.
///
/// In zh, this message translates to:
/// **'照片'**
String get actionPhotos;
/// No description provided for @actionMembers.
///
/// In zh, this message translates to:
/// **'成员'**
String get actionMembers;
/// No description provided for @actionCategories.
///
/// In zh, this message translates to:
/// **'分类'**
String get actionCategories;
/// No description provided for @actionShare.
///
/// In zh, this message translates to:
/// **'分享'**
String get actionShare;
/// No description provided for @recentPhotos.
///
/// In zh, this message translates to:
/// **'最近照片'**
String get recentPhotos;
/// No description provided for @seeAllPhotos.
///
/// In zh, this message translates to:
/// **'查看全部'**
String get seeAllPhotos;
/// No description provided for @editAlbum.
///
/// In zh, this message translates to:
/// **'编辑相册'**
String get editAlbum;
/// No description provided for @manageMembers.
///
/// In zh, this message translates to:
/// **'管理成员'**
String get manageMembers;
/// No description provided for @shareAlbum.
///
/// In zh, this message translates to:
/// **'分享相册'**
String get shareAlbum;
/// No description provided for @emptyAlbumTitle.
///
/// In zh, this message translates to:
/// **'准备好拍第一张照片了吗?'**
String get emptyAlbumTitle;
/// No description provided for @emptyAlbumSubtitle.
///
/// In zh, this message translates to:
/// **'拍摄或选择的照片将出现在这里'**
String get emptyAlbumSubtitle;
/// No description provided for @processingPhotos.
///
/// In zh, this message translates to:
/// **'处理中...'**
String get processingPhotos;
/// No description provided for @readonlyMember.
///
/// In zh, this message translates to:
/// **'您可以浏览其他人分享的照片'**
String get readonlyMember;
/// No description provided for @moreActions.
///
/// In zh, this message translates to:
/// **'更多操作'**
String get moreActions;
/// No description provided for @photosTitle.
///
/// In zh, this message translates to:
/// **'{count} 张照片'**
String photosTitle(int count);
/// No description provided for @photoUploadedBy.
///
/// In zh, this message translates to:
/// **'上传者 {name}'**
String photoUploadedBy(String name);
/// No description provided for @photoDimensions.
///
/// In zh, this message translates to:
/// **'{width}×{height}'**
String photoDimensions(int width, int height);
/// No description provided for @photoStatus.
///
/// In zh, this message translates to:
/// **'状态'**
String get photoStatus;
/// No description provided for @photoHideAction.
///
/// In zh, this message translates to:
/// **'隐藏照片'**
String get photoHideAction;
/// No description provided for @photoPublishAction.
///
/// In zh, this message translates to:
/// **'重新发布'**
String get photoPublishAction;
/// No description provided for @shareScanHint.
///
/// In zh, this message translates to:
/// **'扫码查看照片'**
String get shareScanHint;
/// No description provided for @shareNotPublic.
///
/// In zh, this message translates to:
/// **'该链接目前无法公开浏览'**
String get shareNotPublic;
/// No description provided for @hidePhotoTitle.
///
/// In zh, this message translates to:
/// **'隐藏这张照片?'**
String get hidePhotoTitle;
/// No description provided for @hidePhotoBody.
///
/// In zh, this message translates to:
/// **'观众将不再看到这张照片。相册管理者可重新发布。'**
String get hidePhotoBody;
/// No description provided for @deleteAlbum.
///
/// In zh, this message translates to:
/// **'删除相册'**
String get deleteAlbum;
/// No description provided for @deleteAlbumConfirmTitle.
///
/// In zh, this message translates to:
/// **'删除这个相册?'**
String get deleteAlbumConfirmTitle;
/// No description provided for @deleteAlbumConfirmBody.
///
/// In zh, this message translates to:
/// **'删除后立即不可见且不可恢复。数据保留,恢复需运维处理。'**
String get deleteAlbumConfirmBody;
/// No description provided for @albumDeleted.
///
/// In zh, this message translates to:
/// **'相册已删除'**
String get albumDeleted;
/// No description provided for @bannerPicker.
///
/// In zh, this message translates to:
/// **'宣传图'**
String get bannerPicker;
/// No description provided for @bannerPickerHint.
///
/// In zh, this message translates to:
/// **'点击选择宣传图(展示在观众页顶部)'**
String get bannerPickerHint;
/// No description provided for @bannerSelected.
///
/// In zh, this message translates to:
/// **'已选择宣传图——保存时上传'**
String get bannerSelected;
/// No description provided for @bannerUploadFailed.
///
/// In zh, this message translates to:
/// **'宣传图上传失败'**
String get bannerUploadFailed;
/// No description provided for @shareCardMode.
///
/// In zh, this message translates to:
/// **'分享到...'**
String get shareCardMode;
/// No description provided for @sharePosterMode.
///
/// In zh, this message translates to:
/// **'生成二维码海报'**
String get sharePosterMode;
/// No description provided for @posterDownload.
///
/// In zh, this message translates to:
/// **'下载海报图'**
String get posterDownload;
/// No description provided for @posterSaved.
///
/// In zh, this message translates to:
/// **'海报已保存到相册'**
String get posterSaved;
/// No description provided for @posterSaveFailed.
///
/// In zh, this message translates to:
/// **'海报保存失败'**
String get posterSaveFailed;
/// No description provided for @close.
///
/// In zh, this message translates to:
/// **'关闭'**
String get close;
/// No description provided for @albumUploadDisabled.
///
/// In zh, this message translates to:
/// **'该相册已关闭上传,无法添加照片'**
String get albumUploadDisabled;
/// No description provided for @networkOfflineBanner.
///
/// In zh, this message translates to:
/// **'当前无网络连接,照片将在恢复后自动上传'**
String get networkOfflineBanner;
}
class _AppLocalizationsDelegate
extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate();
@override
Future<AppLocalizations> load(Locale locale) {
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
}
@override
bool isSupported(Locale locale) =>
<String>['en', 'zh'].contains(locale.languageCode);
@override
bool shouldReload(_AppLocalizationsDelegate old) => false;
}
AppLocalizations lookupAppLocalizations(Locale locale) {
// Lookup logic when only language code is specified.
switch (locale.languageCode) {
case 'en':
return AppLocalizationsEn();
case 'zh':
return AppLocalizationsZh();
}
throw FlutterError(
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
'an issue with the localizations generation tool. Please file an issue '
'on GitHub with a reproducible sample app and the gen-l10n configuration '
'that was used.',
);
}