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_ja.dart'; import 'app_localizations_ko.dart'; // ignore_for_file: type=lint /// Callers can lookup localized strings with an instance of L10n /// returned by `L10n.of(context)`. /// /// Applications need to include `L10n.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: L10n.localizationsDelegates, /// supportedLocales: L10n.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 L10n.supportedLocales /// property. abstract class L10n { L10n(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static L10n of(BuildContext context) { return Localizations.of(context, L10n)!; } static const LocalizationsDelegate delegate = _L10nDelegate(); /// 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('ja'), Locale('ko'), ]; /// Application title /// /// In en, this message translates to: /// **'ASCII NEVER DIE'** String get appTitle; /// Tag indicating offline mode /// /// In en, this message translates to: /// **'No network'** String get tagNoNetwork; /// Tag indicating idle RPG gameplay /// /// In en, this message translates to: /// **'Idle RPG loop'** String get tagIdleRpg; /// Tag indicating local save support /// /// In en, this message translates to: /// **'Local saves'** String get tagLocalSaves; /// New character button /// /// In en, this message translates to: /// **'New character'** String get newCharacter; /// Load save button /// /// In en, this message translates to: /// **'Load save'** String get loadSave; /// Load game dialog title /// /// In en, this message translates to: /// **'Load Game'** String get loadGame; /// View build plan button /// /// In en, this message translates to: /// **'View build plan'** String get viewBuildPlan; /// Build roadmap section title /// /// In en, this message translates to: /// **'Build roadmap'** String get buildRoadmap; /// Tech stack section title /// /// In en, this message translates to: /// **'Tech stack'** String get techStack; /// Cancel button /// /// In en, this message translates to: /// **'Cancel'** String get cancel; /// Exit game dialog title /// /// In en, this message translates to: /// **'Exit Game'** String get exitGame; /// Save progress confirmation message /// /// In en, this message translates to: /// **'Save your progress before leaving?'** String get saveProgressQuestion; /// Exit without saving button /// /// In en, this message translates to: /// **'Exit without saving'** String get exitWithoutSaving; /// Save and exit button /// /// In en, this message translates to: /// **'Save and Exit'** String get saveAndExit; /// Game screen title with character name /// /// In en, this message translates to: /// **'ASCII NEVER DIE - {name}'** String progressQuestTitle(String name); /// Level up tooltip /// /// In en, this message translates to: /// **'Level Up'** String get levelUp; /// Complete quest tooltip /// /// In en, this message translates to: /// **'Complete Quest'** String get completeQuest; /// Complete plot tooltip /// /// In en, this message translates to: /// **'Complete Plot'** String get completePlot; /// Character sheet panel title /// /// In en, this message translates to: /// **'Character Sheet'** String get characterSheet; /// Traits section title /// /// In en, this message translates to: /// **'Traits'** String get traits; /// Stats section title /// /// In en, this message translates to: /// **'Stats'** String get stats; /// Experience section title /// /// In en, this message translates to: /// **'Experience'** String get experience; /// XP needed tooltip /// /// In en, this message translates to: /// **'XP needed for next level'** String get xpNeededForNextLevel; /// Skills section title (unified spellbook + skills) /// /// In en, this message translates to: /// **'Skills'** String get spellBook; /// Empty skills message /// /// In en, this message translates to: /// **'No skills yet'** String get noSpellsYet; /// Equipment panel title /// /// In en, this message translates to: /// **'Equipment'** String get equipment; /// Inventory panel title /// /// In en, this message translates to: /// **'Inventory'** String get inventory; /// Encumbrance section title /// /// In en, this message translates to: /// **'Encumbrance'** String get encumbrance; /// Combat log panel title /// /// In en, this message translates to: /// **'Combat Log'** String get combatLog; /// Plot development panel title /// /// In en, this message translates to: /// **'Plot Development'** String get plotDevelopment; /// Quests panel title /// /// In en, this message translates to: /// **'Quests'** String get quests; /// Name trait label /// /// In en, this message translates to: /// **'Name'** String get traitName; /// Race trait label /// /// In en, this message translates to: /// **'Race'** String get traitRace; /// Class trait label /// /// In en, this message translates to: /// **'Class'** String get traitClass; /// Level trait label /// /// In en, this message translates to: /// **'Level'** String get traitLevel; /// Strength stat /// /// In en, this message translates to: /// **'STR'** String get statStr; /// Constitution stat /// /// In en, this message translates to: /// **'CON'** String get statCon; /// Dexterity stat /// /// In en, this message translates to: /// **'DEX'** String get statDex; /// Intelligence stat /// /// In en, this message translates to: /// **'INT'** String get statInt; /// Wisdom stat /// /// In en, this message translates to: /// **'WIS'** String get statWis; /// Charisma stat /// /// In en, this message translates to: /// **'CHA'** String get statCha; /// Max HP stat /// /// In en, this message translates to: /// **'HP Max'** String get statHpMax; /// Max MP stat /// /// In en, this message translates to: /// **'MP Max'** String get statMpMax; /// Weapon equipment slot /// /// In en, this message translates to: /// **'Weapon'** String get equipWeapon; /// Shield equipment slot /// /// In en, this message translates to: /// **'Shield'** String get equipShield; /// Helm equipment slot /// /// In en, this message translates to: /// **'Helm'** String get equipHelm; /// Hauberk equipment slot /// /// In en, this message translates to: /// **'Hauberk'** String get equipHauberk; /// Brassairts equipment slot /// /// In en, this message translates to: /// **'Brassairts'** String get equipBrassairts; /// Vambraces equipment slot /// /// In en, this message translates to: /// **'Vambraces'** String get equipVambraces; /// Gauntlets equipment slot /// /// In en, this message translates to: /// **'Gauntlets'** String get equipGauntlets; /// Gambeson equipment slot /// /// In en, this message translates to: /// **'Gambeson'** String get equipGambeson; /// Cuisses equipment slot /// /// In en, this message translates to: /// **'Cuisses'** String get equipCuisses; /// Greaves equipment slot /// /// In en, this message translates to: /// **'Greaves'** String get equipGreaves; /// Sollerets equipment slot /// /// In en, this message translates to: /// **'Sollerets'** String get equipSollerets; /// Coin label /// /// In en, this message translates to: /// **'Coin'** String get gold; /// Coin with amount /// /// In en, this message translates to: /// **'Coin: {amount}'** String goldAmount(int amount); /// Prologue plot stage /// /// In en, this message translates to: /// **'Prologue'** String get prologue; /// Act with roman numeral /// /// In en, this message translates to: /// **'Act {number}'** String actNumber(String number); /// Empty quests message /// /// In en, this message translates to: /// **'No active quests'** String get noActiveQuests; /// Quest with number /// /// In en, this message translates to: /// **'Quest #{number}'** String questNumber(int number); /// Welcome message in task progress panel /// /// In en, this message translates to: /// **'Welcome to ASCII NEVER DIE!'** String get welcomeMessage; /// No saved games message /// /// In en, this message translates to: /// **'No saved games found.'** String get noSavedGames; /// Load error message /// /// In en, this message translates to: /// **'Failed to load save file: {error}'** String loadError(String error); /// Name label in character creation /// /// In en, this message translates to: /// **'Name'** String get name; /// Generate name tooltip /// /// In en, this message translates to: /// **'Generate Name'** String get generateName; /// Total label for stats /// /// In en, this message translates to: /// **'Total'** String get total; /// Undo button for stat reroll /// /// In en, this message translates to: /// **'Undo'** String get unroll; /// Roll button /// /// In en, this message translates to: /// **'Roll'** String get roll; /// Race selection title /// /// In en, this message translates to: /// **'Race'** String get race; /// Class selection title /// /// In en, this message translates to: /// **'Class'** String get classTitle; /// Percentage complete /// /// In en, this message translates to: /// **'{percent}% complete'** String percentComplete(int percent); /// New character screen title /// /// In en, this message translates to: /// **'ASCII NEVER DIE - New Character'** String get newCharacterTitle; /// Confirm character creation button /// /// In en, this message translates to: /// **'Sold!'** String get soldButton; /// Victory overlay congratulations /// /// In en, this message translates to: /// **'★ CONGRATULATIONS ★'** String get endingCongratulations; /// Game completion message /// /// In en, this message translates to: /// **'You have completed the game!'** String get endingGameComplete; /// Hero section title /// /// In en, this message translates to: /// **'THE HERO'** String get endingTheHero; /// Level display format /// /// In en, this message translates to: /// **'Level {level}'** String endingLevelFormat(int level); /// Journey statistics section title /// /// In en, this message translates to: /// **'JOURNEY STATISTICS'** String get endingJourneyStats; /// Monsters killed stat label /// /// In en, this message translates to: /// **'Monsters Slain'** String get endingMonstersSlain; /// Quests completed stat label /// /// In en, this message translates to: /// **'Quests Completed'** String get endingQuestsCompleted; /// Play time stat label /// /// In en, this message translates to: /// **'Play Time'** String get endingPlayTime; /// Final stats section title /// /// In en, this message translates to: /// **'FINAL STATS'** String get endingFinalStats; /// Credits section title /// /// In en, this message translates to: /// **'CREDITS'** String get endingCredits; /// Thank you message /// /// In en, this message translates to: /// **'Thank you for playing!'** String get endingThankYou; /// Legend message /// /// In en, this message translates to: /// **'Your legend lives on...'** String get endingLegendLivesOn; /// Hall of fame message line 1 /// /// In en, this message translates to: /// **'Your heroic deeds will be'** String get endingHallOfFameLine1; /// Hall of fame message line 2 /// /// In en, this message translates to: /// **'remembered in the Hall of Fame'** String get endingHallOfFameLine2; /// Hall of fame button /// /// In en, this message translates to: /// **'HALL OF FAME'** String get endingHallOfFameButton; /// Skip button /// /// In en, this message translates to: /// **'SKIP'** String get endingSkip; /// Tap to skip hint /// /// In en, this message translates to: /// **'TAP TO SKIP'** String get endingTapToSkip; /// Hold to speed up scrolling hint /// /// In en, this message translates to: /// **'HOLD TO SPEED UP'** String get endingHoldToSpeedUp; /// Menu panel title /// /// In en, this message translates to: /// **'MENU'** String get menuTitle; /// Options menu title /// /// In en, this message translates to: /// **'OPTIONS'** String get optionsTitle; /// Sound dialog title /// /// In en, this message translates to: /// **'SOUND'** String get soundTitle; /// Control section title /// /// In en, this message translates to: /// **'CONTROL'** String get controlSection; /// Info section title /// /// In en, this message translates to: /// **'INFO'** String get infoSection; /// Settings section title /// /// In en, this message translates to: /// **'SETTINGS'** String get settingsSection; /// Save/Exit section title /// /// In en, this message translates to: /// **'SAVE / EXIT'** String get saveExitSection; /// OK button /// /// In en, this message translates to: /// **'OK'** String get ok; /// Recharge button /// /// In en, this message translates to: /// **'RECHARGE'** String get rechargeButton; /// Create button /// /// In en, this message translates to: /// **'CREATE'** String get createButton; /// Preview panel title /// /// In en, this message translates to: /// **'PREVIEW'** String get previewTitle; /// Name panel title /// /// In en, this message translates to: /// **'NAME'** String get nameTitle; /// Stats panel title /// /// In en, this message translates to: /// **'STATS'** String get statsTitle; /// Race panel title /// /// In en, this message translates to: /// **'RACE'** String get raceTitle; /// Class panel title /// /// In en, this message translates to: /// **'CLASS'** String get classSection; /// BGM volume label /// /// In en, this message translates to: /// **'BGM'** String get bgmLabel; /// SFX volume label /// /// In en, this message translates to: /// **'SFX'** String get sfxLabel; /// HP bar label /// /// In en, this message translates to: /// **'HP'** String get hpLabel; /// MP bar label /// /// In en, this message translates to: /// **'MP'** String get mpLabel; /// EXP bar label /// /// In en, this message translates to: /// **'EXP'** String get expLabel; /// Level up notification title /// /// In en, this message translates to: /// **'LEVEL UP!'** String get notifyLevelUp; /// Level notification subtitle /// /// In en, this message translates to: /// **'Level {level}'** String notifyLevel(int level); /// Quest complete notification title /// /// In en, this message translates to: /// **'QUEST COMPLETE!'** String get notifyQuestComplete; /// Prologue complete notification title /// /// In en, this message translates to: /// **'PROLOGUE COMPLETE!'** String get notifyPrologueComplete; /// Act complete notification title /// /// In en, this message translates to: /// **'ACT {number} COMPLETE!'** String notifyActComplete(int number); /// New spell notification title /// /// In en, this message translates to: /// **'NEW SPELL!'** String get notifyNewSpell; /// New equipment notification title /// /// In en, this message translates to: /// **'NEW EQUIPMENT!'** String get notifyNewEquipment; /// Boss defeated notification title /// /// In en, this message translates to: /// **'BOSS DEFEATED!'** String get notifyBossDefeated; /// Recharge rolls dialog title /// /// In en, this message translates to: /// **'RECHARGE ROLLS'** String get rechargeRollsTitle; /// Recharge rolls free user message /// /// In en, this message translates to: /// **'Recharge 5 rolls for free?'** String get rechargeRollsFree; /// Recharge rolls ad message /// /// In en, this message translates to: /// **'Watch an ad to recharge 5 rolls?'** String get rechargeRollsAd; /// Debug section title /// /// In en, this message translates to: /// **'DEBUG'** String get debugTitle; /// Debug cheats section title /// /// In en, this message translates to: /// **'DEBUG CHEATS'** String get debugCheatsTitle; /// Debug tools section title /// /// In en, this message translates to: /// **'DEBUG TOOLS'** String get debugToolsTitle; /// Developer tools header /// /// In en, this message translates to: /// **'DEVELOPER TOOLS'** String get debugDeveloperTools; /// Skip task cheat label /// /// In en, this message translates to: /// **'SKIP TASK (L+1)'** String get debugSkipTask; /// Skip task cheat description /// /// In en, this message translates to: /// **'Complete task instantly'** String get debugSkipTaskDesc; /// Skip quest cheat label /// /// In en, this message translates to: /// **'SKIP QUEST (Q!)'** String get debugSkipQuest; /// Skip quest cheat description /// /// In en, this message translates to: /// **'Complete quest instantly'** String get debugSkipQuestDesc; /// Skip act cheat label /// /// In en, this message translates to: /// **'SKIP ACT (P!)'** String get debugSkipAct; /// Skip act cheat description /// /// In en, this message translates to: /// **'Complete act instantly'** String get debugSkipActDesc; /// Create test character button /// /// In en, this message translates to: /// **'CREATE TEST CHARACTER'** String get debugCreateTestCharacter; /// Create test character description /// /// In en, this message translates to: /// **'Register Level 100 character to Hall of Fame'** String get debugCreateTestCharacterDesc; /// Create test character dialog title /// /// In en, this message translates to: /// **'CREATE TEST CHARACTER?'** String get debugCreateTestCharacterTitle; /// Create test character confirmation message /// /// In en, this message translates to: /// **'Current character will be converted to Level 100\nand registered to the Hall of Fame.\n\n⚠️ Current save file will be deleted.\nThis action cannot be undone.'** String get debugCreateTestCharacterMessage; /// Debug turbo mode label /// /// In en, this message translates to: /// **'DEBUG: TURBO (20x)'** String get debugTurbo; /// IAP purchased debug toggle /// /// In en, this message translates to: /// **'IAP PURCHASED'** String get debugIapPurchased; /// IAP purchased debug description /// /// In en, this message translates to: /// **'ON: Behave as paid user (ads removed)'** String get debugIapPurchasedDesc; /// Offline hours debug label /// /// In en, this message translates to: /// **'OFFLINE HOURS'** String get debugOfflineHours; /// Offline hours debug description /// /// In en, this message translates to: /// **'Test return rewards (applies on restart)'** String get debugOfflineHoursDesc; /// Test character creation description /// /// In en, this message translates to: /// **'Modify current character to Level 100\nand register to the Hall of Fame.'** String get debugTestCharacterDesc; /// Arena main screen title /// /// In en, this message translates to: /// **'LOCAL ARENA'** String get arenaTitle; /// Arena character selection subtitle /// /// In en, this message translates to: /// **'SELECT YOUR FIGHTER'** String get arenaSelectFighter; /// Arena empty state title /// /// In en, this message translates to: /// **'Not enough heroes'** String get arenaEmptyTitle; /// Arena empty state hint /// /// In en, this message translates to: /// **'Clear the game with 2+ characters'** String get arenaEmptyHint; /// Arena setup screen title /// /// In en, this message translates to: /// **'ARENA SETUP'** String get arenaSetupTitle; /// Start battle button /// /// In en, this message translates to: /// **'START BATTLE'** String get arenaStartBattle; /// Arena battle screen title /// /// In en, this message translates to: /// **'ARENA BATTLE'** String get arenaBattleTitle; /// My equipment header /// /// In en, this message translates to: /// **'MY EQUIPMENT'** String get arenaMyEquipment; /// Enemy equipment header /// /// In en, this message translates to: /// **'ENEMY EQUIPMENT'** String get arenaEnemyEquipment; /// Selected slot label /// /// In en, this message translates to: /// **'SELECTED'** String get arenaSelected; /// Recommended slot label /// /// In en, this message translates to: /// **'BEST'** String get arenaRecommended; /// Weapon slot locked label /// /// In en, this message translates to: /// **'LOCKED'** String get arenaWeaponLocked; /// Arena victory title /// /// In en, this message translates to: /// **'VICTORY!'** String get arenaVictory; /// Arena defeat title /// /// In en, this message translates to: /// **'DEFEAT...'** String get arenaDefeat; /// Equipment exchange section title /// /// In en, this message translates to: /// **'EQUIPMENT EXCHANGE'** String get arenaEquipmentExchange; /// Turns label /// /// In en, this message translates to: /// **'TURNS'** String get arenaTurns; /// Winner label /// /// In en, this message translates to: /// **'WINNER'** String get arenaWinner; /// Loser label /// /// In en, this message translates to: /// **'LOSER'** String get arenaLoser; /// Battle summary text /// /// In en, this message translates to: /// **'{winner} defeated {loser} in {turns} TURNS'** String arenaDefeatedIn(String winner, String loser, int turns); /// Score gain prediction /// /// In en, this message translates to: /// **'You will GAIN +{score}'** String arenaScoreGain(int score); /// Score loss prediction /// /// In en, this message translates to: /// **'You will LOSE {score}'** String arenaScoreLose(int score); /// Even trade label /// /// In en, this message translates to: /// **'Even trade'** String get arenaEvenTrade; /// Score label /// /// In en, this message translates to: /// **'SCORE'** String get arenaScore; /// Statistics dialog title /// /// In en, this message translates to: /// **'Statistics'** String get statsStatistics; /// Session tab label /// /// In en, this message translates to: /// **'Session'** String get statsSession; /// Accumulated tab label /// /// In en, this message translates to: /// **'Total'** String get statsAccumulated; /// Combat section title /// /// In en, this message translates to: /// **'Combat'** String get statsCombat; /// Play time label /// /// In en, this message translates to: /// **'Play Time'** String get statsPlayTime; /// Monsters killed label /// /// In en, this message translates to: /// **'Monsters Killed'** String get statsMonstersKilled; /// Bosses defeated label /// /// In en, this message translates to: /// **'Bosses Defeated'** String get statsBossesDefeated; /// Deaths label /// /// In en, this message translates to: /// **'Deaths'** String get statsDeaths; /// Damage section title /// /// In en, this message translates to: /// **'Damage'** String get statsDamage; /// Damage dealt label /// /// In en, this message translates to: /// **'Damage Dealt'** String get statsDamageDealt; /// Damage taken label /// /// In en, this message translates to: /// **'Damage Taken'** String get statsDamageTaken; /// Average DPS label /// /// In en, this message translates to: /// **'Average DPS'** String get statsAverageDps; /// Skills section title /// /// In en, this message translates to: /// **'Skills'** String get statsSkills; /// Skills used label /// /// In en, this message translates to: /// **'Skills Used'** String get statsSkillsUsed; /// Critical hits label /// /// In en, this message translates to: /// **'Critical Hits'** String get statsCriticalHits; /// Max critical streak label /// /// In en, this message translates to: /// **'Max Critical Streak'** String get statsMaxCriticalStreak; /// Critical rate label /// /// In en, this message translates to: /// **'Critical Rate'** String get statsCriticalRate; /// Economy section title /// /// In en, this message translates to: /// **'Economy'** String get statsEconomy; /// Gold earned label /// /// In en, this message translates to: /// **'Gold Earned'** String get statsGoldEarned; /// Gold spent label /// /// In en, this message translates to: /// **'Gold Spent'** String get statsGoldSpent; /// Items sold label /// /// In en, this message translates to: /// **'Items Sold'** String get statsItemsSold; /// Potions used label /// /// In en, this message translates to: /// **'Potions Used'** String get statsPotionsUsed; /// Progress section title /// /// In en, this message translates to: /// **'Progress'** String get statsProgress; /// Level ups label /// /// In en, this message translates to: /// **'Level Ups'** String get statsLevelUps; /// Quests completed label /// /// In en, this message translates to: /// **'Quests Completed'** String get statsQuestsCompleted; /// Records section title /// /// In en, this message translates to: /// **'Records'** String get statsRecords; /// Highest level label /// /// In en, this message translates to: /// **'Highest Level'** String get statsHighestLevel; /// Highest gold held label /// /// In en, this message translates to: /// **'Highest Gold Held'** String get statsHighestGoldHeld; /// Best critical streak label /// /// In en, this message translates to: /// **'Best Critical Streak'** String get statsBestCriticalStreak; /// Total play section title /// /// In en, this message translates to: /// **'Total Play'** String get statsTotalPlay; /// Total play time label /// /// In en, this message translates to: /// **'Total Play Time'** String get statsTotalPlayTime; /// Games started label /// /// In en, this message translates to: /// **'Games Started'** String get statsGamesStarted; /// Games completed label /// /// In en, this message translates to: /// **'Games Completed'** String get statsGamesCompleted; /// Completion rate label /// /// In en, this message translates to: /// **'Completion Rate'** String get statsCompletionRate; /// Total combat section title /// /// In en, this message translates to: /// **'Total Combat'** String get statsTotalCombat; /// Total deaths label /// /// In en, this message translates to: /// **'Total Deaths'** String get statsTotalDeaths; /// Total level ups label /// /// In en, this message translates to: /// **'Total Level Ups'** String get statsTotalLevelUps; /// Total damage section title /// /// In en, this message translates to: /// **'Total Damage'** String get statsTotalDamage; /// Total skills section title /// /// In en, this message translates to: /// **'Total Skills'** String get statsTotalSkills; /// Total economy section title /// /// In en, this message translates to: /// **'Total Economy'** String get statsTotalEconomy; /// Level up notification type label /// /// In en, this message translates to: /// **'LEVEL UP'** String get notifyLevelUpLabel; /// Quest done notification type label /// /// In en, this message translates to: /// **'QUEST DONE'** String get notifyQuestDoneLabel; /// Act clear notification type label /// /// In en, this message translates to: /// **'ACT CLEAR'** String get notifyActClearLabel; /// New spell notification type label /// /// In en, this message translates to: /// **'NEW SPELL'** String get notifyNewSpellLabel; /// New item notification type label /// /// In en, this message translates to: /// **'NEW ITEM'** String get notifyNewItemLabel; /// Boss slain notification type label /// /// In en, this message translates to: /// **'BOSS SLAIN'** String get notifyBossSlainLabel; /// Game saved notification type label /// /// In en, this message translates to: /// **'SAVED'** String get notifySavedLabel; /// Info notification type label /// /// In en, this message translates to: /// **'INFO'** String get notifyInfoLabel; /// Warning notification type label /// /// In en, this message translates to: /// **'WARNING'** String get notifyWarningLabel; } class _L10nDelegate extends LocalizationsDelegate { const _L10nDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupL10n(locale)); } @override bool isSupported(Locale locale) => ['en', 'ja', 'ko'].contains(locale.languageCode); @override bool shouldReload(_L10nDelegate old) => false; } L10n lookupL10n(Locale locale) { // Lookup logic when only language code is specified. switch (locale.languageCode) { case 'en': return L10nEn(); case 'ja': return L10nJa(); case 'ko': return L10nKo(); } throw FlutterError( 'L10n.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.', ); }