planReminders plans each reminder at a time of its own of an open task, whatever its date, under an ID of its own; the notification says "Reminder" for a task without a time. The task's sheet always has its reminders' row: those before its time where it has one, those at a time of their own each with its remove button and "Remind at a time" (a day, then a time), the permission asked as a first one is chosen. The date sheet sets a duration once there is a time (none, 15 minutes to 4 hours, as Todoist's), a time cleared taking it with it. Recorded as ADR 0033, D18 (the developer's, 3 Nov 2026). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
1614 lines
44 KiB
Dart
1614 lines
44 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 Todo'**
|
||
String get appTitle;
|
||
|
||
/// The app's word in its wordmark, under "Halkyon".
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Todo'**
|
||
String get launchProduct;
|
||
|
||
/// No description provided for @instanceFirstStartSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose the instance to keep your tasks 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. This can\'t be undone.'**
|
||
String get accountDeleteMessage;
|
||
|
||
/// No description provided for @aboutTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About Halkyon Todo'**
|
||
String get aboutTitle;
|
||
|
||
/// No description provided for @shellTabToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get shellTabToday;
|
||
|
||
/// No description provided for @shellTabUpcoming.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Upcoming'**
|
||
String get shellTabUpcoming;
|
||
|
||
/// No description provided for @shellTabInbox.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Inbox'**
|
||
String get shellTabInbox;
|
||
|
||
/// No description provided for @browseProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profile'**
|
||
String get browseProfile;
|
||
|
||
/// No description provided for @browseProfileHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your account, how you sign in and your public profile'**
|
||
String get browseProfileHint;
|
||
|
||
/// No description provided for @shellTabBrowse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Browse'**
|
||
String get shellTabBrowse;
|
||
|
||
/// 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 @clear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear'**
|
||
String get clear;
|
||
|
||
/// No description provided for @colorLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Colour'**
|
||
String get colorLabel;
|
||
|
||
/// No description provided for @dateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Date'**
|
||
String get dateTitle;
|
||
|
||
/// No description provided for @dateNextWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next week'**
|
||
String get dateNextWeek;
|
||
|
||
/// No description provided for @dateWeekend.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This weekend'**
|
||
String get dateWeekend;
|
||
|
||
/// No description provided for @datePick.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pick a day'**
|
||
String get datePick;
|
||
|
||
/// No description provided for @dateTime.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Time'**
|
||
String get dateTime;
|
||
|
||
/// No description provided for @dateNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No date'**
|
||
String get dateNone;
|
||
|
||
/// No description provided for @dateNoneYet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No date'**
|
||
String get dateNoneYet;
|
||
|
||
/// No description provided for @dayToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get dayToday;
|
||
|
||
/// No description provided for @dayTomorrow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tomorrow'**
|
||
String get dayTomorrow;
|
||
|
||
/// No description provided for @dayYesterday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Yesterday'**
|
||
String get dayYesterday;
|
||
|
||
/// No description provided for @dayHeadingNamed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{date} · {name}'**
|
||
String dayHeadingNamed(String date, String name);
|
||
|
||
/// No description provided for @deadlineOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline {day}'**
|
||
String deadlineOn(String day);
|
||
|
||
/// No description provided for @deadlineNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No deadline'**
|
||
String get deadlineNone;
|
||
|
||
/// 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 @labelsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Labels'**
|
||
String get labelsTitle;
|
||
|
||
/// No description provided for @labelsNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No labels yet.'**
|
||
String get labelsNone;
|
||
|
||
/// No description provided for @labelsNoneSet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No labels'**
|
||
String get labelsNoneSet;
|
||
|
||
/// No description provided for @labelsCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 label} other{{count} labels}}'**
|
||
String labelsCount(int count);
|
||
|
||
/// No description provided for @labelAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New label'**
|
||
String get labelAdd;
|
||
|
||
/// No description provided for @labelEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit label'**
|
||
String get labelEdit;
|
||
|
||
/// No description provided for @labelDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete label'**
|
||
String get labelDelete;
|
||
|
||
/// No description provided for @labelDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete the label?'**
|
||
String get labelDeleteTitle;
|
||
|
||
/// No description provided for @labelDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\"{name}\" is taken off every task that has it.'**
|
||
String labelDeleteMessage(String name);
|
||
|
||
/// No description provided for @nameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name'**
|
||
String get nameLabel;
|
||
|
||
/// No description provided for @save.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get save;
|
||
|
||
/// No description provided for @overdue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Overdue'**
|
||
String get overdue;
|
||
|
||
/// No description provided for @reschedule.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reschedule'**
|
||
String get reschedule;
|
||
|
||
/// No description provided for @priorityTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority'**
|
||
String get priorityTitle;
|
||
|
||
/// No description provided for @priority1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority 1'**
|
||
String get priority1;
|
||
|
||
/// No description provided for @priority2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority 2'**
|
||
String get priority2;
|
||
|
||
/// No description provided for @priority3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority 3'**
|
||
String get priority3;
|
||
|
||
/// No description provided for @priority4.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No priority'**
|
||
String get priority4;
|
||
|
||
/// No description provided for @projectsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Projects'**
|
||
String get projectsTitle;
|
||
|
||
/// No description provided for @projectsNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No projects of your own yet.'**
|
||
String get projectsNone;
|
||
|
||
/// No description provided for @projectAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New project'**
|
||
String get projectAdd;
|
||
|
||
/// No description provided for @projectEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit project'**
|
||
String get projectEdit;
|
||
|
||
/// No description provided for @projectDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete project'**
|
||
String get projectDelete;
|
||
|
||
/// No description provided for @projectDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete the project?'**
|
||
String get projectDeleteTitle;
|
||
|
||
/// No description provided for @projectDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\"{name}\" is deleted with its sections and tasks, on all your devices.'**
|
||
String projectDeleteMessage(String name);
|
||
|
||
/// No description provided for @projectEmptyTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing to do here'**
|
||
String get projectEmptyTitle;
|
||
|
||
/// No description provided for @projectEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a task with the + button.'**
|
||
String get projectEmptyHint;
|
||
|
||
/// No description provided for @projectGone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This project was deleted.'**
|
||
String get projectGone;
|
||
|
||
/// No description provided for @projectMenu.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get projectMenu;
|
||
|
||
/// No description provided for @projectPickTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Project'**
|
||
String get projectPickTitle;
|
||
|
||
/// No description provided for @sectionAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New section'**
|
||
String get sectionAdd;
|
||
|
||
/// No description provided for @sectionEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rename section'**
|
||
String get sectionEdit;
|
||
|
||
/// No description provided for @sectionDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete section'**
|
||
String get sectionDelete;
|
||
|
||
/// No description provided for @sectionDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete the section?'**
|
||
String get sectionDeleteTitle;
|
||
|
||
/// No description provided for @sectionDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\"{name}\" is deleted with its tasks.'**
|
||
String sectionDeleteMessage(String name);
|
||
|
||
/// No description provided for @sectionMenu.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Section'**
|
||
String get sectionMenu;
|
||
|
||
/// No description provided for @subTasks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sub-tasks'**
|
||
String get subTasks;
|
||
|
||
/// No description provided for @subTasksDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sub-tasks {done}/{count}'**
|
||
String subTasksDone(int done, int count);
|
||
|
||
/// No description provided for @subTaskAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add sub-task'**
|
||
String get subTaskAdd;
|
||
|
||
/// No description provided for @taskTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Task'**
|
||
String get taskTitle;
|
||
|
||
/// No description provided for @taskAddTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add task'**
|
||
String get taskAddTitle;
|
||
|
||
/// No description provided for @taskAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add'**
|
||
String get taskAdd;
|
||
|
||
/// No description provided for @taskAddOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a task on {day}'**
|
||
String taskAddOn(String day);
|
||
|
||
/// No description provided for @taskTitleHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'What\'s to be done?'**
|
||
String get taskTitleHint;
|
||
|
||
/// No description provided for @taskDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description'**
|
||
String get taskDescription;
|
||
|
||
/// No description provided for @taskDescriptionHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description'**
|
||
String get taskDescriptionHint;
|
||
|
||
/// No description provided for @taskComplete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mark as done'**
|
||
String get taskComplete;
|
||
|
||
/// No description provided for @taskReopen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mark as not done'**
|
||
String get taskReopen;
|
||
|
||
/// No description provided for @taskCompleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Task done'**
|
||
String get taskCompleted;
|
||
|
||
/// No description provided for @taskDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete task'**
|
||
String get taskDelete;
|
||
|
||
/// No description provided for @taskDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete the task?'**
|
||
String get taskDeleteTitle;
|
||
|
||
/// No description provided for @taskDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\"{title}\" is deleted on all your devices.'**
|
||
String taskDeleteMessage(String title);
|
||
|
||
/// No description provided for @taskDeleteWithSubTasks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\"{title}\" is deleted with its {count, plural, =1{sub-task} other{{count} sub-tasks}}, on all your devices.'**
|
||
String taskDeleteWithSubTasks(String title, int count);
|
||
|
||
/// No description provided for @taskGone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This task was deleted.'**
|
||
String get taskGone;
|
||
|
||
/// No description provided for @todayEmptyTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing due today'**
|
||
String get todayEmptyTitle;
|
||
|
||
/// No description provided for @todayEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tasks dated today, and those overdue, show here.'**
|
||
String get todayEmptyHint;
|
||
|
||
/// No description provided for @lockedRows.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 item doesn\'t open on this device.} other{{count} items don\'t open on this device.}}'**
|
||
String lockedRows(int count);
|
||
|
||
/// No description provided for @inboxMissingTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No Inbox yet'**
|
||
String get inboxMissingTitle;
|
||
|
||
/// No description provided for @inboxMissingHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your Inbox comes with the next sync, or once this device holds your account\'s keys.'**
|
||
String get inboxMissingHint;
|
||
|
||
/// No description provided for @repeatTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeat'**
|
||
String get repeatTitle;
|
||
|
||
/// No description provided for @repeatNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Doesn\'t repeat'**
|
||
String get repeatNone;
|
||
|
||
/// No description provided for @repeatCustom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Custom'**
|
||
String get repeatCustom;
|
||
|
||
/// No description provided for @repeatEveryDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Every day} other{Every {count} days}}'**
|
||
String repeatEveryDay(int count);
|
||
|
||
/// No description provided for @repeatEveryWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Every week} other{Every {count} weeks}}'**
|
||
String repeatEveryWeek(int count);
|
||
|
||
/// No description provided for @repeatEveryMonth.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Every month} other{Every {count} months}}'**
|
||
String repeatEveryMonth(int count);
|
||
|
||
/// No description provided for @repeatEveryYear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Every year} other{Every {count} years}}'**
|
||
String repeatEveryYear(int count);
|
||
|
||
/// No description provided for @repeatWeekdays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Every weekday'**
|
||
String get repeatWeekdays;
|
||
|
||
/// No description provided for @repeatOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{rule} on {on}'**
|
||
String repeatOn(String rule, String on);
|
||
|
||
/// No description provided for @repeatMonthDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'day {day}'**
|
||
String repeatMonthDay(int day);
|
||
|
||
/// No description provided for @repeatMonthWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'the {nth, select, 1{first} 2{second} 3{third} 4{fourth} other{last}} {weekday}'**
|
||
String repeatMonthWeek(String nth, String weekday);
|
||
|
||
/// No description provided for @repeatFromCompletion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{rule}, from when it\'s done'**
|
||
String repeatFromCompletion(String rule);
|
||
|
||
/// No description provided for @repeatUntil.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{rule}, until {day}'**
|
||
String repeatUntil(String rule, String day);
|
||
|
||
/// No description provided for @repeatLeft.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{rule}, {count, plural, =0{this time only} =1{once more} other{{count} more times}}'**
|
||
String repeatLeft(String rule, int count);
|
||
|
||
/// No description provided for @repeatEvery.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Every'**
|
||
String get repeatEvery;
|
||
|
||
/// No description provided for @repeatUnitDays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Days'**
|
||
String get repeatUnitDays;
|
||
|
||
/// No description provided for @repeatUnitWeeks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Weeks'**
|
||
String get repeatUnitWeeks;
|
||
|
||
/// No description provided for @repeatUnitMonths.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Months'**
|
||
String get repeatUnitMonths;
|
||
|
||
/// No description provided for @repeatUnitYears.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Years'**
|
||
String get repeatUnitYears;
|
||
|
||
/// No description provided for @repeatCountFromCompletion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Count from when it\'s done'**
|
||
String get repeatCountFromCompletion;
|
||
|
||
/// No description provided for @repeatCountFromCompletionHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not from its date: done late, it comes again as long after.'**
|
||
String get repeatCountFromCompletionHint;
|
||
|
||
/// No description provided for @repeatEnds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ends'**
|
||
String get repeatEnds;
|
||
|
||
/// No description provided for @repeatEndsNever.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Never'**
|
||
String get repeatEndsNever;
|
||
|
||
/// No description provided for @repeatEndsOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'On a day'**
|
||
String get repeatEndsOn;
|
||
|
||
/// No description provided for @repeatEndsAfter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{After once} other{After {count} times}}'**
|
||
String repeatEndsAfter(int count);
|
||
|
||
/// No description provided for @remindersTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reminders'**
|
||
String get remindersTitle;
|
||
|
||
/// No description provided for @remindersNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No reminders'**
|
||
String get remindersNone;
|
||
|
||
/// No description provided for @reminderAtTime.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At its time'**
|
||
String get reminderAtTime;
|
||
|
||
/// No description provided for @reminderMinutesBefore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 minute before} other{{count} minutes before}}'**
|
||
String reminderMinutesBefore(int count);
|
||
|
||
/// No description provided for @reminderHoursBefore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 hour before} other{{count} hours before}}'**
|
||
String reminderHoursBefore(int count);
|
||
|
||
/// No description provided for @reminderDaysBefore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 day before} other{{count} days before}}'**
|
||
String reminderDaysBefore(int count);
|
||
|
||
/// No description provided for @reminderDue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Due at {time}'**
|
||
String reminderDue(String time);
|
||
|
||
/// No description provided for @remindersChannel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Task reminders'**
|
||
String get remindersChannel;
|
||
|
||
/// No description provided for @remindersNotAllowed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notifications are off for Halkyon Todo: reminders show once you allow them in the system\'s settings.'**
|
||
String get remindersNotAllowed;
|
||
|
||
/// No description provided for @remindersOnThisDevice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reminders come on each of your devices that opens your tasks.'**
|
||
String get remindersOnThisDevice;
|
||
|
||
/// No description provided for @reminderBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reminder'**
|
||
String get reminderBody;
|
||
|
||
/// No description provided for @remindersAtTimes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At a time of their own'**
|
||
String get remindersAtTimes;
|
||
|
||
/// No description provided for @reminderAddTime.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remind at a time'**
|
||
String get reminderAddTime;
|
||
|
||
/// No description provided for @reminderRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove the reminder'**
|
||
String get reminderRemove;
|
||
|
||
/// No description provided for @durationTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Duration'**
|
||
String get durationTitle;
|
||
|
||
/// No description provided for @durationNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No duration'**
|
||
String get durationNone;
|
||
|
||
/// No description provided for @durationHours.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{hours} h'**
|
||
String durationHours(int hours);
|
||
|
||
/// No description provided for @durationMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes} min'**
|
||
String durationMinutes(int minutes);
|
||
|
||
/// No description provided for @durationHoursMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{hours} h {minutes} min'**
|
||
String durationHoursMinutes(int hours, int minutes);
|
||
|
||
/// No description provided for @weekPrevious.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous week'**
|
||
String get weekPrevious;
|
||
|
||
/// No description provided for @weekNext.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Following week'**
|
||
String get weekNext;
|
||
|
||
/// No description provided for @searchTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search'**
|
||
String get searchTitle;
|
||
|
||
/// No description provided for @searchHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search tasks and projects'**
|
||
String get searchHint;
|
||
|
||
/// No description provided for @searchEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Find a task by the words in its title, its description or its labels. Search runs on this device: your instance can\'t read your tasks.'**
|
||
String get searchEmpty;
|
||
|
||
/// No description provided for @searchNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing found for “{query}”.'**
|
||
String searchNone(String query);
|
||
|
||
/// No description provided for @searchProjects.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Projects'**
|
||
String get searchProjects;
|
||
|
||
/// No description provided for @searchTasks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tasks'**
|
||
String get searchTasks;
|
||
|
||
/// No description provided for @taskMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Task options'**
|
||
String get taskMore;
|
||
|
||
/// No description provided for @taskAddedOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added on {when}'**
|
||
String taskAddedOn(String when);
|
||
|
||
/// No description provided for @taskDuplicate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Duplicate'**
|
||
String get taskDuplicate;
|
||
|
||
/// No description provided for @taskDuplicated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Task duplicated'**
|
||
String get taskDuplicated;
|
||
|
||
/// No description provided for @subTasksHideDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide done sub-tasks'**
|
||
String get subTasksHideDone;
|
||
|
||
/// No description provided for @subTasksShowDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show done sub-tasks'**
|
||
String get subTasksShowDone;
|
||
|
||
/// No description provided for @taskClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get taskClose;
|
||
|
||
/// No description provided for @taskPath.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Where the task is'**
|
||
String get taskPath;
|
||
|
||
/// No description provided for @weekToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to today'**
|
||
String get weekToday;
|
||
|
||
/// No description provided for @monthPrevious.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous month'**
|
||
String get monthPrevious;
|
||
|
||
/// No description provided for @monthNext.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Following month'**
|
||
String get monthNext;
|
||
|
||
/// No description provided for @monthShow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show the whole month'**
|
||
String get monthShow;
|
||
|
||
/// No description provided for @monthHide.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show one week'**
|
||
String get monthHide;
|
||
|
||
/// No description provided for @selectTasks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select tasks'**
|
||
String get selectTasks;
|
||
|
||
/// No description provided for @selectionCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =0{Select tasks} =1{1 task selected} other{{count} tasks selected}}'**
|
||
String selectionCount(int count);
|
||
|
||
/// No description provided for @selectionEnd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stop selecting'**
|
||
String get selectionEnd;
|
||
|
||
/// No description provided for @selectionDate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Date'**
|
||
String get selectionDate;
|
||
|
||
/// No description provided for @selectionMove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move to'**
|
||
String get selectionMove;
|
||
|
||
/// No description provided for @selectionLabels.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Labels'**
|
||
String get selectionLabels;
|
||
|
||
/// No description provided for @selectionPriority.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority'**
|
||
String get selectionPriority;
|
||
|
||
/// No description provided for @selectionMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get selectionMore;
|
||
|
||
/// No description provided for @selectionDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Delete 1 task} other{Delete {count} tasks}}'**
|
||
String selectionDelete(int count);
|
||
|
||
/// No description provided for @selectionDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete the tasks?'**
|
||
String get selectionDeleteTitle;
|
||
|
||
/// No description provided for @selectionDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 task is deleted with its sub-tasks, on all your devices.} other{{count} tasks are deleted with their sub-tasks, on all your devices.}}'**
|
||
String selectionDeleteMessage(int count);
|
||
|
||
/// No description provided for @selectionDuplicate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Duplicate 1 task} other{Duplicate {count} tasks}}'**
|
||
String selectionDuplicate(int count);
|
||
|
||
/// No description provided for @selectionComplete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Complete 1 task} other{Complete {count} tasks}}'**
|
||
String selectionComplete(int count);
|
||
|
||
/// No description provided for @selectionDeadline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline'**
|
||
String get selectionDeadline;
|
||
|
||
/// No description provided for @tasksCompleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Task done} other{{count} tasks done}}'**
|
||
String tasksCompleted(int count);
|
||
|
||
/// No description provided for @swipeSelect.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select'**
|
||
String get swipeSelect;
|
||
|
||
/// No description provided for @swipeDate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Date'**
|
||
String get swipeDate;
|
||
|
||
/// No description provided for @tasksMenu.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get tasksMenu;
|
||
|
||
/// Quick add's + menu, holding Description and Deadline (ADR 0033, D15).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get quickAddMore;
|
||
|
||
/// Below quick add's title while it has tokens recognised (D15).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tap a highlighted word to keep it as text.'**
|
||
String get quickAddTokenHint;
|
||
|
||
/// Quick add's deadline chip and menu entry (D15).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline'**
|
||
String get deadlineTitle;
|
||
|
||
/// Snack bar after a task was dragged into another place (ADR 0033, D16).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Order changed'**
|
||
String get orderChanged;
|
||
|
||
/// The × left in the add button's place while it is dragged (D16).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drop here to cancel'**
|
||
String get addTaskCancel;
|
||
|
||
/// Snack bar after a task was dragged onto another day in Upcoming (ADR 0033, D16).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Moved to {day}'**
|
||
String taskMovedTo(String day);
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Display'**
|
||
String get display;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Completed tasks'**
|
||
String get displayCompleted;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort'**
|
||
String get displaySort;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Grouping'**
|
||
String get displayGrouping;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sorting'**
|
||
String get displaySorting;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter'**
|
||
String get displayFilter;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline'**
|
||
String get displayDeadline;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Label'**
|
||
String get displayLabel;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset all'**
|
||
String get displayReset;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get displayDone;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All'**
|
||
String get displayAll;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Any'**
|
||
String get displayAny;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None'**
|
||
String get groupingNone;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Date'**
|
||
String get groupingDate;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline'**
|
||
String get groupingDeadline;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added date'**
|
||
String get groupingAdded;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority'**
|
||
String get groupingPriority;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Label'**
|
||
String get groupingLabel;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manual'**
|
||
String get sortingManual;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name'**
|
||
String get sortingName;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Date'**
|
||
String get sortingDate;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline'**
|
||
String get sortingDeadline;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added date'**
|
||
String get sortingAdded;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Priority'**
|
||
String get sortingPriority;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get rangeToday;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This week'**
|
||
String get rangeThisWeek;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next 7 days'**
|
||
String get rangeNext7;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This month'**
|
||
String get rangeThisMonth;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next 30 days'**
|
||
String get rangeNext30;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No date'**
|
||
String get rangeNoDate;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No deadline'**
|
||
String get rangeNoDeadline;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing matches'**
|
||
String get viewNothingTitle;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This view\'s filters leave out every task here. Display changes them.'**
|
||
String get viewNothingHint;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get displaySave;
|
||
|
||
/// A project's Display sheet and what it shows (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get displayCancel;
|
||
|
||
/// A project's group of tasks without a label (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No label'**
|
||
String get groupNoLabel;
|
||
|
||
/// A project's layout in its Display, and its board's columns (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Layout'**
|
||
String get layoutTitle;
|
||
|
||
/// A project's layout in its Display, and its board's columns (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'List'**
|
||
String get layoutList;
|
||
|
||
/// A project's layout in its Display, and its board's columns (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Board'**
|
||
String get layoutBoard;
|
||
|
||
/// A project's layout in its Display, and its board's columns (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'(No section)'**
|
||
String get boardNoSection;
|
||
|
||
/// A project's Calendar layout and its Display (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Calendar'**
|
||
String get layoutCalendar;
|
||
|
||
/// A project's Calendar layout and its Display (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Future occurrences'**
|
||
String get displayOccurrences;
|
||
|
||
/// A project's Calendar layout and its Display (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No date'**
|
||
String get calendarNoDate;
|
||
|
||
/// A project's Calendar layout and its Display (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Every task here has a date'**
|
||
String get calendarNoDateEmpty;
|
||
|
||
/// A project's Calendar layout and its Display (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tasks of this project without a date show here.'**
|
||
String get calendarNoDateHint;
|
||
|
||
/// A project's Calendar layout and its Display (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A later time of a repeating task'**
|
||
String get taskLater;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Smart'**
|
||
String get sortingSmart;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Agenda'**
|
||
String get layoutAgenda;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'3-day'**
|
||
String get layoutThreeDay;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Colouring'**
|
||
String get displayColoring;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Project'**
|
||
String get coloringProject;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All day'**
|
||
String get allDay;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Earlier days'**
|
||
String get daysPrevious;
|
||
|
||
/// Upcoming's Display and its 3-day grid (ADR 0033, D17).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Later days'**
|
||
String get daysNext;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tasks'**
|
||
String get settingsTasks;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start the week on'**
|
||
String get weekStartTitle;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'As the language has it'**
|
||
String get weekStartLanguage;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset sub-tasks'**
|
||
String get resetSubTasksTitle;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open them again when a recurring task is done'**
|
||
String get resetSubTasksHint;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Automatic reminder'**
|
||
String get automaticReminderTitle;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'For a task given a time, unless it has reminders of its own'**
|
||
String get automaticReminderHint;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None'**
|
||
String get automaticReminderNone;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'When snoozed'**
|
||
String get snoozeTitle;
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 minute} other{{count} minutes}}'**
|
||
String snoozeMinutes(int count);
|
||
|
||
/// Settings of tasks and reminders (ADR 0033, D4).
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Snooze {count} min'**
|
||
String reminderSnooze(int count);
|
||
|
||
/// A project's Calendar as a month on wide windows (ADR 0033, D17): a day's tasks that don't fit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} more'**
|
||
String monthMore(int count);
|
||
}
|
||
|
||
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.',
|
||
);
|
||
}
|