The public profile was already one per person for every service of an instance (the register, ADR 0016); its app side was Learn's alone. It moves into halkyon_app: the model, the repository on the module's endpoints, the form, the avatar drawn on the device and the sheet with someone's profile. They take the Public prefix (PublicProfileRepository, BasePublicProfileGateway), as Train's own ProfileRepository holds the body's figures. AppDependencies gains profiles and files, the picker the avatar is chosen with, which moves out of Learn too. HalkyonProfile is every app's Profile screen: the person's own tab first, the same in every app (the account and the ways they sign in, the app's own cards, then the public profile), then the app's own tabs, folding into the title. Learn adds its inbox and Statistics. Train adds Progress, Days and, where nothing records, Plans, and so opens on the person's tab, no longer on Progress. Todo, which has no Profile tab, opens it from a row at the top of Browse, where Todoist keeps the account. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
1560 lines
43 KiB
Dart
1560 lines
43 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 @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.',
|
||
);
|
||
}
|