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(context, AppLocalizations); } static const LocalizationsDelegate 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> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ 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 @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: /// **'Discover'** 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 @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 @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 @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 @minutesAgo. /// /// In en, this message translates to: /// **'{count} min ago'** String minutesAgo(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 @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 @appLanguage. /// /// In en, this message translates to: /// **'App Language'** String get appLanguage; /// 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: /// **'Recommended'** 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 @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 @postComment. /// /// In en, this message translates to: /// **'Post'** String get postComment; /// 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 @watchEpisodeOne. /// /// In en, this message translates to: /// **'Watch episode 1'** String get watchEpisodeOne; /// No description provided for @continueEpisode. /// /// In en, this message translates to: /// **'Continue episode {number}'** String continueEpisode(int number); /// No description provided for @freeTestMedia. /// /// In en, this message translates to: /// **'Same demo clip · free'** String get freeTestMedia; /// No description provided for @lockedStoreUnavailable. /// /// In en, this message translates to: /// **'Locked · store unavailable'** String get lockedStoreUnavailable; /// No description provided for @freeTestClip. /// /// In en, this message translates to: /// **'Free test clip'** String get freeTestClip; /// No description provided for @locked. /// /// In en, this message translates to: /// **'Locked'** String get locked; /// No description provided for @freeSamplesNotice. /// /// In en, this message translates to: /// **'Two free samples · store setup pending'** String get freeSamplesNotice; /// No description provided for @demoTestMedia. /// /// In en, this message translates to: /// **'FREE · SAME DEMO CLIP'** String get demoTestMedia; /// No description provided for @episodeProgress. /// /// In en, this message translates to: /// **'EPISODE {number} / {total}'** String episodeProgress(int number, int total); /// No description provided for @testVideoNotice. /// /// In en, this message translates to: /// **'Self-generated technical test video'** String get testVideoNotice; /// No description provided for @lockedTitle. /// /// In en, this message translates to: /// **'Episode {number} is locked'** String lockedTitle(int number); /// No description provided for @lockedBody. /// /// In en, this message translates to: /// **'Unlocking will be available after store and verification setup. This demo does not process payments.'** String get lockedBody; /// No description provided for @playbackError. /// /// In en, this message translates to: /// **'This clip could not be played.'** String get playbackError; /// No description provided for @catalogError. /// /// In en, this message translates to: /// **'The catalog could not be loaded.'** String get catalogError; /// No description provided for @categoriesError. /// /// In en, this message translates to: /// **'Categories could not be loaded.'** String get categoriesError; /// No description provided for @detailError. /// /// In en, this message translates to: /// **'The episode list could not be loaded.'** String get detailError; /// No description provided for @noMediaNotice. /// /// In en, this message translates to: /// **'This episode has no playable media yet.'** String get noMediaNotice; /// No description provided for @noStories. /// /// In en, this message translates to: /// **'No stories available yet.'** String get noStories; /// No description provided for @notices. /// /// In en, this message translates to: /// **'Notices'** String get notices; /// No description provided for @noNotices. /// /// In en, this message translates to: /// **'No notices yet.'** String get noNotices; /// No description provided for @noticesLoadFailed. /// /// In en, this message translates to: /// **'Notices could not be loaded.'** String get noticesLoadFailed; /// No description provided for @noticeDetails. /// /// In en, this message translates to: /// **'Notice details'** String get noticeDetails; /// No description provided for @noticeAnnouncement. /// /// In en, this message translates to: /// **'Notice'** String get noticeAnnouncement; /// No description provided for @close. /// /// In en, this message translates to: /// **'Close'** String get close; /// No description provided for @carouselSemantics. /// /// In en, this message translates to: /// **'Banner {current} of {total}'** String carouselSemantics(int current, int total); /// No description provided for @retry. /// /// In en, this message translates to: /// **'Retry'** String get retry; /// No description provided for @backToSeries. /// /// In en, this message translates to: /// **'Back to series'** String get backToSeries; /// No description provided for @nextEpisode. /// /// In en, this message translates to: /// **'Next episode'** String get nextEpisode; /// No description provided for @pause. /// /// In en, this message translates to: /// **'Pause'** String get pause; /// No description provided for @play. /// /// In en, this message translates to: /// **'Play'** String get play; /// No description provided for @seekVideo. /// /// In en, this message translates to: /// **'Seek video'** String get seekVideo; /// No description provided for @seekFailed. /// /// In en, this message translates to: /// **'Could not change playback position.'** String get seekFailed; /// No description provided for @captions. /// /// In en, this message translates to: /// **'Captions'** String get captions; /// No description provided for @captionsOff. /// /// In en, this message translates to: /// **'Captions off'** String get captionsOff; /// No description provided for @englishCaptions. /// /// In en, this message translates to: /// **'English captions'** String get englishCaptions; /// No description provided for @chineseCaptions. /// /// In en, this message translates to: /// **'Chinese captions'** String get chineseCaptions; /// No description provided for @language. /// /// In en, this message translates to: /// **'Language'** String get language; /// No description provided for @systemLanguage. /// /// In en, this message translates to: /// **'System'** String get systemLanguage; /// 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 @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 @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; } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['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.', ); }