Files
ReelShort/lib/l10n/app_localizations.dart
T

3493 lines
91 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_id.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('id'),
Locale('zh'),
];
/// No description provided for @appName.
///
/// In en, this message translates to:
/// **'FruitShorts'**
String get appName;
/// No description provided for @demo.
///
/// In en, this message translates to:
/// **'DEMO'**
String get demo;
/// No description provided for @homeHeadline.
///
/// In en, this message translates to:
/// **'Watch now'**
String get homeHeadline;
/// No description provided for @homeSubtitle.
///
/// In en, this message translates to:
/// **'Free short drama preview.'**
String get homeSubtitle;
/// No description provided for @mediaNotice.
///
/// In en, this message translates to:
/// **'User-provided local demo video · Free preview'**
String get mediaNotice;
/// No description provided for @featuredDemo.
///
/// In en, this message translates to:
/// **'FEATURED · TECHNICAL DEMO'**
String get featuredDemo;
/// No description provided for @demoTitle.
///
/// In en, this message translates to:
/// **'The Signal'**
String get demoTitle;
/// No description provided for @demoSynopsis.
///
/// In en, this message translates to:
/// **'A short local video preview. More episodes can be added when media is available.'**
String get demoSynopsis;
/// No description provided for @homeTab.
///
/// In en, this message translates to:
/// **'Home'**
String get homeTab;
/// No description provided for @theaterTab.
///
/// In en, this message translates to:
/// **'Theater'**
String get theaterTab;
/// No description provided for @createTab.
///
/// In en, this message translates to:
/// **'Create'**
String get createTab;
/// No description provided for @openQuickMenu.
///
/// In en, this message translates to:
/// **'Open quick menu'**
String get openQuickMenu;
/// No description provided for @quickAccess.
///
/// In en, this message translates to:
/// **'Quick access'**
String get quickAccess;
/// No description provided for @currentSeries.
///
/// In en, this message translates to:
/// **'Current series'**
String get currentSeries;
/// No description provided for @discoverTab.
///
/// In en, this message translates to:
/// **'Theater'**
String get discoverTab;
/// No description provided for @searchDiscover.
///
/// In en, this message translates to:
/// **'Search dramas, actors, genres...'**
String get searchDiscover;
/// No description provided for @searchCancel.
///
/// In en, this message translates to:
/// **'Cancel'**
String get searchCancel;
/// No description provided for @featured.
///
/// In en, this message translates to:
/// **'Featured'**
String get featured;
/// No description provided for @recommended.
///
/// In en, this message translates to:
/// **'Recommended'**
String get recommended;
/// No description provided for @fruitShortsBrand.
///
/// In en, this message translates to:
/// **'FruitShorts'**
String get fruitShortsBrand;
/// No description provided for @authLandingSubtitle.
///
/// In en, this message translates to:
/// **'Sign in to sync progress, favorites and coins'**
String get authLandingSubtitle;
/// No description provided for @comingSoon.
///
/// In en, this message translates to:
/// **'Coming soon'**
String get comingSoon;
/// No description provided for @authLegal.
///
/// In en, this message translates to:
/// **'By continuing, you agree to the Terms of Service and Privacy Policy.'**
String get authLegal;
/// No description provided for @authLegalLead.
///
/// In en, this message translates to:
/// **'By continuing, you agree to the'**
String get authLegalLead;
/// No description provided for @authTerms.
///
/// In en, this message translates to:
/// **'Terms of Service'**
String get authTerms;
/// No description provided for @authLegalJoin.
///
/// In en, this message translates to:
/// **'and'**
String get authLegalJoin;
/// No description provided for @authPrivacy.
///
/// In en, this message translates to:
/// **'Privacy Policy'**
String get authPrivacy;
/// No description provided for @legalTerms.
///
/// In en, this message translates to:
/// **'Terms of Service'**
String get legalTerms;
/// No description provided for @legalPrivacy.
///
/// In en, this message translates to:
/// **'Privacy Policy'**
String get legalPrivacy;
/// No description provided for @legalOpenFailed.
///
/// In en, this message translates to:
/// **'Can\'t open this page right now'**
String get legalOpenFailed;
/// No description provided for @authContinueGoogle.
///
/// In en, this message translates to:
/// **'Continue with Google'**
String get authContinueGoogle;
/// No description provided for @authPhoneSignIn.
///
/// In en, this message translates to:
/// **'Phone sign in'**
String get authPhoneSignIn;
/// No description provided for @authEmailSignIn.
///
/// In en, this message translates to:
/// **'Email sign in'**
String get authEmailSignIn;
/// No description provided for @suspense.
///
/// In en, this message translates to:
/// **'Suspense'**
String get suspense;
/// No description provided for @romance.
///
/// In en, this message translates to:
/// **'Romance'**
String get romance;
/// No description provided for @actionGenre.
///
/// In en, this message translates to:
/// **'Action'**
String get actionGenre;
/// No description provided for @filter.
///
/// In en, this message translates to:
/// **'Filter'**
String get filter;
/// No description provided for @filterGroupCategory.
///
/// In en, this message translates to:
/// **'All genres'**
String get filterGroupCategory;
/// No description provided for @filterGroupTheme.
///
/// In en, this message translates to:
/// **'All themes'**
String get filterGroupTheme;
/// No description provided for @filterGroupLanguage.
///
/// In en, this message translates to:
/// **'All languages'**
String get filterGroupLanguage;
/// No description provided for @filterGroupSort.
///
/// In en, this message translates to:
/// **'All recommendations'**
String get filterGroupSort;
/// No description provided for @sortNewest.
///
/// In en, this message translates to:
/// **'Newest'**
String get sortNewest;
/// No description provided for @sortHottest.
///
/// In en, this message translates to:
/// **'Hottest'**
String get sortHottest;
/// No description provided for @expandFilters.
///
/// In en, this message translates to:
/// **'Expand'**
String get expandFilters;
/// No description provided for @collapseFilters.
///
/// In en, this message translates to:
/// **'Collapse'**
String get collapseFilters;
/// No description provided for @filterEmpty.
///
/// In en, this message translates to:
/// **'No dramas match these filters'**
String get filterEmpty;
/// No description provided for @hotBadge.
///
/// In en, this message translates to:
/// **'Hit'**
String get hotBadge;
/// No description provided for @filterAll.
///
/// In en, this message translates to:
/// **'All'**
String get filterAll;
/// No description provided for @seriesMeta.
///
/// In en, this message translates to:
/// **'Series · {episodes} eps | {viewers} watching'**
String seriesMeta(String episodes, String viewers);
/// No description provided for @watchFullSeries.
///
/// In en, this message translates to:
/// **'Watch full series · {episodes} eps'**
String watchFullSeries(String episodes);
/// No description provided for @feedTabAnime.
///
/// In en, this message translates to:
/// **'Anime'**
String get feedTabAnime;
/// No description provided for @feedTabReal.
///
/// In en, this message translates to:
/// **'Live-action'**
String get feedTabReal;
/// No description provided for @feedTabForYou.
///
/// In en, this message translates to:
/// **'For you'**
String get feedTabForYou;
/// No description provided for @authorNoteLabel.
///
/// In en, this message translates to:
/// **'Author note'**
String get authorNoteLabel;
/// No description provided for @reserve.
///
/// In en, this message translates to:
/// **'Reserve'**
String get reserve;
/// No description provided for @heatLabel.
///
/// In en, this message translates to:
/// **'{count} heat'**
String heatLabel(String count);
/// No description provided for @topCharts.
///
/// In en, this message translates to:
/// **'Hot Ranking'**
String get topCharts;
/// No description provided for @newReleases.
///
/// In en, this message translates to:
/// **'New Releases'**
String get newReleases;
/// No description provided for @newDramas.
///
/// In en, this message translates to:
/// **'New'**
String get newDramas;
/// No description provided for @trendingMicroDramas.
///
/// In en, this message translates to:
/// **'Trending Micro-Dramas'**
String get trendingMicroDramas;
/// No description provided for @seeAll.
///
/// In en, this message translates to:
/// **'See All'**
String get seeAll;
/// No description provided for @trendingSubtitle.
///
/// In en, this message translates to:
/// **'Most binge-watched this week'**
String get trendingSubtitle;
/// No description provided for @verticalMiniSeries.
///
/// In en, this message translates to:
/// **'VERTICAL MINI-SERIES'**
String get verticalMiniSeries;
/// No description provided for @followSeries.
///
/// In en, this message translates to:
/// **'Follow Series'**
String get followSeries;
/// No description provided for @seasonOneVerticalCinema.
///
/// In en, this message translates to:
/// **'Season 1 • Vertical Cinema'**
String get seasonOneVerticalCinema;
/// No description provided for @seasonOneOriginalRelease.
///
/// In en, this message translates to:
/// **'Season 1 • Original Release'**
String get seasonOneOriginalRelease;
/// No description provided for @startWatching.
///
/// In en, this message translates to:
/// **'Start Watching'**
String get startWatching;
/// No description provided for @showLess.
///
/// In en, this message translates to:
/// **'Less'**
String get showLess;
/// No description provided for @expandSynopsis.
///
/// In en, this message translates to:
/// **'More'**
String get expandSynopsis;
/// No description provided for @views.
///
/// In en, this message translates to:
/// **'views'**
String get views;
/// No description provided for @episodeOfTotal.
///
/// In en, this message translates to:
/// **'Episode {current} / {total}'**
String episodeOfTotal(int current, int total);
/// No description provided for @clearScreen.
///
/// In en, this message translates to:
/// **'Clear screen'**
String get clearScreen;
/// No description provided for @exitClearScreen.
///
/// In en, this message translates to:
/// **'Exit clear screen'**
String get exitClearScreen;
/// No description provided for @playbackSpeed.
///
/// In en, this message translates to:
/// **'Playback speed'**
String get playbackSpeed;
/// No description provided for @speedBoosting.
///
/// In en, this message translates to:
/// **'{speed}x speed'**
String speedBoosting(String speed);
/// No description provided for @minutesAgo.
///
/// In en, this message translates to:
/// **'{count} min ago'**
String minutesAgo(int count);
/// No description provided for @justNow.
///
/// In en, this message translates to:
/// **'Just now'**
String get justNow;
/// No description provided for @hoursAgo.
///
/// In en, this message translates to:
/// **'{count} hours ago'**
String hoursAgo(int count);
/// No description provided for @artworkOnly.
///
/// In en, this message translates to:
/// **'Artwork'**
String get artworkOnly;
/// No description provided for @artworkOnlyNotice.
///
/// In en, this message translates to:
/// **'This is a visual catalog item. No video is available yet.'**
String get artworkOnlyNotice;
/// No description provided for @videoPending.
///
/// In en, this message translates to:
/// **'Video pending'**
String get videoPending;
/// No description provided for @watchNow.
///
/// In en, this message translates to:
/// **'Watch free'**
String get watchNow;
/// No description provided for @noSearchResults.
///
/// In en, this message translates to:
/// **'No matching dramas.'**
String get noSearchResults;
/// No description provided for @emptyHint.
///
/// In en, this message translates to:
/// **'New content will appear here.'**
String get emptyHint;
/// No description provided for @demoCatalogNotice.
///
/// In en, this message translates to:
/// **'Three demo dramas share the same local video.'**
String get demoCatalogNotice;
/// No description provided for @myTab.
///
/// In en, this message translates to:
/// **'My'**
String get myTab;
/// No description provided for @localDemoProfile.
///
/// In en, this message translates to:
/// **'Local demo profile'**
String get localDemoProfile;
/// No description provided for @continueWatching.
///
/// In en, this message translates to:
/// **'Continue Watching'**
String get continueWatching;
/// No description provided for @episodeRemaining.
///
/// In en, this message translates to:
/// **'Episode {episode} · {minutes} min left'**
String episodeRemaining(int episode, int minutes);
/// No description provided for @viewCountLabel.
///
/// In en, this message translates to:
/// **'{count} views'**
String viewCountLabel(int count);
/// No description provided for @allEpisodesBadge.
///
/// In en, this message translates to:
/// **'All {count}'**
String allEpisodesBadge(int count);
/// No description provided for @lockedEpisodeCount.
///
/// In en, this message translates to:
/// **'{count} locked'**
String lockedEpisodeCount(int count);
/// No description provided for @watchedPercent.
///
/// In en, this message translates to:
/// **'Watched {percent}%'**
String watchedPercent(int percent);
/// No description provided for @resume.
///
/// In en, this message translates to:
/// **'Resume'**
String get resume;
/// No description provided for @history.
///
/// In en, this message translates to:
/// **'History'**
String get history;
/// No description provided for @likedTab.
///
/// In en, this message translates to:
/// **'Liked'**
String get likedTab;
/// No description provided for @all.
///
/// In en, this message translates to:
/// **'All'**
String get all;
/// No description provided for @inProgress.
///
/// In en, this message translates to:
/// **'In Progress'**
String get inProgress;
/// No description provided for @completed.
///
/// In en, this message translates to:
/// **'Completed'**
String get completed;
/// No description provided for @noSavedShows.
///
/// In en, this message translates to:
/// **'No shows here yet.'**
String get noSavedShows;
/// No description provided for @preferences.
///
/// In en, this message translates to:
/// **'Preferences'**
String get preferences;
/// No description provided for @followingTab.
///
/// In en, this message translates to:
/// **'Following'**
String get followingTab;
/// No description provided for @animatedTab.
///
/// In en, this message translates to:
/// **'Animated'**
String get animatedTab;
/// No description provided for @recommendedTab.
///
/// In en, this message translates to:
/// **'Recommend'**
String get recommendedTab;
/// No description provided for @noCategoryDramas.
///
/// In en, this message translates to:
/// **'No dramas in this category yet.'**
String get noCategoryDramas;
/// No description provided for @allDramas.
///
/// In en, this message translates to:
/// **'All Dramas'**
String get allDramas;
/// No description provided for @allLanguages.
///
/// In en, this message translates to:
/// **'All languages'**
String get allLanguages;
/// No description provided for @bahasaMelayu.
///
/// In en, this message translates to:
/// **'Malay'**
String get bahasaMelayu;
/// No description provided for @createSubtitle.
///
/// In en, this message translates to:
/// **'Stories become short dramas'**
String get createSubtitle;
/// No description provided for @createAiTitle.
///
/// In en, this message translates to:
/// **'AI production'**
String get createAiTitle;
/// No description provided for @createAiSubtitle.
///
/// In en, this message translates to:
/// **'Start from a story or an idea'**
String get createAiSubtitle;
/// No description provided for @createUploadTitle.
///
/// In en, this message translates to:
/// **'Upload and publish'**
String get createUploadTitle;
/// No description provided for @createUploadSubtitle.
///
/// In en, this message translates to:
/// **'Publish a finished short drama'**
String get createUploadSubtitle;
/// No description provided for @createMottoPrimary.
///
/// In en, this message translates to:
/// **'Your imagination'**
String get createMottoPrimary;
/// No description provided for @createMottoSecondary.
///
/// In en, this message translates to:
/// **'Can be seen by more people'**
String get createMottoSecondary;
/// No description provided for @newReleasesTitle.
///
/// In en, this message translates to:
/// **'New premieres'**
String get newReleasesTitle;
/// No description provided for @newReleasesCount.
///
/// In en, this message translates to:
/// **'{count} new this week'**
String newReleasesCount(int count);
/// No description provided for @premiereToday.
///
/// In en, this message translates to:
/// **'Today\'s premiere'**
String get premiereToday;
/// No description provided for @newBadge.
///
/// In en, this message translates to:
/// **'NEW'**
String get newBadge;
/// No description provided for @reserveTitle.
///
/// In en, this message translates to:
/// **'Schedule booking'**
String get reserveTitle;
/// No description provided for @goNewReleases.
///
/// In en, this message translates to:
/// **'Browse new releases'**
String get goNewReleases;
/// No description provided for @reserveStepsTitle.
///
/// In en, this message translates to:
/// **'What you get after reserving'**
String get reserveStepsTitle;
/// No description provided for @reserveStep1.
///
/// In en, this message translates to:
/// **'One-tap reserve'**
String get reserveStep1;
/// No description provided for @reserveStep2.
///
/// In en, this message translates to:
/// **'Premiere reminder'**
String get reserveStep2;
/// No description provided for @reserveStep3.
///
/// In en, this message translates to:
/// **'Watch right away'**
String get reserveStep3;
/// No description provided for @reserveWeek.
///
/// In en, this message translates to:
/// **'This week'**
String get reserveWeek;
/// No description provided for @weekdayMon.
///
/// In en, this message translates to:
/// **'Mon'**
String get weekdayMon;
/// No description provided for @weekdayTue.
///
/// In en, this message translates to:
/// **'Tue'**
String get weekdayTue;
/// No description provided for @weekdayWed.
///
/// In en, this message translates to:
/// **'Wed'**
String get weekdayWed;
/// No description provided for @weekdayThu.
///
/// In en, this message translates to:
/// **'Thu'**
String get weekdayThu;
/// No description provided for @weekdayFri.
///
/// In en, this message translates to:
/// **'Fri'**
String get weekdayFri;
/// No description provided for @weekdaySat.
///
/// In en, this message translates to:
/// **'Sat'**
String get weekdaySat;
/// No description provided for @weekdaySun.
///
/// In en, this message translates to:
/// **'Sun'**
String get weekdaySun;
/// No description provided for @trendingTab.
///
/// In en, this message translates to:
/// **'Trending'**
String get trendingTab;
/// No description provided for @liveActionTab.
///
/// In en, this message translates to:
/// **'Live Action'**
String get liveActionTab;
/// No description provided for @search.
///
/// In en, this message translates to:
/// **'Search'**
String get search;
/// No description provided for @free.
///
/// In en, this message translates to:
/// **'Free'**
String get free;
/// No description provided for @mute.
///
/// In en, this message translates to:
/// **'Mute'**
String get mute;
/// No description provided for @unmute.
///
/// In en, this message translates to:
/// **'Unmute'**
String get unmute;
/// No description provided for @like.
///
/// In en, this message translates to:
/// **'Like'**
String get like;
/// No description provided for @save.
///
/// In en, this message translates to:
/// **'Save'**
String get save;
/// No description provided for @comments.
///
/// In en, this message translates to:
/// **'Comments'**
String get comments;
/// No description provided for @share.
///
/// In en, this message translates to:
/// **'Share'**
String get share;
/// No description provided for @noComments.
///
/// In en, this message translates to:
/// **'No comments yet.'**
String get noComments;
/// No description provided for @writeComment.
///
/// In en, this message translates to:
/// **'Write a comment'**
String get writeComment;
/// No description provided for @commentLoginHint.
///
/// In en, this message translates to:
/// **'Sign in to comment'**
String get commentLoginHint;
/// No description provided for @postComment.
///
/// In en, this message translates to:
/// **'Post'**
String get postComment;
/// No description provided for @commentPostSuccess.
///
/// In en, this message translates to:
/// **'Comment posted'**
String get commentPostSuccess;
/// No description provided for @loadMore.
///
/// In en, this message translates to:
/// **'Load more'**
String get loadMore;
/// No description provided for @commentsLoadFailed.
///
/// In en, this message translates to:
/// **'Comments could not be loaded.'**
String get commentsLoadFailed;
/// No description provided for @commentPostFailed.
///
/// In en, this message translates to:
/// **'Could not post your comment.'**
String get commentPostFailed;
/// No description provided for @delete.
///
/// In en, this message translates to:
/// **'Delete'**
String get delete;
/// No description provided for @deleteComment.
///
/// In en, this message translates to:
/// **'Delete comment'**
String get deleteComment;
/// No description provided for @deleteCommentTitle.
///
/// In en, this message translates to:
/// **'Delete this comment?'**
String get deleteCommentTitle;
/// No description provided for @deleteCommentMessage.
///
/// In en, this message translates to:
/// **'This removes your comment from the conversation.'**
String get deleteCommentMessage;
/// No description provided for @commentDeleteFailed.
///
/// In en, this message translates to:
/// **'Could not delete this comment.'**
String get commentDeleteFailed;
/// No description provided for @underReview.
///
/// In en, this message translates to:
/// **'Under review'**
String get underReview;
/// No description provided for @reply.
///
/// In en, this message translates to:
/// **'Reply'**
String get reply;
/// No description provided for @replyingTo.
///
/// In en, this message translates to:
/// **'Replying to {name}'**
String replyingTo(Object name);
/// No description provided for @cancelReply.
///
/// In en, this message translates to:
/// **'Cancel reply'**
String get cancelReply;
/// No description provided for @viewReplies.
///
/// In en, this message translates to:
/// **'View replies ({count})'**
String viewReplies(int count);
/// No description provided for @hideReplies.
///
/// In en, this message translates to:
/// **'Hide replies'**
String get hideReplies;
/// No description provided for @anonymousUser.
///
/// In en, this message translates to:
/// **'Viewer'**
String get anonymousUser;
/// No description provided for @more.
///
/// In en, this message translates to:
/// **'More'**
String get more;
/// No description provided for @likeFailed.
///
/// In en, this message translates to:
/// **'Could not update like. Please retry.'**
String get likeFailed;
/// No description provided for @reportComment.
///
/// In en, this message translates to:
/// **'Report comment'**
String get reportComment;
/// No description provided for @reportDrama.
///
/// In en, this message translates to:
/// **'Report drama'**
String get reportDrama;
/// No description provided for @reportReason.
///
/// In en, this message translates to:
/// **'Reason'**
String get reportReason;
/// No description provided for @reportReasonSpam.
///
/// In en, this message translates to:
/// **'Spam'**
String get reportReasonSpam;
/// No description provided for @reportReasonAbuse.
///
/// In en, this message translates to:
/// **'Harassment'**
String get reportReasonAbuse;
/// No description provided for @reportReasonPorn.
///
/// In en, this message translates to:
/// **'Sexual content'**
String get reportReasonPorn;
/// No description provided for @reportReasonAd.
///
/// In en, this message translates to:
/// **'Advertising'**
String get reportReasonAd;
/// No description provided for @reportReasonOther.
///
/// In en, this message translates to:
/// **'Other'**
String get reportReasonOther;
/// No description provided for @reportDescriptionHint.
///
/// In en, this message translates to:
/// **'Describe the issue (optional)'**
String get reportDescriptionHint;
/// No description provided for @reportSubmit.
///
/// In en, this message translates to:
/// **'Submit report'**
String get reportSubmit;
/// No description provided for @reportSubmitted.
///
/// In en, this message translates to:
/// **'Report submitted. Thank you.'**
String get reportSubmitted;
/// No description provided for @reportFailed.
///
/// In en, this message translates to:
/// **'Could not submit report.'**
String get reportFailed;
/// No description provided for @shareFailed.
///
/// In en, this message translates to:
/// **'Could not open the share sheet.'**
String get shareFailed;
/// No description provided for @nowPlaying.
///
/// In en, this message translates to:
/// **'Playing now'**
String get nowPlaying;
/// No description provided for @pictureInPicture.
///
/// In en, this message translates to:
/// **'Picture in picture'**
String get pictureInPicture;
/// No description provided for @pipUnavailable.
///
/// In en, this message translates to:
/// **'Picture in picture is unavailable on this device'**
String get pipUnavailable;
/// No description provided for @originalTag.
///
/// In en, this message translates to:
/// **'Original'**
String get originalTag;
/// No description provided for @dramaTag.
///
/// In en, this message translates to:
/// **'Short drama'**
String get dramaTag;
/// No description provided for @episodeLabel.
///
/// In en, this message translates to:
/// **'Episode {number}'**
String episodeLabel(int number);
/// No description provided for @exploreSeries.
///
/// In en, this message translates to:
/// **'Explore series'**
String get exploreSeries;
/// No description provided for @episodeCount.
///
/// In en, this message translates to:
/// **'{count} EPISODES'**
String episodeCount(int count);
/// No description provided for @technicalDemoCount.
///
/// In en, this message translates to:
/// **'FREE PREVIEW · {count} EPISODES'**
String technicalDemoCount(int count);
/// No description provided for @episodes.
///
/// In en, this message translates to:
/// **'Episodes'**
String get episodes;
/// No description provided for @synopsisTitle.
///
/// In en, this message translates to:
/// **'Synopsis'**
String get synopsisTitle;
/// No description provided for @watchEpisodeOne.
///
/// In en, this message translates to:
/// **'Watch episode 1'**
String get watchEpisodeOne;
/// No description provided for @continueEpisode.
///
/// In en, this message translates to:
/// **'Continue episode {number}'**
String continueEpisode(int number);
/// No description provided for @freeTestMedia.
///
/// In en, this message translates to:
/// **'Same demo clip · free'**
String get freeTestMedia;
/// No description provided for @lockedStoreUnavailable.
///
/// In en, this message translates to:
/// **'Locked · store unavailable'**
String get lockedStoreUnavailable;
/// No description provided for @freeTestClip.
///
/// In en, this message translates to:
/// **'Free test clip'**
String get freeTestClip;
/// No description provided for @locked.
///
/// In en, this message translates to:
/// **'Locked'**
String get locked;
/// No description provided for @freeSamplesNotice.
///
/// In en, this message translates to:
/// **'Two free samples · store setup pending'**
String get freeSamplesNotice;
/// No description provided for @demoTestMedia.
///
/// In en, this message translates to:
/// **'FREE · SAME DEMO CLIP'**
String get demoTestMedia;
/// No description provided for @episodeProgress.
///
/// In en, this message translates to:
/// **'EPISODE {number} / {total}'**
String episodeProgress(int number, int total);
/// No description provided for @testVideoNotice.
///
/// In en, this message translates to:
/// **'Self-generated technical test video'**
String get testVideoNotice;
/// No description provided for @lockedTitle.
///
/// In en, this message translates to:
/// **'Episode {number} is locked'**
String lockedTitle(int number);
/// No description provided for @lockedBody.
///
/// In en, this message translates to:
/// **'Unlocking will be available after store and verification setup. This demo does not process payments.'**
String get lockedBody;
/// No description provided for @playbackError.
///
/// In en, this message translates to:
/// **'This clip could not be played.'**
String get playbackError;
/// No description provided for @catalogError.
///
/// In en, this message translates to:
/// **'The catalog could not be loaded.'**
String get catalogError;
/// No description provided for @categoriesError.
///
/// In en, this message translates to:
/// **'Categories could not be loaded.'**
String get categoriesError;
/// No description provided for @detailError.
///
/// In en, this message translates to:
/// **'The episode list could not be loaded.'**
String get detailError;
/// No description provided for @noMediaNotice.
///
/// In en, this message translates to:
/// **'This episode has no playable media yet.'**
String get noMediaNotice;
/// No description provided for @noStories.
///
/// In en, this message translates to:
/// **'No stories available yet.'**
String get noStories;
/// No description provided for @notices.
///
/// In en, this message translates to:
/// **'Notices'**
String get notices;
/// No description provided for @noNotices.
///
/// In en, this message translates to:
/// **'No notices yet.'**
String get noNotices;
/// No description provided for @noticesLoadFailed.
///
/// In en, this message translates to:
/// **'Notices could not be loaded.'**
String get noticesLoadFailed;
/// No description provided for @noticeDetails.
///
/// In en, this message translates to:
/// **'Notice details'**
String get noticeDetails;
/// No description provided for @noticeAnnouncement.
///
/// In en, this message translates to:
/// **'Notice'**
String get noticeAnnouncement;
/// No description provided for @close.
///
/// In en, this message translates to:
/// **'Close'**
String get close;
/// No description provided for @carouselSemantics.
///
/// In en, this message translates to:
/// **'Banner {current} of {total}'**
String carouselSemantics(int current, int total);
/// No description provided for @retry.
///
/// In en, this message translates to:
/// **'Retry'**
String get retry;
/// No description provided for @backToSeries.
///
/// In en, this message translates to:
/// **'Back to series'**
String get backToSeries;
/// No description provided for @nextEpisode.
///
/// In en, this message translates to:
/// **'Next episode'**
String get nextEpisode;
/// No description provided for @pause.
///
/// In en, this message translates to:
/// **'Pause'**
String get pause;
/// No description provided for @play.
///
/// In en, this message translates to:
/// **'Play'**
String get play;
/// No description provided for @seekVideo.
///
/// In en, this message translates to:
/// **'Seek video'**
String get seekVideo;
/// No description provided for @seekFailed.
///
/// In en, this message translates to:
/// **'Could not change playback position.'**
String get seekFailed;
/// No description provided for @captions.
///
/// In en, this message translates to:
/// **'Captions'**
String get captions;
/// No description provided for @captionsOff.
///
/// In en, this message translates to:
/// **'Captions off'**
String get captionsOff;
/// No description provided for @englishCaptions.
///
/// In en, this message translates to:
/// **'English captions'**
String get englishCaptions;
/// No description provided for @chineseCaptions.
///
/// In en, this message translates to:
/// **'Chinese captions'**
String get chineseCaptions;
/// No description provided for @english.
///
/// In en, this message translates to:
/// **'English'**
String get english;
/// No description provided for @simplifiedChinese.
///
/// In en, this message translates to:
/// **'简体中文'**
String get simplifiedChinese;
/// No description provided for @bahasaIndonesia.
///
/// In en, this message translates to:
/// **'Bahasa Indonesia'**
String get bahasaIndonesia;
/// No description provided for @episodeOneTitle.
///
/// In en, this message translates to:
/// **'First Light'**
String get episodeOneTitle;
/// No description provided for @episodeTwoTitle.
///
/// In en, this message translates to:
/// **'A New Frequency'**
String get episodeTwoTitle;
/// No description provided for @episodeThreeTitle.
///
/// In en, this message translates to:
/// **'Crossing Over'**
String get episodeThreeTitle;
/// No description provided for @episodeFourTitle.
///
/// In en, this message translates to:
/// **'After the Echo'**
String get episodeFourTitle;
/// No description provided for @dramaSignalTitle.
///
/// In en, this message translates to:
/// **'The Signal'**
String get dramaSignalTitle;
/// No description provided for @dramaSignalSynopsis.
///
/// In en, this message translates to:
/// **'A demo series for vertical playback. Every episode reuses one local clip.'**
String get dramaSignalSynopsis;
/// No description provided for @dramaCityTitle.
///
/// In en, this message translates to:
/// **'City Lights & Velvet Nights'**
String get dramaCityTitle;
/// No description provided for @dramaCitySynopsis.
///
/// In en, this message translates to:
/// **'A demo romance series. The same local video is used to try switching and resume.'**
String get dramaCitySynopsis;
/// No description provided for @dramaVengeanceTitle.
///
/// In en, this message translates to:
/// **'Vengeance Rising'**
String get dramaVengeanceTitle;
/// No description provided for @dramaVengeanceSynopsis.
///
/// In en, this message translates to:
/// **'A demo action series. The same local video is used to try switching and resume.'**
String get dramaVengeanceSynopsis;
/// No description provided for @dramaEchoesTitle.
///
/// In en, this message translates to:
/// **'Echoes of Fate'**
String get dramaEchoesTitle;
/// No description provided for @genreSuspenseMystery.
///
/// In en, this message translates to:
/// **'Suspense · Mystery'**
String get genreSuspenseMystery;
/// No description provided for @genreUrbanRomance.
///
/// In en, this message translates to:
/// **'Urban Romance'**
String get genreUrbanRomance;
/// No description provided for @genreActionThriller.
///
/// In en, this message translates to:
/// **'Action · Thriller'**
String get genreActionThriller;
/// No description provided for @genreDramaMystery.
///
/// In en, this message translates to:
/// **'Drama · Mystery'**
String get genreDramaMystery;
/// No description provided for @continueWatchingHeading.
///
/// In en, this message translates to:
/// **'CONTINUE WATCHING'**
String get continueWatchingHeading;
/// No description provided for @preferencesHeading.
///
/// In en, this message translates to:
/// **'PREFERENCES'**
String get preferencesHeading;
/// No description provided for @brandMark.
///
/// In en, this message translates to:
/// **'FRUITSHORTS'**
String get brandMark;
/// No description provided for @shareFooter.
///
/// In en, this message translates to:
/// **'FruitShorts'**
String get shareFooter;
/// No description provided for @shortsTab.
///
/// In en, this message translates to:
/// **'Shorts'**
String get shortsTab;
/// No description provided for @myListTab.
///
/// In en, this message translates to:
/// **'My List'**
String get myListTab;
/// No description provided for @watchFull.
///
/// In en, this message translates to:
/// **'Watch Full'**
String get watchFull;
/// No description provided for @swipeForNext.
///
/// In en, this message translates to:
/// **'Swipe up for next'**
String get swipeForNext;
/// No description provided for @logIn.
///
/// In en, this message translates to:
/// **'Log in'**
String get logIn;
/// No description provided for @logInHint.
///
/// In en, this message translates to:
/// **'Keep your coins and list'**
String get logInHint;
/// No description provided for @rewards.
///
/// In en, this message translates to:
/// **'Rewards'**
String get rewards;
/// No description provided for @forYou.
///
/// In en, this message translates to:
/// **'For You'**
String get forYou;
/// No description provided for @hot.
///
/// In en, this message translates to:
/// **'Hot'**
String get hot;
/// No description provided for @newest.
///
/// In en, this message translates to:
/// **'New'**
String get newest;
/// No description provided for @favorite.
///
/// In en, this message translates to:
/// **'Favorite'**
String get favorite;
/// No description provided for @myAccount.
///
/// In en, this message translates to:
/// **'My account'**
String get myAccount;
/// No description provided for @myWorks.
///
/// In en, this message translates to:
/// **'My works'**
String get myWorks;
/// No description provided for @creatorCenter.
///
/// In en, this message translates to:
/// **'Creator center'**
String get creatorCenter;
/// No description provided for @helpFeedback.
///
/// In en, this message translates to:
/// **'Help & feedback'**
String get helpFeedback;
/// No description provided for @vipUnlockMessage.
///
/// In en, this message translates to:
/// **'Unlock more with membership'**
String get vipUnlockMessage;
/// No description provided for @coins.
///
/// In en, this message translates to:
/// **'Coins'**
String get coins;
/// No description provided for @topUpWallet.
///
/// In en, this message translates to:
/// **'Top Up Wallet'**
String get topUpWallet;
/// No description provided for @vipMembership.
///
/// In en, this message translates to:
/// **'VIP Membership'**
String get vipMembership;
/// No description provided for @notActive.
///
/// In en, this message translates to:
/// **'Not Active'**
String get notActive;
/// No description provided for @joinVip.
///
/// In en, this message translates to:
/// **'Join VIP'**
String get joinVip;
/// No description provided for @earnRewards.
///
/// In en, this message translates to:
/// **'Earn Rewards'**
String get earnRewards;
/// No description provided for @freeBonus.
///
/// In en, this message translates to:
/// **'Get Free Bonus'**
String get freeBonus;
/// No description provided for @watchHistory.
///
/// In en, this message translates to:
/// **'Watch History'**
String get watchHistory;
/// No description provided for @settings.
///
/// In en, this message translates to:
/// **'Settings'**
String get settings;
/// No description provided for @serverAddress.
///
/// In en, this message translates to:
/// **'Server address'**
String get serverAddress;
/// No description provided for @serverSettings.
///
/// In en, this message translates to:
/// **'Server settings'**
String get serverSettings;
/// No description provided for @serverAddressHint.
///
/// In en, this message translates to:
/// **'http(s)://host:port'**
String get serverAddressHint;
/// No description provided for @saveAddress.
///
/// In en, this message translates to:
/// **'Save address'**
String get saveAddress;
/// No description provided for @restartToApply.
///
/// In en, this message translates to:
/// **'Restart the app to apply.'**
String get restartToApply;
/// No description provided for @restoreDefault.
///
/// In en, this message translates to:
/// **'Restore default'**
String get restoreDefault;
/// No description provided for @invalidServerAddress.
///
/// In en, this message translates to:
/// **'Enter a valid http(s) server address.'**
String get invalidServerAddress;
/// No description provided for @signOut.
///
/// In en, this message translates to:
/// **'Sign Out'**
String get signOut;
/// No description provided for @mockUserName.
///
/// In en, this message translates to:
/// **'Vicky sheng'**
String get mockUserName;
/// No description provided for @mockUserId.
///
/// In en, this message translates to:
/// **'ID: M1CZWVYE'**
String get mockUserId;
/// No description provided for @mockNotice.
///
/// In en, this message translates to:
/// **'Sample data only.'**
String get mockNotice;
/// No description provided for @topBadge.
///
/// In en, this message translates to:
/// **'TOP 1'**
String get topBadge;
/// No description provided for @signIn.
///
/// In en, this message translates to:
/// **'Sign In'**
String get signIn;
/// No description provided for @signUp.
///
/// In en, this message translates to:
/// **'Sign Up'**
String get signUp;
/// No description provided for @authSignInTitle.
///
/// In en, this message translates to:
/// **'Welcome back'**
String get authSignInTitle;
/// No description provided for @authSignUpTitle.
///
/// In en, this message translates to:
/// **'Create your account'**
String get authSignUpTitle;
/// No description provided for @authSubtitle.
///
/// In en, this message translates to:
/// **'Sign in with your email and password.'**
String get authSubtitle;
/// No description provided for @authSignUpSubtitle.
///
/// In en, this message translates to:
/// **'Create an account to keep your list, history, and progress.'**
String get authSignUpSubtitle;
/// No description provided for @authBrandTagline.
///
/// In en, this message translates to:
/// **'Short dramas made for Indonesia'**
String get authBrandTagline;
/// No description provided for @authEmailLabel.
///
/// In en, this message translates to:
/// **'Email'**
String get authEmailLabel;
/// No description provided for @authPasswordLabel.
///
/// In en, this message translates to:
/// **'Password'**
String get authPasswordLabel;
/// No description provided for @authPasswordHint.
///
/// In en, this message translates to:
/// **'At least 8 characters, letters and numbers'**
String get authPasswordHint;
/// No description provided for @authEmailRequired.
///
/// In en, this message translates to:
/// **'Enter your email'**
String get authEmailRequired;
/// No description provided for @authEmailInvalid.
///
/// In en, this message translates to:
/// **'That email doesn\'t look right'**
String get authEmailInvalid;
/// No description provided for @authPasswordRequired.
///
/// In en, this message translates to:
/// **'Enter your password'**
String get authPasswordRequired;
/// No description provided for @authPasswordLength.
///
/// In en, this message translates to:
/// **'Password must be 8-64 characters'**
String get authPasswordLength;
/// No description provided for @authPasswordWeak.
///
/// In en, this message translates to:
/// **'Password needs both letters and numbers'**
String get authPasswordWeak;
/// No description provided for @authNetworkError.
///
/// In en, this message translates to:
/// **'Network error, please try again'**
String get authNetworkError;
/// No description provided for @authServerError.
///
/// In en, this message translates to:
/// **'The service is busy. Please try again shortly.'**
String get authServerError;
/// No description provided for @apiErrorBadRequest.
///
/// In en, this message translates to:
/// **'Invalid request'**
String get apiErrorBadRequest;
/// No description provided for @apiErrorUnauthorized.
///
/// In en, this message translates to:
/// **'Sign in to continue'**
String get apiErrorUnauthorized;
/// No description provided for @apiErrorForbidden.
///
/// In en, this message translates to:
/// **'You don\'t have permission'**
String get apiErrorForbidden;
/// No description provided for @apiErrorNotFound.
///
/// In en, this message translates to:
/// **'Not found'**
String get apiErrorNotFound;
/// No description provided for @apiErrorTooManyRequests.
///
/// In en, this message translates to:
/// **'Too many requests. Please try again later.'**
String get apiErrorTooManyRequests;
/// No description provided for @apiErrorLoginFailed.
///
/// In en, this message translates to:
/// **'Incorrect account or password'**
String get apiErrorLoginFailed;
/// No description provided for @apiErrorAccountDisabled.
///
/// In en, this message translates to:
/// **'This account has been disabled'**
String get apiErrorAccountDisabled;
/// No description provided for @apiErrorCoinNotEnough.
///
/// In en, this message translates to:
/// **'Not enough coins'**
String get apiErrorCoinNotEnough;
/// No description provided for @apiErrorEpisodeUnavailable.
///
/// In en, this message translates to:
/// **'This episode is unavailable'**
String get apiErrorEpisodeUnavailable;
/// No description provided for @apiErrorEpisodeUnlocked.
///
/// In en, this message translates to:
/// **'This episode is already unlocked'**
String get apiErrorEpisodeUnlocked;
/// No description provided for @apiErrorOrderInvalid.
///
/// In en, this message translates to:
/// **'This order is already paid or closed'**
String get apiErrorOrderInvalid;
/// No description provided for @apiErrorVipExpired.
///
/// In en, this message translates to:
/// **'Membership has expired'**
String get apiErrorVipExpired;
/// No description provided for @apiErrorDataExists.
///
/// In en, this message translates to:
/// **'This record already exists'**
String get apiErrorDataExists;
/// No description provided for @apiErrorDataNotFound.
///
/// In en, this message translates to:
/// **'Not found'**
String get apiErrorDataNotFound;
/// No description provided for @apiErrorNotAllowed.
///
/// In en, this message translates to:
/// **'This action isn\'t available right now'**
String get apiErrorNotAllowed;
/// No description provided for @authSwitchToSignUp.
///
/// In en, this message translates to:
/// **'New here? Create an account'**
String get authSwitchToSignUp;
/// No description provided for @authSwitchToSignIn.
///
/// In en, this message translates to:
/// **'Already have an account? Sign in'**
String get authSwitchToSignIn;
/// No description provided for @authGateTitle.
///
/// In en, this message translates to:
/// **'Sign in to continue'**
String get authGateTitle;
/// No description provided for @authGateMessage.
///
/// In en, this message translates to:
/// **'Watch history, favorites, comments and downloads need an account.'**
String get authGateMessage;
/// No description provided for @authGateAction.
///
/// In en, this message translates to:
/// **'Sign In'**
String get authGateAction;
/// No description provided for @showPassword.
///
/// In en, this message translates to:
/// **'Show password'**
String get showPassword;
/// No description provided for @hidePassword.
///
/// In en, this message translates to:
/// **'Hide password'**
String get hidePassword;
/// No description provided for @cancel.
///
/// In en, this message translates to:
/// **'Not now'**
String get cancel;
/// No description provided for @noEpisodesYet.
///
/// In en, this message translates to:
/// **'No playable episodes yet.'**
String get noEpisodesYet;
/// No description provided for @networkError.
///
/// In en, this message translates to:
/// **'Network is unreachable. Please check your connection and retry.'**
String get networkError;
/// No description provided for @progressError.
///
/// In en, this message translates to:
/// **'Your watch position could not be loaded.'**
String get progressError;
/// No description provided for @favoritesError.
///
/// In en, this message translates to:
/// **'Your favorites could not be loaded.'**
String get favoritesError;
/// No description provided for @favoriteToggleFailed.
///
/// In en, this message translates to:
/// **'Could not update favorites. Please retry.'**
String get favoriteToggleFailed;
/// No description provided for @myFavorites.
///
/// In en, this message translates to:
/// **'My favorites'**
String get myFavorites;
/// No description provided for @noFavorites.
///
/// In en, this message translates to:
/// **'No favorites yet.'**
String get noFavorites;
/// No description provided for @downloads.
///
/// In en, this message translates to:
/// **'Downloads'**
String get downloads;
/// No description provided for @downloadsError.
///
/// In en, this message translates to:
/// **'Download settings could not be loaded.'**
String get downloadsError;
/// No description provided for @noDownloads.
///
/// In en, this message translates to:
/// **'No download authorizations yet.'**
String get noDownloads;
/// No description provided for @downloadedItems.
///
/// In en, this message translates to:
/// **'Download authorizations'**
String get downloadedItems;
/// No description provided for @downloadQuota.
///
/// In en, this message translates to:
/// **'{remaining} of {max} authorizations available'**
String downloadQuota(int remaining, int max);
/// No description provided for @downloadLicenseDays.
///
/// In en, this message translates to:
/// **'Authorization valid for {days} days'**
String downloadLicenseDays(int days);
/// No description provided for @downloadWifiOnly.
///
/// In en, this message translates to:
/// **'Wi-Fi only'**
String get downloadWifiOnly;
/// No description provided for @downloadQuality.
///
/// In en, this message translates to:
/// **'Maximum quality'**
String get downloadQuality;
/// No description provided for @downloadStatus.
///
/// In en, this message translates to:
/// **'Authorization: {status}'**
String downloadStatus(Object status);
/// No description provided for @downloadTaskStatus.
///
/// In en, this message translates to:
/// **'Task: {status}'**
String downloadTaskStatus(Object status);
/// No description provided for @downloadProgress.
///
/// In en, this message translates to:
/// **'{progress}%'**
String downloadProgress(int progress);
/// No description provided for @downloadExpiresAt.
///
/// In en, this message translates to:
/// **'Expires {time}'**
String downloadExpiresAt(Object time);
/// No description provided for @clearDownloadsTitle.
///
/// In en, this message translates to:
/// **'Clear download authorizations?'**
String get clearDownloadsTitle;
/// No description provided for @clearDownloadsMessage.
///
/// In en, this message translates to:
/// **'This revokes every download authorization for this device.'**
String get clearDownloadsMessage;
/// No description provided for @downloadSettingsFailed.
///
/// In en, this message translates to:
/// **'Could not update download settings.'**
String get downloadSettingsFailed;
/// No description provided for @downloadDeleteFailed.
///
/// In en, this message translates to:
/// **'Could not remove this download authorization.'**
String get downloadDeleteFailed;
/// No description provided for @downloadClearFailed.
///
/// In en, this message translates to:
/// **'Could not clear download authorizations.'**
String get downloadClearFailed;
/// No description provided for @downloadGrantFailed.
///
/// In en, this message translates to:
/// **'Could not request this download.'**
String get downloadGrantFailed;
/// No description provided for @downloadGranted.
///
/// In en, this message translates to:
/// **'Download authorization is ready.'**
String get downloadGranted;
/// No description provided for @noWatchRecords.
///
/// In en, this message translates to:
/// **'No watch history yet.'**
String get noWatchRecords;
/// No description provided for @recordDeleteFailed.
///
/// In en, this message translates to:
/// **'Could not delete this record. Please retry.'**
String get recordDeleteFailed;
/// No description provided for @recordClearFailed.
///
/// In en, this message translates to:
/// **'Could not clear watch history. Please retry.'**
String get recordClearFailed;
/// No description provided for @clearAll.
///
/// In en, this message translates to:
/// **'Clear all'**
String get clearAll;
/// No description provided for @watchRecordsCount.
///
/// In en, this message translates to:
/// **'{count} records'**
String watchRecordsCount(int count);
/// No description provided for @favoritesCount.
///
/// In en, this message translates to:
/// **'{count} favorites'**
String favoritesCount(int count);
/// No description provided for @clearWatchHistoryTitle.
///
/// In en, this message translates to:
/// **'Clear watch history?'**
String get clearWatchHistoryTitle;
/// No description provided for @clearWatchHistoryMessage.
///
/// In en, this message translates to:
/// **'This removes the watch history from your account.'**
String get clearWatchHistoryMessage;
/// No description provided for @confirmClear.
///
/// In en, this message translates to:
/// **'Clear'**
String get confirmClear;
/// No description provided for @detailLoadFailed.
///
/// In en, this message translates to:
/// **'Details failed to load'**
String get detailLoadFailed;
/// No description provided for @retryDetail.
///
/// In en, this message translates to:
/// **'Retry'**
String get retryDetail;
/// No description provided for @episodeUnavailable.
///
/// In en, this message translates to:
/// **'Episode unavailable'**
String get episodeUnavailable;
/// No description provided for @updatedAtLabel.
///
/// In en, this message translates to:
/// **'Updated {time}'**
String updatedAtLabel(Object time);
/// No description provided for @remove.
///
/// In en, this message translates to:
/// **'Remove'**
String get remove;
/// No description provided for @unlockComingSoon.
///
/// In en, this message translates to:
/// **'Unlocking with coins is coming soon.'**
String get unlockComingSoon;
/// No description provided for @resumeProgress.
///
/// In en, this message translates to:
/// **'Resume at {position} / {total}'**
String resumeProgress(Object position, Object total);
/// No description provided for @accountCenter.
///
/// In en, this message translates to:
/// **'Account'**
String get accountCenter;
/// No description provided for @accountProfile.
///
/// In en, this message translates to:
/// **'Profile'**
String get accountProfile;
/// No description provided for @accountDevices.
///
/// In en, this message translates to:
/// **'Login devices'**
String get accountDevices;
/// No description provided for @accountDataExport.
///
/// In en, this message translates to:
/// **'Data export'**
String get accountDataExport;
/// No description provided for @accountDeactivate.
///
/// In en, this message translates to:
/// **'Delete account'**
String get accountDeactivate;
/// No description provided for @accountProfileLoadFailed.
///
/// In en, this message translates to:
/// **'Could not load your profile.'**
String get accountProfileLoadFailed;
/// No description provided for @accountProfileSaveFailed.
///
/// In en, this message translates to:
/// **'Could not save your profile.'**
String get accountProfileSaveFailed;
/// No description provided for @accountNickname.
///
/// In en, this message translates to:
/// **'Nickname'**
String get accountNickname;
/// No description provided for @accountNicknameInvalid.
///
/// In en, this message translates to:
/// **'Enter 1 to 30 characters.'**
String get accountNicknameInvalid;
/// No description provided for @accountGender.
///
/// In en, this message translates to:
/// **'Gender'**
String get accountGender;
/// No description provided for @accountMale.
///
/// In en, this message translates to:
/// **'Male'**
String get accountMale;
/// No description provided for @accountFemale.
///
/// In en, this message translates to:
/// **'Female'**
String get accountFemale;
/// No description provided for @accountUnknownGender.
///
/// In en, this message translates to:
/// **'Prefer not to say'**
String get accountUnknownGender;
/// No description provided for @accountSelectBirthday.
///
/// In en, this message translates to:
/// **'Set birthday'**
String get accountSelectBirthday;
/// No description provided for @accountBirthdayHint.
///
/// In en, this message translates to:
/// **'Birthday can be set but not cleared in this version.'**
String get accountBirthdayHint;
/// No description provided for @accountSaved.
///
/// In en, this message translates to:
/// **'Profile saved.'**
String get accountSaved;
/// No description provided for @accountReadOnlyInfo.
///
/// In en, this message translates to:
/// **'Account information'**
String get accountReadOnlyInfo;
/// No description provided for @accountUid.
///
/// In en, this message translates to:
/// **'UID'**
String get accountUid;
/// No description provided for @accountMaskedAccount.
///
/// In en, this message translates to:
/// **'Account'**
String get accountMaskedAccount;
/// No description provided for @accountCountry.
///
/// In en, this message translates to:
/// **'Country'**
String get accountCountry;
/// No description provided for @accountCurrency.
///
/// In en, this message translates to:
/// **'Currency'**
String get accountCurrency;
/// No description provided for @accountStatus.
///
/// In en, this message translates to:
/// **'Status'**
String get accountStatus;
/// No description provided for @accountLanguage.
///
/// In en, this message translates to:
/// **'Language'**
String get accountLanguage;
/// No description provided for @accountTimezone.
///
/// In en, this message translates to:
/// **'Time zone'**
String get accountTimezone;
/// No description provided for @accountRegion.
///
/// In en, this message translates to:
/// **'Region'**
String get accountRegion;
/// No description provided for @accountVipLevel.
///
/// In en, this message translates to:
/// **'VIP level'**
String get accountVipLevel;
/// No description provided for @accountCreatedAt.
///
/// In en, this message translates to:
/// **'Registered'**
String get accountCreatedAt;
/// No description provided for @accountLastLogin.
///
/// In en, this message translates to:
/// **'Last login'**
String get accountLastLogin;
/// No description provided for @accountDevicesEmpty.
///
/// In en, this message translates to:
/// **'No login devices found.'**
String get accountDevicesEmpty;
/// No description provided for @accountDevicesLoadFailed.
///
/// In en, this message translates to:
/// **'Could not load devices.'**
String get accountDevicesLoadFailed;
/// No description provided for @accountPlatform.
///
/// In en, this message translates to:
/// **'Platform'**
String get accountPlatform;
/// No description provided for @accountDeviceId.
///
/// In en, this message translates to:
/// **'Device ID'**
String get accountDeviceId;
/// No description provided for @accountFirstSeen.
///
/// In en, this message translates to:
/// **'First seen'**
String get accountFirstSeen;
/// No description provided for @accountLastActive.
///
/// In en, this message translates to:
/// **'Last active'**
String get accountLastActive;
/// No description provided for @accountDeviceActive.
///
/// In en, this message translates to:
/// **'Active'**
String get accountDeviceActive;
/// No description provided for @accountDeviceInactive.
///
/// In en, this message translates to:
/// **'Inactive'**
String get accountDeviceInactive;
/// No description provided for @accountExportLoadFailed.
///
/// In en, this message translates to:
/// **'Could not export account data.'**
String get accountExportLoadFailed;
/// No description provided for @accountCredentials.
///
/// In en, this message translates to:
/// **'Sign-in credentials'**
String get accountCredentials;
/// No description provided for @accountConsentRecords.
///
/// In en, this message translates to:
/// **'Consent records'**
String get accountConsentRecords;
/// No description provided for @accountDeviceCount.
///
/// In en, this message translates to:
/// **'Devices'**
String get accountDeviceCount;
/// No description provided for @accountCopyJson.
///
/// In en, this message translates to:
/// **'Copy full JSON'**
String get accountCopyJson;
/// No description provided for @accountCopied.
///
/// In en, this message translates to:
/// **'Account data copied.'**
String get accountCopied;
/// No description provided for @accountVerified.
///
/// In en, this message translates to:
/// **'Verified'**
String get accountVerified;
/// No description provided for @accountUnverified.
///
/// In en, this message translates to:
/// **'Unverified'**
String get accountUnverified;
/// No description provided for @accountDeactivateWarning.
///
/// In en, this message translates to:
/// **'Requests enter a 15-day cooling-off period. All devices are signed out immediately.'**
String get accountDeactivateWarning;
/// No description provided for @accountDeactivateReason.
///
/// In en, this message translates to:
/// **'Reason (optional)'**
String get accountDeactivateReason;
/// No description provided for @accountDeactivateReasonHint.
///
/// In en, this message translates to:
/// **'Add more detail here'**
String get accountDeactivateReasonHint;
/// No description provided for @accountRequestDeactivate.
///
/// In en, this message translates to:
/// **'Request account deletion'**
String get accountRequestDeactivate;
/// No description provided for @accountConfirmDeactivateTitle.
///
/// In en, this message translates to:
/// **'Request account deletion?'**
String get accountConfirmDeactivateTitle;
/// No description provided for @accountConfirmDeactivateMessage.
///
/// In en, this message translates to:
/// **'All devices will be signed out immediately. You can cancel during the 15-day cooling-off period after signing in again.'**
String get accountConfirmDeactivateMessage;
/// No description provided for @accountConfirmDeactivate.
///
/// In en, this message translates to:
/// **'Confirm'**
String get accountConfirmDeactivate;
/// No description provided for @accountScheduledFor.
///
/// In en, this message translates to:
/// **'Deletion scheduled for {time}'**
String accountScheduledFor(Object time);
/// No description provided for @accountCancelDeactivation.
///
/// In en, this message translates to:
/// **'Cancel deletion request'**
String get accountCancelDeactivation;
/// No description provided for @accountCancelSucceeded.
///
/// In en, this message translates to:
/// **'Deletion request cancelled.'**
String get accountCancelSucceeded;
/// No description provided for @accountDeactivateFailed.
///
/// In en, this message translates to:
/// **'Could not request account deletion.'**
String get accountDeactivateFailed;
/// No description provided for @accountCancelFailed.
///
/// In en, this message translates to:
/// **'Could not cancel the deletion request.'**
String get accountCancelFailed;
/// No description provided for @authPhoneTitle.
///
/// In en, this message translates to:
/// **'Continue with phone'**
String get authPhoneTitle;
/// No description provided for @authPhoneSignUp.
///
/// In en, this message translates to:
/// **'Create an account with phone'**
String get authPhoneSignUp;
/// No description provided for @authPhoneLabel.
///
/// In en, this message translates to:
/// **'Phone number'**
String get authPhoneLabel;
/// No description provided for @authPhoneHint.
///
/// In en, this message translates to:
/// **'0812 3456 7890'**
String get authPhoneHint;
/// No description provided for @authPhoneInvalid.
///
/// In en, this message translates to:
/// **'Enter a valid phone number'**
String get authPhoneInvalid;
/// No description provided for @authCodeLabel.
///
/// In en, this message translates to:
/// **'Verification code'**
String get authCodeLabel;
/// No description provided for @authCodeHint.
///
/// In en, this message translates to:
/// **'6-digit code'**
String get authCodeHint;
/// No description provided for @authCodeRequired.
///
/// In en, this message translates to:
/// **'Enter the verification code'**
String get authCodeRequired;
/// No description provided for @authSendCode.
///
/// In en, this message translates to:
/// **'Send code'**
String get authSendCode;
/// No description provided for @authResendCode.
///
/// In en, this message translates to:
/// **'Resend in {seconds}s'**
String authResendCode(int seconds);
/// No description provided for @authCodeSent.
///
/// In en, this message translates to:
/// **'Verification code sent.'**
String get authCodeSent;
/// No description provided for @authPhoneSignInAction.
///
/// In en, this message translates to:
/// **'Sign in'**
String get authPhoneSignInAction;
/// No description provided for @authPhoneSignUpAction.
///
/// In en, this message translates to:
/// **'Create account'**
String get authPhoneSignUpAction;
/// No description provided for @unlockWithCoins.
///
/// In en, this message translates to:
/// **'Unlock with coins'**
String get unlockWithCoins;
/// No description provided for @unlockFailed.
///
/// In en, this message translates to:
/// **'Could not unlock this episode.'**
String get unlockFailed;
/// No description provided for @wallet.
///
/// In en, this message translates to:
/// **'Wallet'**
String get wallet;
/// No description provided for @coinBalance.
///
/// In en, this message translates to:
/// **'Coin balance'**
String get coinBalance;
/// No description provided for @coinLedger.
///
/// In en, this message translates to:
/// **'Coin activity'**
String get coinLedger;
/// No description provided for @noCoinLedger.
///
/// In en, this message translates to:
/// **'No coin activity yet.'**
String get noCoinLedger;
/// No description provided for @walletLoadFailed.
///
/// In en, this message translates to:
/// **'Could not load your wallet.'**
String get walletLoadFailed;
/// No description provided for @walletBalanceShort.
///
/// In en, this message translates to:
/// **'{coins} coins'**
String walletBalanceShort(int coins);
/// No description provided for @insufficientCoins.
///
/// In en, this message translates to:
/// **'Not enough coins.'**
String get insufficientCoins;
/// No description provided for @rechargeUnavailable.
///
/// In en, this message translates to:
/// **'Top-up is not available yet.'**
String get rechargeUnavailable;
/// No description provided for @totalRecharged.
///
/// In en, this message translates to:
/// **'Total recharged'**
String get totalRecharged;
/// No description provided for @totalConsumed.
///
/// In en, this message translates to:
/// **'Total spent'**
String get totalConsumed;
/// No description provided for @ledgerUnlock.
///
/// In en, this message translates to:
/// **'Episode unlock'**
String get ledgerUnlock;
/// No description provided for @ledgerRecharge.
///
/// In en, this message translates to:
/// **'Coin top-up'**
String get ledgerRecharge;
/// No description provided for @ledgerRefund.
///
/// In en, this message translates to:
/// **'Refund'**
String get ledgerRefund;
/// No description provided for @ledgerAdjustment.
///
/// In en, this message translates to:
/// **'Adjustment'**
String get ledgerAdjustment;
/// No description provided for @rankingTab.
///
/// In en, this message translates to:
/// **'Charts'**
String get rankingTab;
/// No description provided for @rankingTitle.
///
/// In en, this message translates to:
/// **'Top Charts'**
String get rankingTitle;
/// No description provided for @rankingSubtitle.
///
/// In en, this message translates to:
/// **'Ranked live by play heat'**
String get rankingSubtitle;
/// No description provided for @rankingHot.
///
/// In en, this message translates to:
/// **'Trending'**
String get rankingHot;
/// No description provided for @rankingNew.
///
/// In en, this message translates to:
/// **'New releases'**
String get rankingNew;
/// No description provided for @newReleasesAll.
///
/// In en, this message translates to:
/// **'All new releases'**
String get newReleasesAll;
/// No description provided for @newReleasesSubtitle.
///
/// In en, this message translates to:
/// **'Newest arrivals'**
String get newReleasesSubtitle;
/// No description provided for @reserveSubtitle.
///
/// In en, this message translates to:
/// **'Reserve before launch'**
String get reserveSubtitle;
/// No description provided for @reserveEmptyTitle.
///
/// In en, this message translates to:
/// **'No reservations yet'**
String get reserveEmptyTitle;
/// No description provided for @reserveEmptyHint.
///
/// In en, this message translates to:
/// **'Reserve new dramas here once announced'**
String get reserveEmptyHint;
/// No description provided for @topLabel.
///
/// In en, this message translates to:
/// **'TOP {n}'**
String topLabel(int n);
/// No description provided for @rankingEmptyTitle.
///
/// In en, this message translates to:
/// **'No ranked stories yet'**
String get rankingEmptyTitle;
/// No description provided for @rankingEmptyBody.
///
/// In en, this message translates to:
/// **'Titles appear here as soon as they are published.'**
String get rankingEmptyBody;
/// No description provided for @rankingTopPick.
///
/// In en, this message translates to:
/// **'TOP PICK'**
String get rankingTopPick;
/// No description provided for @rechargeTitle.
///
/// In en, this message translates to:
/// **'Top Up Coins'**
String get rechargeTitle;
/// No description provided for @vipTitle.
///
/// In en, this message translates to:
/// **'VIP Membership'**
String get vipTitle;
/// No description provided for @buy.
///
/// In en, this message translates to:
/// **'Buy'**
String get buy;
/// No description provided for @bonusCoin.
///
/// In en, this message translates to:
/// **'+{bonus} bonus'**
String bonusCoin(int bonus);
/// No description provided for @vipDuration.
///
/// In en, this message translates to:
/// **'{days}-day VIP'**
String vipDuration(int days);
/// No description provided for @noCoinPacks.
///
/// In en, this message translates to:
/// **'No coin packs available right now.'**
String get noCoinPacks;
/// No description provided for @noVipPlans.
///
/// In en, this message translates to:
/// **'No VIP plans available right now.'**
String get noVipPlans;
/// No description provided for @productsLoadFailed.
///
/// In en, this message translates to:
/// **'Could not load products.'**
String get productsLoadFailed;
/// No description provided for @orderCreated.
///
/// In en, this message translates to:
/// **'Order {orderNo} created.'**
String orderCreated(String orderNo);
/// No description provided for @paymentPending.
///
/// In en, this message translates to:
/// **'Waiting for payment.'**
String get paymentPending;
/// No description provided for @orderCreateFailed.
///
/// In en, this message translates to:
/// **'Could not create the order.'**
String get orderCreateFailed;
/// No description provided for @playbackQuality.
///
/// In en, this message translates to:
/// **'Quality'**
String get playbackQuality;
/// No description provided for @qualitySwitched.
///
/// In en, this message translates to:
/// **'Switched to {quality}'**
String qualitySwitched(String quality);
/// No description provided for @qualityAuto.
///
/// In en, this message translates to:
/// **'Auto'**
String get qualityAuto;
/// No description provided for @qualityAutoHint.
///
/// In en, this message translates to:
/// **'HLS adjusts the bitrate automatically for your connection.'**
String get qualityAutoHint;
/// No description provided for @searchFailed.
///
/// In en, this message translates to:
/// **'Search failed. Please try again.'**
String get searchFailed;
/// No description provided for @searchResultCount.
///
/// In en, this message translates to:
/// **'{count} results'**
String searchResultCount(int count);
/// No description provided for @episodeCountLabel.
///
/// In en, this message translates to:
/// **'{count} episodes'**
String episodeCountLabel(int count);
/// No description provided for @commentsWithCount.
///
/// In en, this message translates to:
/// **'{count} comments'**
String commentsWithCount(int count);
/// No description provided for @textSize.
///
/// In en, this message translates to:
/// **'Text size'**
String get textSize;
/// No description provided for @textSizeSmall.
///
/// In en, this message translates to:
/// **'Small'**
String get textSizeSmall;
/// No description provided for @textSizeStandard.
///
/// In en, this message translates to:
/// **'Standard'**
String get textSizeStandard;
/// No description provided for @textSizeLarge.
///
/// In en, this message translates to:
/// **'Large'**
String get textSizeLarge;
/// No description provided for @watchAdToUnlock.
///
/// In en, this message translates to:
/// **'Watch an ad to unlock'**
String get watchAdToUnlock;
/// No description provided for @unlockWithVip.
///
/// In en, this message translates to:
/// **'Unlock with VIP'**
String get unlockWithVip;
/// No description provided for @unlockMethodsVary.
///
/// In en, this message translates to:
/// **'Available unlock methods vary by title.'**
String get unlockMethodsVary;
/// No description provided for @unlockEpisode.
///
/// In en, this message translates to:
/// **'Unlock this episode'**
String get unlockEpisode;
/// No description provided for @language.
///
/// In en, this message translates to:
/// **'Language'**
String get language;
/// No description provided for @freeWatch.
///
/// In en, this message translates to:
/// **'Free watch'**
String get freeWatch;
/// No description provided for @qualityUnavailable.
///
/// In en, this message translates to:
/// **'Unavailable'**
String get qualityUnavailable;
/// No description provided for @notInterested.
///
/// In en, this message translates to:
/// **'Not interested'**
String get notInterested;
/// No description provided for @clearPlayback.
///
/// In en, this message translates to:
/// **'Clear-screen playback'**
String get clearPlayback;
/// No description provided for @danmakuUnavailable.
///
/// In en, this message translates to:
/// **'Coming soon'**
String get danmakuUnavailable;
/// No description provided for @danmakuSettings.
///
/// In en, this message translates to:
/// **'Danmaku settings'**
String get danmakuSettings;
/// No description provided for @offlineCache.
///
/// In en, this message translates to:
/// **'Offline cache'**
String get offlineCache;
/// No description provided for @screenCast.
///
/// In en, this message translates to:
/// **'Cast'**
String get screenCast;
/// No description provided for @sleepTimer.
///
/// In en, this message translates to:
/// **'Sleep timer'**
String get sleepTimer;
/// No description provided for @homeSearchHint.
///
/// In en, this message translates to:
/// **'Search dramas, actors, genres...'**
String get homeSearchHint;
/// No description provided for @homeSectionFeatured.
///
/// In en, this message translates to:
/// **'Featured'**
String get homeSectionFeatured;
/// No description provided for @homeSectionNew.
///
/// In en, this message translates to:
/// **'New'**
String get homeSectionNew;
/// No description provided for @homeSectionCategories.
///
/// In en, this message translates to:
/// **'Categories'**
String get homeSectionCategories;
/// No description provided for @homeSectionRanking.
///
/// In en, this message translates to:
/// **'Charts'**
String get homeSectionRanking;
/// No description provided for @homeSectionCostume.
///
/// In en, this message translates to:
/// **'Costume'**
String get homeSectionCostume;
/// No description provided for @homeSectionCommunity.
///
/// In en, this message translates to:
/// **'Community'**
String get homeSectionCommunity;
/// No description provided for @homeTagHot.
///
/// In en, this message translates to:
/// **'Hot'**
String get homeTagHot;
/// No description provided for @homeTagUplifting.
///
/// In en, this message translates to:
/// **'Thrilling'**
String get homeTagUplifting;
/// No description provided for @homeTagSweet.
///
/// In en, this message translates to:
/// **'Sweet'**
String get homeTagSweet;
/// No description provided for @homeTagFaceSlap.
///
/// In en, this message translates to:
/// **'Revenge'**
String get homeTagFaceSlap;
/// No description provided for @homeTagAngst.
///
/// In en, this message translates to:
/// **'Angst'**
String get homeTagAngst;
/// No description provided for @homeBadgeHot.
///
/// In en, this message translates to:
/// **'Hot'**
String get homeBadgeHot;
/// No description provided for @homeBadgeNew.
///
/// In en, this message translates to:
/// **'New'**
String get homeBadgeNew;
/// No description provided for @homeBadgeAnime.
///
/// In en, this message translates to:
/// **'Anime'**
String get homeBadgeAnime;
/// No description provided for @emptyContent.
///
/// In en, this message translates to:
/// **'No content yet'**
String get emptyContent;
/// No description provided for @recommendTopTab.
///
/// In en, this message translates to:
/// **'Recommend'**
String get recommendTopTab;
/// No description provided for @playlistTopTab.
///
/// In en, this message translates to:
/// **'Playlists'**
String get playlistTopTab;
/// No description provided for @allDramasTopTab.
///
/// In en, this message translates to:
/// **'All Dramas'**
String get allDramasTopTab;
/// No description provided for @weeklyHitsTitle.
///
/// In en, this message translates to:
/// **'This Week\'s Hits'**
String get weeklyHitsTitle;
/// No description provided for @weeklyHitsSubtitle.
///
/// In en, this message translates to:
/// **'Binge the hottest stories of the week!'**
String get weeklyHitsSubtitle;
/// No description provided for @weeklyNewTitle.
///
/// In en, this message translates to:
/// **'New This Week'**
String get weeklyNewTitle;
/// No description provided for @weeklyNewSubtitle.
///
/// In en, this message translates to:
/// **'Fresh releases to start your next binge'**
String get weeklyNewSubtitle;
/// No description provided for @costumeAwardsTitle.
///
/// In en, this message translates to:
/// **'Costume Drama Awards'**
String get costumeAwardsTitle;
/// No description provided for @costumeAwardsSubtitle.
///
/// In en, this message translates to:
/// **'Top-rated picks every costume fan needs'**
String get costumeAwardsSubtitle;
/// No description provided for @localFilter.
///
/// In en, this message translates to:
/// **'Local'**
String get localFilter;
/// No description provided for @asiaFilter.
///
/// In en, this message translates to:
/// **'Asia'**
String get asiaFilter;
/// No description provided for @westernFilter.
///
/// In en, this message translates to:
/// **'Western'**
String get westernFilter;
/// No description provided for @subtitlesOnlyFilter.
///
/// In en, this message translates to:
/// **'Subtitles'**
String get subtitlesOnlyFilter;
/// No description provided for @dubbedFilter.
///
/// In en, this message translates to:
/// **'Dubbed'**
String get dubbedFilter;
/// No description provided for @reversalFilter.
///
/// In en, this message translates to:
/// **'Comeback'**
String get reversalFilter;
/// No description provided for @modernFilter.
///
/// In en, this message translates to:
/// **'Modern'**
String get modernFilter;
/// No description provided for @edit.
///
/// In en, this message translates to:
/// **'Edit'**
String get edit;
/// No description provided for @done.
///
/// In en, this message translates to:
/// **'Done'**
String get done;
/// No description provided for @selectAll.
///
/// In en, this message translates to:
/// **'Select all'**
String get selectAll;
/// No description provided for @deselectAll.
///
/// In en, this message translates to:
/// **'Deselect all'**
String get deselectAll;
/// No description provided for @cancelFollowing.
///
/// In en, this message translates to:
/// **'Unfollow'**
String get cancelFollowing;
/// No description provided for @confirmCancelFollowing.
///
/// In en, this message translates to:
/// **'Unfollow the selected dramas?'**
String get confirmCancelFollowing;
/// No description provided for @visitor.
///
/// In en, this message translates to:
/// **'Visitor'**
String get visitor;
/// No description provided for @copyUid.
///
/// In en, this message translates to:
/// **'Copy UID'**
String get copyUid;
/// No description provided for @uidCopied.
///
/// In en, this message translates to:
/// **'UID copied'**
String get uidCopied;
/// No description provided for @offlineDownloads.
///
/// In en, this message translates to:
/// **'Offline downloads'**
String get offlineDownloads;
/// No description provided for @watchPreferences.
///
/// In en, this message translates to:
/// **'Watch preferences'**
String get watchPreferences;
/// No description provided for @contactSupport.
///
/// In en, this message translates to:
/// **'Contact support'**
String get contactSupport;
/// No description provided for @vipBrandName.
///
/// In en, this message translates to:
/// **'Netshort VIP'**
String get vipBrandName;
/// No description provided for @mineVipSubtitle.
///
/// In en, this message translates to:
/// **'Enjoy exclusive benefits'**
String get mineVipSubtitle;
/// No description provided for @favoriteEpisodeProgress.
///
/// In en, this message translates to:
/// **'Episode {episode} / {total} total'**
String favoriteEpisodeProgress(int episode, int total);
/// No description provided for @watchedToEpisode.
///
/// In en, this message translates to:
/// **'Watched to Episode {episode}'**
String watchedToEpisode(int episode);
/// No description provided for @homeWatchAll.
///
/// In en, this message translates to:
/// **'Watch all'**
String get homeWatchAll;
/// No description provided for @confirmRemove.
///
/// In en, this message translates to:
/// **'Remove this watch history?'**
String get confirmRemove;
/// No description provided for @followingCountLabel.
///
/// In en, this message translates to:
/// **'Following'**
String get followingCountLabel;
/// No description provided for @watchRecordsCountLabel.
///
/// In en, this message translates to:
/// **'Watch records'**
String get watchRecordsCountLabel;
/// No description provided for @dataUnavailable.
///
/// In en, this message translates to:
/// **'—'**
String get dataUnavailable;
/// No description provided for @commonQuestions.
///
/// In en, this message translates to:
/// **'Common questions'**
String get commonQuestions;
/// No description provided for @aboutUs.
///
/// In en, this message translates to:
/// **'About us'**
String get aboutUs;
/// No description provided for @aboutDescription.
///
/// In en, this message translates to:
/// **'A focused, immersive place to watch short dramas.'**
String get aboutDescription;
/// No description provided for @versionLabel.
///
/// In en, this message translates to:
/// **'Version {version}'**
String versionLabel(String version);
}
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', 'id', '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 'id':
return AppLocalizationsId();
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.',
);
}