An item's page names its spoken language. Where the library has several, its cards do too and Explore offers them, several at once, none meaning every one, kept in the person's sealed settings. A library with one language asks nothing. Whats-New: The library says each recording's spoken language, and Explore lets you choose among several. Whats-New-De: Die Bibliothek nennt die gesprochene Sprache jeder Aufnahme, und bei mehreren wählst du sie in „Entdecken“ aus. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
1422 lines
40 KiB
Dart
1422 lines
40 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;
|
||
|
||
/// No description provided for @dreamDictate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dictate'**
|
||
String get dreamDictate;
|
||
|
||
/// No description provided for @dreamStopDictating.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stop dictating'**
|
||
String get dreamStopDictating;
|
||
|
||
/// No description provided for @dreamListening.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Listening…'**
|
||
String get dreamListening;
|
||
|
||
/// No description provided for @dreamSpeechUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This device can\'t listen now. Does the app have the microphone\'s permission?'**
|
||
String get dreamSpeechUnavailable;
|
||
|
||
/// No description provided for @todayDreamSpeak.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Speak it'**
|
||
String get todayDreamSpeak;
|
||
|
||
/// No description provided for @exploreLibrary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'From {server}'**
|
||
String exploreLibrary(String server);
|
||
|
||
/// No description provided for @libraryCourses.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Courses'**
|
||
String get libraryCourses;
|
||
|
||
/// No description provided for @libraryCourse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Course'**
|
||
String get libraryCourse;
|
||
|
||
/// No description provided for @libraryCategoryMeditation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Meditation'**
|
||
String get libraryCategoryMeditation;
|
||
|
||
/// No description provided for @libraryCategorySleepStory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sleep stories'**
|
||
String get libraryCategorySleepStory;
|
||
|
||
/// No description provided for @libraryCategorySound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sounds'**
|
||
String get libraryCategorySound;
|
||
|
||
/// No description provided for @libraryCategoryMovement.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Movement'**
|
||
String get libraryCategoryMovement;
|
||
|
||
/// No description provided for @libraryCategoryAutogenicTraining.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Autogenic training'**
|
||
String get libraryCategoryAutogenicTraining;
|
||
|
||
/// No description provided for @libraryCategoryProgressiveMuscleRelaxation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Progressive muscle relaxation'**
|
||
String get libraryCategoryProgressiveMuscleRelaxation;
|
||
|
||
/// No description provided for @libraryCategoryRoutine.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Routines'**
|
||
String get libraryCategoryRoutine;
|
||
|
||
/// No description provided for @libraryCategoryDreamJourney.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dream journeys'**
|
||
String get libraryCategoryDreamJourney;
|
||
|
||
/// No description provided for @libraryCategoryKnowledge.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Knowledge'**
|
||
String get libraryCategoryKnowledge;
|
||
|
||
/// No description provided for @libraryCategoryMorningStory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Morning stories'**
|
||
String get libraryCategoryMorningStory;
|
||
|
||
/// No description provided for @libraryCategoryOther.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Other'**
|
||
String get libraryCategoryOther;
|
||
|
||
/// No description provided for @libraryLessons.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 lesson} other{{count} lessons}}'**
|
||
String libraryLessons(int count);
|
||
|
||
/// No description provided for @libraryLessonsDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{done} of {count} done'**
|
||
String libraryLessonsDone(int done, int count);
|
||
|
||
/// No description provided for @libraryLessonDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get libraryLessonDone;
|
||
|
||
/// No description provided for @libraryWith.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'With {speaker}'**
|
||
String libraryWith(String speaker);
|
||
|
||
/// No description provided for @libraryPlay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play'**
|
||
String get libraryPlay;
|
||
|
||
/// No description provided for @libraryPause.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pause'**
|
||
String get libraryPause;
|
||
|
||
/// No description provided for @libraryResume.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resume'**
|
||
String get libraryResume;
|
||
|
||
/// No description provided for @libraryStop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stop'**
|
||
String get libraryStop;
|
||
|
||
/// No description provided for @libraryRecording.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recording'**
|
||
String get libraryRecording;
|
||
|
||
/// No description provided for @libraryKeep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep on this device'**
|
||
String get libraryKeep;
|
||
|
||
/// No description provided for @libraryKeeping.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fetching…'**
|
||
String get libraryKeeping;
|
||
|
||
/// No description provided for @libraryKept.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'On this device'**
|
||
String get libraryKept;
|
||
|
||
/// No description provided for @libraryRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from this device'**
|
||
String get libraryRemove;
|
||
|
||
/// No description provided for @libraryKeepFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It couldn\'t be fetched. Try again when you\'re online.'**
|
||
String get libraryKeepFailed;
|
||
|
||
/// No description provided for @libraryPlayFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It can\'t be played now. Are you online?'**
|
||
String get libraryPlayFailed;
|
||
|
||
/// No description provided for @librarySitWithSound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sit in silence with this sound'**
|
||
String get librarySitWithSound;
|
||
|
||
/// No description provided for @libraryCredit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Credit'**
|
||
String get libraryCredit;
|
||
|
||
/// No description provided for @libraryLicence.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Licence'**
|
||
String get libraryLicence;
|
||
|
||
/// No description provided for @libraryCredits.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Library credits'**
|
||
String get libraryCredits;
|
||
|
||
/// No description provided for @libraryCreditsIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What the library of {server} offers, whom each is credited to and under which licence.'**
|
||
String libraryCreditsIntro(String server);
|
||
|
||
/// No description provided for @libraryGone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This isn\'t in the library any more.'**
|
||
String get libraryGone;
|
||
|
||
/// No description provided for @libraryFromLibrary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'From the library'**
|
||
String get libraryFromLibrary;
|
||
|
||
/// No description provided for @exploreSpokenLanguage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spoken language'**
|
||
String get exploreSpokenLanguage;
|
||
|
||
/// No description provided for @languageEnglish.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'English'**
|
||
String get languageEnglish;
|
||
|
||
/// No description provided for @languageGerman.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'German'**
|
||
String get languageGerman;
|
||
|
||
/// No description provided for @librarySpokenIn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spoken in {language}'**
|
||
String librarySpokenIn(String language);
|
||
}
|
||
|
||
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.',
|
||
);
|
||
}
|