3139 lines
82 KiB
Dart
3139 lines
82 KiB
Dart
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 @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 @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:
|
||
/// **'Top Charts'**
|
||
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 @localViewer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Local Viewer'**
|
||
String get localViewer;
|
||
|
||
/// 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 @watchlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Favorites'**
|
||
String get watchlist;
|
||
|
||
/// 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 @pullToRefresh.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pull to refresh'**
|
||
String get pullToRefresh;
|
||
|
||
/// No description provided for @releaseToRefresh.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Release to refresh'**
|
||
String get releaseToRefresh;
|
||
|
||
/// No description provided for @refreshingLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Refreshing…'**
|
||
String get refreshingLabel;
|
||
|
||
/// No description provided for @noMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No more'**
|
||
String get noMore;
|
||
|
||
/// 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 @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:
|
||
/// **'Tell us why you are leaving'**
|
||
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 from today\'s live catalog feed.'**
|
||
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 @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 @homeGridFilterEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No dramas match these filters'**
|
||
String get homeGridFilterEmpty;
|
||
|
||
/// No description provided for @homeGridClearFilter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear filters'**
|
||
String get homeGridClearFilter;
|
||
}
|
||
|
||
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.',
|
||
);
|
||
}
|