app_localizations.dart 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026
  1. import 'dart:async';
  2. import 'package:flutter/foundation.dart';
  3. import 'package:flutter/widgets.dart';
  4. import 'package:flutter_localizations/flutter_localizations.dart';
  5. import 'package:intl/intl.dart' as intl;
  6. import 'app_localizations_de.dart';
  7. import 'app_localizations_en.dart';
  8. import 'app_localizations_hu.dart';
  9. // ignore_for_file: type=lint
  10. /// Callers can lookup localized strings with an instance of AppLocalizations
  11. /// returned by `AppLocalizations.of(context)`.
  12. ///
  13. /// Applications need to include `AppLocalizations.delegate()` in their app's
  14. /// `localizationDelegates` list, and the locales they support in the app's
  15. /// `supportedLocales` list. For example:
  16. ///
  17. /// ```dart
  18. /// import 'l10n/app_localizations.dart';
  19. ///
  20. /// return MaterialApp(
  21. /// localizationsDelegates: AppLocalizations.localizationsDelegates,
  22. /// supportedLocales: AppLocalizations.supportedLocales,
  23. /// home: MyApplicationHome(),
  24. /// );
  25. /// ```
  26. ///
  27. /// ## Update pubspec.yaml
  28. ///
  29. /// Please make sure to update your pubspec.yaml to include the following
  30. /// packages:
  31. ///
  32. /// ```yaml
  33. /// dependencies:
  34. /// # Internationalization support.
  35. /// flutter_localizations:
  36. /// sdk: flutter
  37. /// intl: any # Use the pinned version from flutter_localizations
  38. ///
  39. /// # Rest of dependencies
  40. /// ```
  41. ///
  42. /// ## iOS Applications
  43. ///
  44. /// iOS applications define key application metadata, including supported
  45. /// locales, in an Info.plist file that is built into the application bundle.
  46. /// To configure the locales supported by your app, you’ll need to edit this
  47. /// file.
  48. ///
  49. /// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
  50. /// Then, in the Project Navigator, open the Info.plist file under the Runner
  51. /// project’s Runner folder.
  52. ///
  53. /// Next, select the Information Property List item, select Add Item from the
  54. /// Editor menu, then select Localizations from the pop-up menu.
  55. ///
  56. /// Select and expand the newly-created Localizations item then, for each
  57. /// locale your application supports, add a new item and select the locale
  58. /// you wish to add from the pop-up menu in the Value field. This list should
  59. /// be consistent with the languages listed in the AppLocalizations.supportedLocales
  60. /// property.
  61. abstract class AppLocalizations {
  62. AppLocalizations(String locale)
  63. : localeName = intl.Intl.canonicalizedLocale(locale.toString());
  64. final String localeName;
  65. static AppLocalizations? of(BuildContext context) {
  66. return Localizations.of<AppLocalizations>(context, AppLocalizations);
  67. }
  68. static const LocalizationsDelegate<AppLocalizations> delegate =
  69. _AppLocalizationsDelegate();
  70. /// A list of this localizations delegate along with the default localizations
  71. /// delegates.
  72. ///
  73. /// Returns a list of localizations delegates containing this delegate along with
  74. /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
  75. /// and GlobalWidgetsLocalizations.delegate.
  76. ///
  77. /// Additional delegates can be added by appending to this list in
  78. /// MaterialApp. This list does not have to be used at all if a custom list
  79. /// of delegates is preferred or required.
  80. static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
  81. <LocalizationsDelegate<dynamic>>[
  82. delegate,
  83. GlobalMaterialLocalizations.delegate,
  84. GlobalCupertinoLocalizations.delegate,
  85. GlobalWidgetsLocalizations.delegate,
  86. ];
  87. /// A list of this localizations delegate's supported locales.
  88. static const List<Locale> supportedLocales = <Locale>[
  89. Locale('de'),
  90. Locale('en'),
  91. Locale('hu'),
  92. ];
  93. /// The title of the application
  94. ///
  95. /// In en, this message translates to:
  96. /// **'ZenTap'**
  97. String get appTitle;
  98. /// App subtitle description
  99. ///
  100. /// In en, this message translates to:
  101. /// **'A stress relief tapping game'**
  102. String get appSubtitle;
  103. /// Description for play button
  104. ///
  105. /// In en, this message translates to:
  106. /// **'Tap to earn Relaxation Points'**
  107. String get playDescription;
  108. /// Description for zen mode button
  109. ///
  110. /// In en, this message translates to:
  111. /// **'Pure relaxation, no score'**
  112. String get zenModeDescription;
  113. /// Description for statistics button
  114. ///
  115. /// In en, this message translates to:
  116. /// **'View your progress and achievements'**
  117. String get statisticsDescription;
  118. /// Description for exit button
  119. ///
  120. /// In en, this message translates to:
  121. /// **'Close the application'**
  122. String get exitDescription;
  123. /// Exit button text
  124. ///
  125. /// In en, this message translates to:
  126. /// **'Exit'**
  127. String get exit;
  128. /// Today's relaxation points display
  129. ///
  130. /// In en, this message translates to:
  131. /// **'Today\'s Relaxation Points: {points}'**
  132. String todayRelaxationPoints(int points);
  133. /// Hint text on main menu
  134. ///
  135. /// In en, this message translates to:
  136. /// **'Tap anywhere to feel the calm'**
  137. String get tapToFeelCalm;
  138. /// Button text to start playing
  139. ///
  140. /// In en, this message translates to:
  141. /// **'Play'**
  142. String get play;
  143. /// Button text for zen mode
  144. ///
  145. /// In en, this message translates to:
  146. /// **'Zen Mode'**
  147. String get zenMode;
  148. /// Settings menu title
  149. ///
  150. /// In en, this message translates to:
  151. /// **'Settings'**
  152. String get settings;
  153. /// Description for settings button
  154. ///
  155. /// In en, this message translates to:
  156. /// **'Customize your app experience'**
  157. String get settingsDescription;
  158. /// Statistics menu title
  159. ///
  160. /// In en, this message translates to:
  161. /// **'Stats'**
  162. String get stats;
  163. /// Pause button text
  164. ///
  165. /// In en, this message translates to:
  166. /// **'Pause'**
  167. String get pause;
  168. /// Resume button text
  169. ///
  170. /// In en, this message translates to:
  171. /// **'Resume'**
  172. String get resume;
  173. /// Menu button text
  174. ///
  175. /// In en, this message translates to:
  176. /// **'Menu'**
  177. String get menu;
  178. /// Score label
  179. ///
  180. /// In en, this message translates to:
  181. /// **'Score'**
  182. String get score;
  183. /// Relaxation points label
  184. ///
  185. /// In en, this message translates to:
  186. /// **'Relaxation Points'**
  187. String get relaxationPoints;
  188. /// Total score label
  189. ///
  190. /// In en, this message translates to:
  191. /// **'Total Score'**
  192. String get totalScore;
  193. /// Games played counter
  194. ///
  195. /// In en, this message translates to:
  196. /// **'Games Played'**
  197. String get gamesPlayed;
  198. /// Best score label
  199. ///
  200. /// In en, this message translates to:
  201. /// **'Best Score'**
  202. String get bestScore;
  203. /// Average score label
  204. ///
  205. /// In en, this message translates to:
  206. /// **'Average Score'**
  207. String get averageScore;
  208. /// Total playtime label
  209. ///
  210. /// In en, this message translates to:
  211. /// **'Playtime'**
  212. String get playtime;
  213. /// Total bubbles popped counter
  214. ///
  215. /// In en, this message translates to:
  216. /// **'Bubbles Popped'**
  217. String get bubblesPopped;
  218. /// Sound setting toggle
  219. ///
  220. /// In en, this message translates to:
  221. /// **'Sound'**
  222. String get soundEnabled;
  223. /// Haptics/vibration setting toggle
  224. ///
  225. /// In en, this message translates to:
  226. /// **'Vibration'**
  227. String get hapticsEnabled;
  228. /// Tilt controls setting toggle
  229. ///
  230. /// In en, this message translates to:
  231. /// **'Tilt Controls'**
  232. String get tiltEnabled;
  233. /// Google Play Games section
  234. ///
  235. /// In en, this message translates to:
  236. /// **'Google Play Games'**
  237. String get googlePlayGames;
  238. /// Language setting label
  239. ///
  240. /// In en, this message translates to:
  241. /// **'Language'**
  242. String get language;
  243. /// Donate button text
  244. ///
  245. /// In en, this message translates to:
  246. /// **'Donate'**
  247. String get donate;
  248. /// Tutorial welcome message
  249. ///
  250. /// In en, this message translates to:
  251. /// **'Welcome to ZenTap!'**
  252. String get tutorialWelcome;
  253. /// Tutorial instructions
  254. ///
  255. /// In en, this message translates to:
  256. /// **'Tap bubbles to pop them and earn relaxation points. Tilt your device to move bubbles around!'**
  257. String get tutorialInstructions;
  258. /// Tutorial close button
  259. ///
  260. /// In en, this message translates to:
  261. /// **'Got it!'**
  262. String get tutorialClose;
  263. /// Game over message
  264. ///
  265. /// In en, this message translates to:
  266. /// **'Game Over'**
  267. String get gameOver;
  268. /// Final score display
  269. ///
  270. /// In en, this message translates to:
  271. /// **'Final Score: {score}'**
  272. String finalScore(int score);
  273. /// Play again button
  274. ///
  275. /// In en, this message translates to:
  276. /// **'Play Again'**
  277. String get playAgain;
  278. /// Back button text
  279. ///
  280. /// In en, this message translates to:
  281. /// **'Back'**
  282. String get back;
  283. /// English language name
  284. ///
  285. /// In en, this message translates to:
  286. /// **'English'**
  287. String get englishLanguage;
  288. /// German language name
  289. ///
  290. /// In en, this message translates to:
  291. /// **'Deutsch'**
  292. String get germanLanguage;
  293. /// Hungarian language name
  294. ///
  295. /// In en, this message translates to:
  296. /// **'Magyar'**
  297. String get hungarianLanguage;
  298. /// Statistics screen title
  299. ///
  300. /// In en, this message translates to:
  301. /// **'Statistics'**
  302. String get statistics;
  303. /// Overview tab title
  304. ///
  305. /// In en, this message translates to:
  306. /// **'Overview'**
  307. String get overview;
  308. /// Charts tab title
  309. ///
  310. /// In en, this message translates to:
  311. /// **'Charts'**
  312. String get charts;
  313. /// Stats section header
  314. ///
  315. /// In en, this message translates to:
  316. /// **'Your Relaxation Journey'**
  317. String get yourRelaxationJourney;
  318. /// Today's points stat card
  319. ///
  320. /// In en, this message translates to:
  321. /// **'Today\'s Points'**
  322. String get todaysPoints;
  323. /// Total points stat card
  324. ///
  325. /// In en, this message translates to:
  326. /// **'Total Points'**
  327. String get totalPoints;
  328. /// Daily average stat card
  329. ///
  330. /// In en, this message translates to:
  331. /// **'Daily Average'**
  332. String get dailyAverage;
  333. /// Current streak stat card
  334. ///
  335. /// In en, this message translates to:
  336. /// **'Current Streak'**
  337. String get currentStreak;
  338. /// Best day stat card
  339. ///
  340. /// In en, this message translates to:
  341. /// **'Best Day'**
  342. String get bestDay;
  343. /// Streak in days
  344. ///
  345. /// In en, this message translates to:
  346. /// **'{days} days'**
  347. String streakDays(int days);
  348. /// Achievements button text
  349. ///
  350. /// In en, this message translates to:
  351. /// **'Achievements'**
  352. String get achievements;
  353. /// First Steps achievement
  354. ///
  355. /// In en, this message translates to:
  356. /// **'First Steps'**
  357. String get firstSteps;
  358. /// Zen Apprentice achievement
  359. ///
  360. /// In en, this message translates to:
  361. /// **'Zen Apprentice'**
  362. String get zenApprentice;
  363. /// Bubble Master achievement
  364. ///
  365. /// In en, this message translates to:
  366. /// **'Bubble Master'**
  367. String get bubbleMaster;
  368. /// Consistent achievement
  369. ///
  370. /// In en, this message translates to:
  371. /// **'Consistent'**
  372. String get consistent;
  373. /// Dedicated achievement
  374. ///
  375. /// In en, this message translates to:
  376. /// **'Dedicated'**
  377. String get dedicated;
  378. /// Zen Master achievement
  379. ///
  380. /// In en, this message translates to:
  381. /// **'Zen Master'**
  382. String get zenMaster;
  383. /// Last 7 days section title
  384. ///
  385. /// In en, this message translates to:
  386. /// **'Last 7 Days'**
  387. String get last7Days;
  388. /// Daily progress chart title
  389. ///
  390. /// In en, this message translates to:
  391. /// **'Daily Progress (Last 14 Days)'**
  392. String get dailyProgress14Days;
  393. /// Weekly summary chart title
  394. ///
  395. /// In en, this message translates to:
  396. /// **'Weekly Summary (Last 8 Weeks)'**
  397. String get weeklySummary8Weeks;
  398. /// Monday abbreviation
  399. ///
  400. /// In en, this message translates to:
  401. /// **'Mon'**
  402. String get monday;
  403. /// Tuesday abbreviation
  404. ///
  405. /// In en, this message translates to:
  406. /// **'Tue'**
  407. String get tuesday;
  408. /// Wednesday abbreviation
  409. ///
  410. /// In en, this message translates to:
  411. /// **'Wed'**
  412. String get wednesday;
  413. /// Thursday abbreviation
  414. ///
  415. /// In en, this message translates to:
  416. /// **'Thu'**
  417. String get thursday;
  418. /// Friday abbreviation
  419. ///
  420. /// In en, this message translates to:
  421. /// **'Fri'**
  422. String get friday;
  423. /// Saturday abbreviation
  424. ///
  425. /// In en, this message translates to:
  426. /// **'Sat'**
  427. String get saturday;
  428. /// Sunday abbreviation
  429. ///
  430. /// In en, this message translates to:
  431. /// **'Sun'**
  432. String get sunday;
  433. /// Zen mode indicator in game
  434. ///
  435. /// In en, this message translates to:
  436. /// **'Zen Mode'**
  437. String get zenModeGame;
  438. /// Play mode indicator in game
  439. ///
  440. /// In en, this message translates to:
  441. /// **'Play Mode'**
  442. String get playModeGame;
  443. /// Short zen mode indicator
  444. ///
  445. /// In en, this message translates to:
  446. /// **'ZEN'**
  447. String get zenModeShort;
  448. /// Short play mode indicator
  449. ///
  450. /// In en, this message translates to:
  451. /// **'PLAY'**
  452. String get playModeShort;
  453. /// In-game relaxation points display
  454. ///
  455. /// In en, this message translates to:
  456. /// **'Relaxation Points: {points}'**
  457. String relaxationPointsGame(int points);
  458. /// In-game time display
  459. ///
  460. /// In en, this message translates to:
  461. /// **'Time: {time}'**
  462. String timeGame(String time);
  463. /// Time label
  464. ///
  465. /// In en, this message translates to:
  466. /// **'Time'**
  467. String get time;
  468. /// Paused overlay title
  469. ///
  470. /// In en, this message translates to:
  471. /// **'Paused'**
  472. String get paused;
  473. /// Pause overlay subtitle
  474. ///
  475. /// In en, this message translates to:
  476. /// **'Take a moment to breathe'**
  477. String get takeAMomentToBreathe;
  478. /// Exit dialog title
  479. ///
  480. /// In en, this message translates to:
  481. /// **'Leave Game?'**
  482. String get leaveGame;
  483. /// Exit dialog confirmation message
  484. ///
  485. /// In en, this message translates to:
  486. /// **'Are you sure you want to return to the main menu?'**
  487. String get leaveGameConfirm;
  488. /// Cancel button text
  489. ///
  490. /// In en, this message translates to:
  491. /// **'Cancel'**
  492. String get cancel;
  493. /// Leave button text
  494. ///
  495. /// In en, this message translates to:
  496. /// **'Leave'**
  497. String get leave;
  498. /// Audio settings section
  499. ///
  500. /// In en, this message translates to:
  501. /// **'Audio'**
  502. String get audio;
  503. /// Background music setting
  504. ///
  505. /// In en, this message translates to:
  506. /// **'Background Music'**
  507. String get backgroundMusic;
  508. /// Background music description
  509. ///
  510. /// In en, this message translates to:
  511. /// **'Enable relaxing ambient sounds'**
  512. String get backgroundMusicDesc;
  513. /// Music volume setting
  514. ///
  515. /// In en, this message translates to:
  516. /// **'Music Volume'**
  517. String get musicVolume;
  518. /// Sound effects volume setting
  519. ///
  520. /// In en, this message translates to:
  521. /// **'Sound Effects Volume'**
  522. String get soundEffectsVolume;
  523. /// Feedback settings section
  524. ///
  525. /// In en, this message translates to:
  526. /// **'Feedback'**
  527. String get feedback;
  528. /// Haptic feedback setting
  529. ///
  530. /// In en, this message translates to:
  531. /// **'Haptic Feedback'**
  532. String get hapticFeedback;
  533. /// Haptic feedback description
  534. ///
  535. /// In en, this message translates to:
  536. /// **'Feel gentle vibrations on tap'**
  537. String get hapticFeedbackDesc;
  538. /// Help section
  539. ///
  540. /// In en, this message translates to:
  541. /// **'Help'**
  542. String get help;
  543. /// Show tutorial option
  544. ///
  545. /// In en, this message translates to:
  546. /// **'Show Tutorial'**
  547. String get showTutorial;
  548. /// Show tutorial description
  549. ///
  550. /// In en, this message translates to:
  551. /// **'Learn how to use ZenTap'**
  552. String get showTutorialDesc;
  553. /// Support section title
  554. ///
  555. /// In en, this message translates to:
  556. /// **'Support ZenTap'**
  557. String get supportZenTap;
  558. /// Support development option
  559. ///
  560. /// In en, this message translates to:
  561. /// **'Support Development'**
  562. String get supportDevelopment;
  563. /// Support development description
  564. ///
  565. /// In en, this message translates to:
  566. /// **'Help keep ZenTap free and ad-free'**
  567. String get supportDevelopmentDesc;
  568. /// App description
  569. ///
  570. /// In en, this message translates to:
  571. /// **'A stress relief tapping game'**
  572. String get stressReliefGame;
  573. /// Tutorial dialog title
  574. ///
  575. /// In en, this message translates to:
  576. /// **'How to Use ZenTap'**
  577. String get howToUseZenTap;
  578. /// Tutorial step 1
  579. ///
  580. /// In en, this message translates to:
  581. /// **'Tap anywhere on the screen to pop bubbles'**
  582. String get tapToPopBubbles;
  583. /// Tutorial step 2
  584. ///
  585. /// In en, this message translates to:
  586. /// **'Earn Relaxation Points in Play mode'**
  587. String get earnRelaxationPoints;
  588. /// Tutorial step 3
  589. ///
  590. /// In en, this message translates to:
  591. /// **'Choose Zen Mode for pure relaxation'**
  592. String get chooseZenMode;
  593. /// Tutorial step 4
  594. ///
  595. /// In en, this message translates to:
  596. /// **'Tap pause anytime to take a break'**
  597. String get tapPauseAnytime;
  598. /// Tutorial dialog button
  599. ///
  600. /// In en, this message translates to:
  601. /// **'Got it!'**
  602. String get gotIt;
  603. /// Support dialog title
  604. ///
  605. /// In en, this message translates to:
  606. /// **'Support ZenTap'**
  607. String get supportZenTapTitle;
  608. /// Support dialog message
  609. ///
  610. /// In en, this message translates to:
  611. /// **'ZenTap is free and ad-free. If you enjoy using it, consider supporting development:'**
  612. String get supportMessage;
  613. /// Ko-fi donation option
  614. ///
  615. /// In en, this message translates to:
  616. /// **'Buy me a coffee'**
  617. String get buyMeACoffee;
  618. /// Ko-fi donation description
  619. ///
  620. /// In en, this message translates to:
  621. /// **'Ko-fi (one-time)'**
  622. String get kofiOneTime;
  623. /// PayPal donation option
  624. ///
  625. /// In en, this message translates to:
  626. /// **'PayPal Donation'**
  627. String get paypalDonation;
  628. /// PayPal donation description
  629. ///
  630. /// In en, this message translates to:
  631. /// **'Direct donation'**
  632. String get directDonation;
  633. /// GitHub Sponsors option
  634. ///
  635. /// In en, this message translates to:
  636. /// **'GitHub Sponsors'**
  637. String get githubSponsors;
  638. /// GitHub Sponsors description
  639. ///
  640. /// In en, this message translates to:
  641. /// **'Monthly support'**
  642. String get monthlySupport;
  643. /// Thank you message in support dialog
  644. ///
  645. /// In en, this message translates to:
  646. /// **'Thank you for supporting indie development! 💜'**
  647. String get thankYouMessage;
  648. /// Support dialog dismiss button
  649. ///
  650. /// In en, this message translates to:
  651. /// **'Maybe later'**
  652. String get maybeLater;
  653. /// Error message for donation link
  654. ///
  655. /// In en, this message translates to:
  656. /// **'Could not open donation link'**
  657. String get couldNotOpenDonationLink;
  658. /// Error message for donation link exception
  659. ///
  660. /// In en, this message translates to:
  661. /// **'Error opening donation link'**
  662. String get errorOpeningDonationLink;
  663. /// Language dialog title
  664. ///
  665. /// In en, this message translates to:
  666. /// **'Select Language'**
  667. String get selectLanguage;
  668. /// Appearance settings section
  669. ///
  670. /// In en, this message translates to:
  671. /// **'Appearance'**
  672. String get appearance;
  673. /// Color theme setting
  674. ///
  675. /// In en, this message translates to:
  676. /// **'Color Theme'**
  677. String get colorTheme;
  678. /// Color theme description
  679. ///
  680. /// In en, this message translates to:
  681. /// **'Choose your preferred color scheme'**
  682. String get colorThemeDesc;
  683. /// Theme dialog title
  684. ///
  685. /// In en, this message translates to:
  686. /// **'Select Theme'**
  687. String get selectTheme;
  688. /// Default theme name
  689. ///
  690. /// In en, this message translates to:
  691. /// **'Default (fSociety)'**
  692. String get defaultTheme;
  693. /// Spring theme name
  694. ///
  695. /// In en, this message translates to:
  696. /// **'Spring Bloom'**
  697. String get springTheme;
  698. /// Summer theme name
  699. ///
  700. /// In en, this message translates to:
  701. /// **'Summer Bright'**
  702. String get summerTheme;
  703. /// Autumn theme name
  704. ///
  705. /// In en, this message translates to:
  706. /// **'Autumn Leaves'**
  707. String get autumnTheme;
  708. /// Winter theme name
  709. ///
  710. /// In en, this message translates to:
  711. /// **'Winter Frost'**
  712. String get winterTheme;
  713. /// Automatic theme name
  714. ///
  715. /// In en, this message translates to:
  716. /// **'Automatic'**
  717. String get automaticTheme;
  718. /// Tutorial welcome title
  719. ///
  720. /// In en, this message translates to:
  721. /// **'Welcome to ZenTap!'**
  722. String get tutorialWelcomeTitle;
  723. /// Tutorial welcome description
  724. ///
  725. /// In en, this message translates to:
  726. /// **'Tap anywhere on the screen to pop relaxing bubbles'**
  727. String get tutorialWelcomeDescription;
  728. /// Tutorial relaxation points title
  729. ///
  730. /// In en, this message translates to:
  731. /// **'Earn Relaxation Points'**
  732. String get tutorialRelaxationTitle;
  733. /// Tutorial relaxation points description
  734. ///
  735. /// In en, this message translates to:
  736. /// **'Each bubble you pop gives you points to track your zen journey'**
  737. String get tutorialRelaxationDescription;
  738. /// Tutorial zen mode title
  739. ///
  740. /// In en, this message translates to:
  741. /// **'Ready to Relax?'**
  742. String get tutorialZenTitle;
  743. /// Tutorial zen mode description
  744. ///
  745. /// In en, this message translates to:
  746. /// **'Try Zen Mode for endless peaceful tapping without scores'**
  747. String get tutorialZenDescription;
  748. /// Previous button text
  749. ///
  750. /// In en, this message translates to:
  751. /// **'Previous'**
  752. String get previous;
  753. /// Continue button text
  754. ///
  755. /// In en, this message translates to:
  756. /// **'Continue'**
  757. String get continueButton;
  758. /// Start relaxing button text
  759. ///
  760. /// In en, this message translates to:
  761. /// **'Start Relaxing!'**
  762. String get startRelaxing;
  763. /// Skip button text
  764. ///
  765. /// In en, this message translates to:
  766. /// **'Skip'**
  767. String get skip;
  768. /// Google Play Games service disabled message
  769. ///
  770. /// In en, this message translates to:
  771. /// **'Google Play Games Services are currently disabled. This feature can be enabled by developers in future updates.'**
  772. String get googlePlayGamesServiceDisabled;
  773. /// Signed in status message
  774. ///
  775. /// In en, this message translates to:
  776. /// **'Signed in as: {playerName}'**
  777. String signedInAs(String playerName);
  778. /// Leaderboards button text
  779. ///
  780. /// In en, this message translates to:
  781. /// **'Leaderboards'**
  782. String get leaderboards;
  783. /// Sign out button text
  784. ///
  785. /// In en, this message translates to:
  786. /// **'Sign Out'**
  787. String get signOut;
  788. /// Sign in prompt message
  789. ///
  790. /// In en, this message translates to:
  791. /// **'Sign in to save your achievements and compete on leaderboards!'**
  792. String get signInPrompt;
  793. /// Signing in progress text
  794. ///
  795. /// In en, this message translates to:
  796. /// **'Signing In...'**
  797. String get signingIn;
  798. /// Sign in button text
  799. ///
  800. /// In en, this message translates to:
  801. /// **'Sign In'**
  802. String get signIn;
  803. /// Sign in success message
  804. ///
  805. /// In en, this message translates to:
  806. /// **'Successfully signed in to Google Play Games!'**
  807. String get signInSuccess;
  808. /// Sign in failed message
  809. ///
  810. /// In en, this message translates to:
  811. /// **'Failed to sign in to Google Play Games'**
  812. String get signInFailed;
  813. /// Sign out success message
  814. ///
  815. /// In en, this message translates to:
  816. /// **'Signed out from Google Play Games'**
  817. String get signOutSuccess;
  818. /// Error message when signing in fails
  819. ///
  820. /// In en, this message translates to:
  821. /// **'Error signing in: {error}'**
  822. String errorSigningIn(String error);
  823. /// Error message when showing leaderboards fails
  824. ///
  825. /// In en, this message translates to:
  826. /// **'Error showing leaderboards: {error}'**
  827. String errorShowingLeaderboards(String error);
  828. /// Error message when showing achievements fails
  829. ///
  830. /// In en, this message translates to:
  831. /// **'Error showing achievements: {error}'**
  832. String errorShowingAchievements(String error);
  833. }
  834. class _AppLocalizationsDelegate
  835. extends LocalizationsDelegate<AppLocalizations> {
  836. const _AppLocalizationsDelegate();
  837. @override
  838. Future<AppLocalizations> load(Locale locale) {
  839. return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
  840. }
  841. @override
  842. bool isSupported(Locale locale) =>
  843. <String>['de', 'en', 'hu'].contains(locale.languageCode);
  844. @override
  845. bool shouldReload(_AppLocalizationsDelegate old) => false;
  846. }
  847. AppLocalizations lookupAppLocalizations(Locale locale) {
  848. // Lookup logic when only language code is specified.
  849. switch (locale.languageCode) {
  850. case 'de':
  851. return AppLocalizationsDe();
  852. case 'en':
  853. return AppLocalizationsEn();
  854. case 'hu':
  855. return AppLocalizationsHu();
  856. }
  857. throw FlutterError(
  858. 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
  859. 'an issue with the localizations generation tool. Please file an issue '
  860. 'on GitHub with a reproducible sample app and the gen-l10n configuration '
  861. 'that was used.',
  862. );
  863. }