ADR 0038, D14. A dream (`Dream`) holds the night it belongs to (the morning's date, today's by default), an optional title, its text, the marks lucid, nightmare and recurring, a clarity of 1 to 5, the mood on waking and free labels, and when it was written; a row each in `dream`, sealed for its row with the person's key as the sittings (`DreamRepository` on `SealedRows`, `SyncDreamGateway`), followed by `JournalCubit` for every screen. - The Journal, between Explore and Profile: dreams by month, the newest first, searched over title, text and labels as Explore searches, filtered by marks, `+` above the bar; empty, it says that entries are sealed on the device before they sync. - A dream's screen over the tabs: a new one with its text first and focused, the rest folded below; a kept one to read, with Edit and Delete (asked first); leaving one written but not saved asks first. - Today, from 4 to 12 o'clock while last night has no dream, a gentle card leading to a new one; Settings' Journal card switches it off (`dreamPrompt` in the sealed settings, schema 1 kept). - Profile's Practice: this month's dreams and the lucid ones, once the journal holds one. - English and German texts; What's new 0.1.0 names the journal; the account's deletion says it takes the dreams too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
1152 lines
33 KiB
Dart
1152 lines
33 KiB
Dart
import 'dart:async';
|
||
|
||
import 'package:flutter/foundation.dart';
|
||
import 'package:flutter/widgets.dart';
|
||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||
import 'package:intl/intl.dart' as intl;
|
||
|
||
import 'app_localizations_de.dart';
|
||
import 'app_localizations_en.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||
/// returned by `AppLocalizations.of(context)`.
|
||
///
|
||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||
/// `localizationDelegates` list, and the locales they support in the app's
|
||
/// `supportedLocales` list. For example:
|
||
///
|
||
/// ```dart
|
||
/// import 'l10n/app_localizations.dart';
|
||
///
|
||
/// return MaterialApp(
|
||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||
/// home: MyApplicationHome(),
|
||
/// );
|
||
/// ```
|
||
///
|
||
/// ## Update pubspec.yaml
|
||
///
|
||
/// Please make sure to update your pubspec.yaml to include the following
|
||
/// packages:
|
||
///
|
||
/// ```yaml
|
||
/// dependencies:
|
||
/// # Internationalization support.
|
||
/// flutter_localizations:
|
||
/// sdk: flutter
|
||
/// intl: any # Use the pinned version from flutter_localizations
|
||
///
|
||
/// # Rest of dependencies
|
||
/// ```
|
||
///
|
||
/// ## iOS Applications
|
||
///
|
||
/// iOS applications define key application metadata, including supported
|
||
/// locales, in an Info.plist file that is built into the application bundle.
|
||
/// To configure the locales supported by your app, you’ll need to edit this
|
||
/// file.
|
||
///
|
||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||
/// project’s Runner folder.
|
||
///
|
||
/// Next, select the Information Property List item, select Add Item from the
|
||
/// Editor menu, then select Localizations from the pop-up menu.
|
||
///
|
||
/// Select and expand the newly-created Localizations item then, for each
|
||
/// locale your application supports, add a new item and select the locale
|
||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||
/// property.
|
||
abstract class AppLocalizations {
|
||
AppLocalizations(String locale)
|
||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||
|
||
final String localeName;
|
||
|
||
static AppLocalizations of(BuildContext context) {
|
||
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||
_AppLocalizationsDelegate();
|
||
|
||
/// A list of this localizations delegate along with the default localizations
|
||
/// delegates.
|
||
///
|
||
/// Returns a list of localizations delegates containing this delegate along with
|
||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||
/// and GlobalWidgetsLocalizations.delegate.
|
||
///
|
||
/// Additional delegates can be added by appending to this list in
|
||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||
/// of delegates is preferred or required.
|
||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[
|
||
Locale('de'),
|
||
Locale('en'),
|
||
Locale('en', 'GB'),
|
||
Locale('en', 'US'),
|
||
];
|
||
|
||
/// The app's name: the window's title, and where halkyon_app's texts name the app.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Halkyon Meditate'**
|
||
String get appTitle;
|
||
|
||
/// The app's word in its wordmark, under "Halkyon".
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Meditate'**
|
||
String get launchProduct;
|
||
|
||
/// No description provided for @instanceFirstStartSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose the instance to keep your practice on. Someone runs each one; you can add others later.'**
|
||
String get instanceFirstStartSubtitle;
|
||
|
||
/// No description provided for @accountTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Account'**
|
||
String get accountTitle;
|
||
|
||
/// No description provided for @accountDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your account is deleted on the server and on all your devices, with every sitting and dream kept. This can\'t be undone.'**
|
||
String get accountDeleteMessage;
|
||
|
||
/// No description provided for @aboutTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About Halkyon Meditate'**
|
||
String get aboutTitle;
|
||
|
||
/// No description provided for @settingsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Settings'**
|
||
String get settingsTitle;
|
||
|
||
/// No description provided for @settingsVersion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Version {version} (build {build})'**
|
||
String settingsVersion(String version, String build);
|
||
|
||
/// No description provided for @keysMissing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This device can\'t save: it doesn\'t hold your account\'s keys. Sign in with your password or recovery phrase to add them.'**
|
||
String get keysMissing;
|
||
|
||
/// No description provided for @shellTabToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get shellTabToday;
|
||
|
||
/// No description provided for @shellTabExplore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Explore'**
|
||
String get shellTabExplore;
|
||
|
||
/// No description provided for @shellTabProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profile'**
|
||
String get shellTabProfile;
|
||
|
||
/// No description provided for @greetingMorning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Good morning'**
|
||
String get greetingMorning;
|
||
|
||
/// No description provided for @greetingAfternoon.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Good afternoon'**
|
||
String get greetingAfternoon;
|
||
|
||
/// No description provided for @greetingEvening.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Good evening'**
|
||
String get greetingEvening;
|
||
|
||
/// No description provided for @greetingNight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A quiet night'**
|
||
String get greetingNight;
|
||
|
||
/// Minutes, after a number typed or stepped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'min'**
|
||
String get minutesUnit;
|
||
|
||
/// A length in minutes, short, on chips and rows.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes} min'**
|
||
String minutes(int minutes);
|
||
|
||
/// No description provided for @todaySitNow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sit now'**
|
||
String get todaySitNow;
|
||
|
||
/// No description provided for @todaySitNowHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A silent sitting with bells, as long as you choose.'**
|
||
String get todaySitNowHint;
|
||
|
||
/// No description provided for @todayPracticeOfDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Practice of the day'**
|
||
String get todayPracticeOfDay;
|
||
|
||
/// No description provided for @todayThisWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This week'**
|
||
String get todayThisWeek;
|
||
|
||
/// No description provided for @streakDays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =0{No days in a row yet} =1{1 day in a row} other{{count} days in a row}}'**
|
||
String streakDays(int count);
|
||
|
||
/// No description provided for @favouritesTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Favourites'**
|
||
String get favouritesTitle;
|
||
|
||
/// No description provided for @favouritesNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No favourites yet. Mark a practice with its heart in Explore.'**
|
||
String get favouritesNone;
|
||
|
||
/// No description provided for @recentTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recently sat'**
|
||
String get recentTitle;
|
||
|
||
/// No description provided for @recentNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing sat yet.'**
|
||
String get recentNone;
|
||
|
||
/// No description provided for @silentTimer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Silent timer'**
|
||
String get silentTimer;
|
||
|
||
/// A sitting kept: when it began and how long it was sat.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{date} · {minutes} min'**
|
||
String sittingRow(String date, int minutes);
|
||
|
||
/// No description provided for @exploreSearch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search practices'**
|
||
String get exploreSearch;
|
||
|
||
/// No description provided for @exploreGoals.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What brings you here?'**
|
||
String get exploreGoals;
|
||
|
||
/// No description provided for @exploreAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All'**
|
||
String get exploreAll;
|
||
|
||
/// No description provided for @exploreNoMatch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No practice matches.'**
|
||
String get exploreNoMatch;
|
||
|
||
/// No description provided for @goalCalm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Calm down'**
|
||
String get goalCalm;
|
||
|
||
/// No description provided for @goalSleep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sleep'**
|
||
String get goalSleep;
|
||
|
||
/// No description provided for @goalFocus.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Focus'**
|
||
String get goalFocus;
|
||
|
||
/// No description provided for @goalBegin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Begin'**
|
||
String get goalBegin;
|
||
|
||
/// No description provided for @kindBreathing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Breathing'**
|
||
String get kindBreathing;
|
||
|
||
/// No description provided for @kindBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Body'**
|
||
String get kindBody;
|
||
|
||
/// No description provided for @kindAwareness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Awareness'**
|
||
String get kindAwareness;
|
||
|
||
/// No description provided for @kindKindness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Kindness'**
|
||
String get kindKindness;
|
||
|
||
/// No description provided for @kindSleep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sleep'**
|
||
String get kindSleep;
|
||
|
||
/// No description provided for @kindPause.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pause'**
|
||
String get kindPause;
|
||
|
||
/// No description provided for @practiceStart.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start'**
|
||
String get practiceStart;
|
||
|
||
/// No description provided for @practiceLength.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Length'**
|
||
String get practiceLength;
|
||
|
||
/// No description provided for @practiceHowItGoes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How it goes'**
|
||
String get practiceHowItGoes;
|
||
|
||
/// No description provided for @practiceFavourite.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add to favourites'**
|
||
String get practiceFavourite;
|
||
|
||
/// No description provided for @practiceUnfavourite.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from favourites'**
|
||
String get practiceUnfavourite;
|
||
|
||
/// No description provided for @practiceGone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This practice isn\'t in this version of the app.'**
|
||
String get practiceGone;
|
||
|
||
/// No description provided for @practiceBreathCountingTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Counting breaths'**
|
||
String get practiceBreathCountingTitle;
|
||
|
||
/// No description provided for @practiceBreathCountingSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Count each out-breath from one to ten, then begin again.'**
|
||
String get practiceBreathCountingSummary;
|
||
|
||
/// No description provided for @practiceBreathCountingCue1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sit comfortably. Let the breath come and go by itself.'**
|
||
String get practiceBreathCountingCue1;
|
||
|
||
/// No description provided for @practiceBreathCountingCue2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'With each out-breath, count: one, two, and on up to ten.'**
|
||
String get practiceBreathCountingCue2;
|
||
|
||
/// No description provided for @practiceBreathCountingCue3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lost count? Notice it kindly and begin again at one.'**
|
||
String get practiceBreathCountingCue3;
|
||
|
||
/// No description provided for @practiceBreathCountingCue4.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Let the counting go. Rest with the breath as it is.'**
|
||
String get practiceBreathCountingCue4;
|
||
|
||
/// No description provided for @practiceThreeMinutePauseTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Three-minute pause'**
|
||
String get practiceThreeMinutePauseTitle;
|
||
|
||
/// No description provided for @practiceThreeMinutePauseSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A short stop in the day: notice, gather, widen.'**
|
||
String get practiceThreeMinutePauseSummary;
|
||
|
||
/// No description provided for @practiceThreeMinutePauseCue1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What is here right now? Thoughts, feelings, sensations.'**
|
||
String get practiceThreeMinutePauseCue1;
|
||
|
||
/// No description provided for @practiceThreeMinutePauseCue2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Gather your attention on the breath, low in the belly.'**
|
||
String get practiceThreeMinutePauseCue2;
|
||
|
||
/// No description provided for @practiceThreeMinutePauseCue3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Widen it to the whole body, and to the room around you.'**
|
||
String get practiceThreeMinutePauseCue3;
|
||
|
||
/// No description provided for @practiceBodyScanTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Body scan'**
|
||
String get practiceBodyScanTitle;
|
||
|
||
/// No description provided for @practiceBodyScanSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move your attention slowly through the body, from the feet up.'**
|
||
String get practiceBodyScanSummary;
|
||
|
||
/// No description provided for @practiceBodyScanCue1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lie or sit comfortably. Feel where the body meets the ground.'**
|
||
String get practiceBodyScanCue1;
|
||
|
||
/// No description provided for @practiceBodyScanCue2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bring your attention to your feet and legs. Just notice.'**
|
||
String get practiceBodyScanCue2;
|
||
|
||
/// No description provided for @practiceBodyScanCue3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move up through the belly, the back and the chest.'**
|
||
String get practiceBodyScanCue3;
|
||
|
||
/// No description provided for @practiceBodyScanCue4.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notice the hands, the arms, the shoulders and the neck.'**
|
||
String get practiceBodyScanCue4;
|
||
|
||
/// No description provided for @practiceBodyScanCue5.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The face and the head. Then feel the whole body at once.'**
|
||
String get practiceBodyScanCue5;
|
||
|
||
/// No description provided for @practiceOpenAwarenessTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open awareness'**
|
||
String get practiceOpenAwarenessTitle;
|
||
|
||
/// No description provided for @practiceOpenAwarenessSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rest your attention on nothing in particular, and let whatever comes pass.'**
|
||
String get practiceOpenAwarenessSummary;
|
||
|
||
/// No description provided for @practiceOpenAwarenessCue1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Begin with a few breaths, settling in.'**
|
||
String get practiceOpenAwarenessCue1;
|
||
|
||
/// No description provided for @practiceOpenAwarenessCue2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Let the breath go. Notice sounds as they come and go.'**
|
||
String get practiceOpenAwarenessCue2;
|
||
|
||
/// No description provided for @practiceOpenAwarenessCue3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Thoughts may come too. See them arrive, and leave.'**
|
||
String get practiceOpenAwarenessCue3;
|
||
|
||
/// No description provided for @practiceOpenAwarenessCue4.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Simply be aware, with nothing to do.'**
|
||
String get practiceOpenAwarenessCue4;
|
||
|
||
/// No description provided for @practiceLovingKindnessTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Kind wishes'**
|
||
String get practiceLovingKindnessTitle;
|
||
|
||
/// No description provided for @practiceLovingKindnessSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Wish yourself and others well, one circle after the other.'**
|
||
String get practiceLovingKindnessSummary;
|
||
|
||
/// No description provided for @practiceLovingKindnessCue1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Think of yourself: may I be safe, may I be at ease.'**
|
||
String get practiceLovingKindnessCue1;
|
||
|
||
/// No description provided for @practiceLovingKindnessCue2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Think of someone dear to you: may you be safe, may you be at ease.'**
|
||
String get practiceLovingKindnessCue2;
|
||
|
||
/// No description provided for @practiceLovingKindnessCue3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Think of someone you hardly know, and wish them the same.'**
|
||
String get practiceLovingKindnessCue3;
|
||
|
||
/// No description provided for @practiceLovingKindnessCue4.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Let the wishes spread to everyone, everywhere.'**
|
||
String get practiceLovingKindnessCue4;
|
||
|
||
/// No description provided for @practiceSettlingForSleepTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Settling for sleep'**
|
||
String get practiceSettlingForSleepTitle;
|
||
|
||
/// No description provided for @practiceSettlingForSleepSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Slow the breath and let the day go before you sleep.'**
|
||
String get practiceSettlingForSleepSummary;
|
||
|
||
/// No description provided for @practiceSettlingForSleepCue1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lie down. Let the bed carry your weight.'**
|
||
String get practiceSettlingForSleepCue1;
|
||
|
||
/// No description provided for @practiceSettlingForSleepCue2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Breathe out a little longer than you breathe in.'**
|
||
String get practiceSettlingForSleepCue2;
|
||
|
||
/// No description provided for @practiceSettlingForSleepCue3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Let the day\'s thoughts drift past like clouds.'**
|
||
String get practiceSettlingForSleepCue3;
|
||
|
||
/// No description provided for @practiceSettlingForSleepCue4.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing more to do. Let sleep come when it comes.'**
|
||
String get practiceSettlingForSleepCue4;
|
||
|
||
/// No description provided for @timerCue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sit in silence. The bell tells you when it is over.'**
|
||
String get timerCue;
|
||
|
||
/// No description provided for @sittingPause.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pause'**
|
||
String get sittingPause;
|
||
|
||
/// No description provided for @sittingResume.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resume'**
|
||
String get sittingResume;
|
||
|
||
/// No description provided for @sittingEnd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'End'**
|
||
String get sittingEnd;
|
||
|
||
/// No description provided for @sittingPaused.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paused'**
|
||
String get sittingPaused;
|
||
|
||
/// No description provided for @sittingDoneTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Well sat'**
|
||
String get sittingDoneTitle;
|
||
|
||
/// No description provided for @sittingDoneMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes, plural, =1{1 minute sat.} other{{minutes} minutes sat.}}'**
|
||
String sittingDoneMessage(int minutes);
|
||
|
||
/// No description provided for @sittingDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get sittingDone;
|
||
|
||
/// No description provided for @sittingEndTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'End the sitting?'**
|
||
String get sittingEndTitle;
|
||
|
||
/// No description provided for @sittingEndMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes, plural, =1{1 minute sat so far. Keep it among your sittings?} other{{minutes} minutes sat so far. Keep them among your sittings?}}'**
|
||
String sittingEndMessage(int minutes);
|
||
|
||
/// No description provided for @sittingKeep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep'**
|
||
String get sittingKeep;
|
||
|
||
/// No description provided for @sittingDiscard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard'**
|
||
String get sittingDiscard;
|
||
|
||
/// No description provided for @sittingSitOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sit on'**
|
||
String get sittingSitOn;
|
||
|
||
/// No description provided for @profileTabPractice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Practice'**
|
||
String get profileTabPractice;
|
||
|
||
/// No description provided for @figuresMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Minutes'**
|
||
String get figuresMinutes;
|
||
|
||
/// No description provided for @figuresSittings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sittings'**
|
||
String get figuresSittings;
|
||
|
||
/// No description provided for @figuresDays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Days'**
|
||
String get figuresDays;
|
||
|
||
/// No description provided for @historyTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your sittings'**
|
||
String get historyTitle;
|
||
|
||
/// No description provided for @sittingDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get sittingDelete;
|
||
|
||
/// No description provided for @sittingDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete this sitting?'**
|
||
String get sittingDeleteTitle;
|
||
|
||
/// No description provided for @sittingDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It goes from your figures on all your devices.'**
|
||
String get sittingDeleteMessage;
|
||
|
||
/// No description provided for @settingsSitting.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sitting'**
|
||
String get settingsSitting;
|
||
|
||
/// No description provided for @bellTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bell'**
|
||
String get bellTitle;
|
||
|
||
/// No description provided for @bellBowl.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Singing bowl'**
|
||
String get bellBowl;
|
||
|
||
/// No description provided for @bellSmallBell.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Small bell'**
|
||
String get bellSmallBell;
|
||
|
||
/// No description provided for @bellWoodBlock.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Wooden block'**
|
||
String get bellWoodBlock;
|
||
|
||
/// No description provided for @startBellTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bell at the start'**
|
||
String get startBellTitle;
|
||
|
||
/// No description provided for @intervalTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bells between'**
|
||
String get intervalTitle;
|
||
|
||
/// No description provided for @intervalNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None'**
|
||
String get intervalNone;
|
||
|
||
/// No description provided for @intervalEvery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Every {minutes} min'**
|
||
String intervalEvery(int minutes);
|
||
|
||
/// No description provided for @keepScreenOnTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep the screen on'**
|
||
String get keepScreenOnTitle;
|
||
|
||
/// No description provided for @keepScreenOnHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'While a sitting runs'**
|
||
String get keepScreenOnHint;
|
||
|
||
/// No description provided for @timerLengthTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Silent timer\'s length'**
|
||
String get timerLengthTitle;
|
||
|
||
/// No description provided for @settingsPractice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Practice'**
|
||
String get settingsPractice;
|
||
|
||
/// No description provided for @showStreakTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show the days in a row'**
|
||
String get showStreakTitle;
|
||
|
||
/// No description provided for @showStreakHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'On Today and in your Profile'**
|
||
String get showStreakHint;
|
||
|
||
/// No description provided for @shellTabJournal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Journal'**
|
||
String get shellTabJournal;
|
||
|
||
/// No description provided for @journalSearch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search dreams'**
|
||
String get journalSearch;
|
||
|
||
/// No description provided for @journalEmptyTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your dream journal'**
|
||
String get journalEmptyTitle;
|
||
|
||
/// No description provided for @journalEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Write down a dream as soon as you wake, before it fades. Every entry is sealed on this device before it syncs: nobody else can read it, not even the instance.'**
|
||
String get journalEmpty;
|
||
|
||
/// No description provided for @journalNoMatch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No dream matches.'**
|
||
String get journalNoMatch;
|
||
|
||
/// No description provided for @journalAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Write down a dream'**
|
||
String get journalAdd;
|
||
|
||
/// No description provided for @journalFiguresTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dream journal'**
|
||
String get journalFiguresTitle;
|
||
|
||
/// No description provided for @figuresDreamsThisMonth.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This month'**
|
||
String get figuresDreamsThisMonth;
|
||
|
||
/// No description provided for @figuresLucid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lucid'**
|
||
String get figuresLucid;
|
||
|
||
/// No description provided for @markLucid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lucid'**
|
||
String get markLucid;
|
||
|
||
/// No description provided for @markNightmare.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nightmare'**
|
||
String get markNightmare;
|
||
|
||
/// No description provided for @markRecurring.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recurring'**
|
||
String get markRecurring;
|
||
|
||
/// No description provided for @moodGlad.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Glad'**
|
||
String get moodGlad;
|
||
|
||
/// No description provided for @moodCalm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Calm'**
|
||
String get moodCalm;
|
||
|
||
/// No description provided for @moodPuzzled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Puzzled'**
|
||
String get moodPuzzled;
|
||
|
||
/// No description provided for @moodSad.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sad'**
|
||
String get moodSad;
|
||
|
||
/// No description provided for @moodUneasy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Uneasy'**
|
||
String get moodUneasy;
|
||
|
||
/// No description provided for @dreamNew.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New dream'**
|
||
String get dreamNew;
|
||
|
||
/// No description provided for @dreamLastNight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last night'**
|
||
String get dreamLastNight;
|
||
|
||
/// The night a dream belongs to, named by the morning after it.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Night before {date}'**
|
||
String dreamNight(String date);
|
||
|
||
/// No description provided for @dreamTextHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What did you dream?'**
|
||
String get dreamTextHint;
|
||
|
||
/// No description provided for @dreamTitleLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title (optional)'**
|
||
String get dreamTitleLabel;
|
||
|
||
/// No description provided for @dreamMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Night, title, marks and more'**
|
||
String get dreamMore;
|
||
|
||
/// No description provided for @dreamNightLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Night'**
|
||
String get dreamNightLabel;
|
||
|
||
/// No description provided for @dreamMarksLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Marks'**
|
||
String get dreamMarksLabel;
|
||
|
||
/// No description provided for @dreamClarityLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clarity'**
|
||
String get dreamClarityLabel;
|
||
|
||
/// No description provided for @dreamClarityHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How clearly you remember it, 1 to 5'**
|
||
String get dreamClarityHint;
|
||
|
||
/// No description provided for @dreamClarityValue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clarity {clarity}/5'**
|
||
String dreamClarityValue(int clarity);
|
||
|
||
/// No description provided for @dreamMoodLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mood on waking'**
|
||
String get dreamMoodLabel;
|
||
|
||
/// No description provided for @dreamLabelsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Labels'**
|
||
String get dreamLabelsLabel;
|
||
|
||
/// No description provided for @dreamLabelsHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'People, places, themes'**
|
||
String get dreamLabelsHint;
|
||
|
||
/// No description provided for @dreamLabelAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add label'**
|
||
String get dreamLabelAdd;
|
||
|
||
/// No description provided for @dreamSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get dreamSave;
|
||
|
||
/// No description provided for @dreamEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get dreamEdit;
|
||
|
||
/// No description provided for @dreamDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get dreamDelete;
|
||
|
||
/// No description provided for @dreamDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete this dream?'**
|
||
String get dreamDeleteTitle;
|
||
|
||
/// No description provided for @dreamDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It goes from your journal on all your devices.'**
|
||
String get dreamDeleteMessage;
|
||
|
||
/// No description provided for @dreamDiscardTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard this dream?'**
|
||
String get dreamDiscardTitle;
|
||
|
||
/// No description provided for @dreamDiscardMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What you wrote isn\'t saved.'**
|
||
String get dreamDiscardMessage;
|
||
|
||
/// No description provided for @dreamDiscard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard'**
|
||
String get dreamDiscard;
|
||
|
||
/// No description provided for @dreamWritten.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Written {date}'**
|
||
String dreamWritten(String date);
|
||
|
||
/// No description provided for @todayDreamPrompt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Write down last night\'s dream'**
|
||
String get todayDreamPrompt;
|
||
|
||
/// No description provided for @todayDreamPromptHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Before it fades. Sealed on this device.'**
|
||
String get todayDreamPromptHint;
|
||
|
||
/// No description provided for @settingsJournal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Journal'**
|
||
String get settingsJournal;
|
||
|
||
/// No description provided for @dreamPromptTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ask for last night\'s dream'**
|
||
String get dreamPromptTitle;
|
||
|
||
/// No description provided for @dreamPromptHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'On Today, from 4 to 12 o\'clock, until you write one'**
|
||
String get dreamPromptHint;
|
||
}
|
||
|
||
class _AppLocalizationsDelegate
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) =>
|
||
<String>['de', 'en'].contains(locale.languageCode);
|
||
|
||
@override
|
||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||
}
|
||
|
||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||
// Lookup logic when language+country codes are specified.
|
||
switch (locale.languageCode) {
|
||
case 'en':
|
||
{
|
||
switch (locale.countryCode) {
|
||
case 'GB':
|
||
return AppLocalizationsEnGb();
|
||
case 'US':
|
||
return AppLocalizationsEnUs();
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
// Lookup logic when only language code is specified.
|
||
switch (locale.languageCode) {
|
||
case 'de':
|
||
return AppLocalizationsDe();
|
||
case 'en':
|
||
return AppLocalizationsEn();
|
||
}
|
||
|
||
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.',
|
||
);
|
||
}
|