feat(todo): Today, Upcoming, Inbox, projects, quick add and the task sheet (ADR 0033, D8, D9)

The tabs hold the person's tasks: Today what is overdue (Reschedule
moving it all to a day, times kept) and what is due today; Upcoming the
overdue ones and the next four weeks day by day; Inbox and each
project's screen from Browse the tasks above and in their sections, done
ones on asking; Browse the projects with their open counts and the
labels. A task's row shows its check in its priority's colour, its date
in the colour of how near it is, its deadline, its sub-tasks done and
its labels; quick add takes its title, date, priority, project, labels
and description and stays for the next; its sheet edits all of it, adds
sub-tasks and deletes it with them after asking. Colours are the
palette's, cerise for overdue and P1 against the strawberry wash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-01 10:25:34 +01:00
commit 030c62ddde
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 3647 additions and 121 deletions

View file

@ -15,11 +15,84 @@
"shellTabUpcoming": "Demnächst",
"shellTabInbox": "Eingang",
"shellTabBrowse": "Übersicht",
"todayLaterTitle": "Hier stehen die Aufgaben von heute",
"upcomingLaterTitle": "Hier stehen die nächsten Tage",
"inboxLaterTitle": "Hier stehen Aufgaben ohne Projekt",
"browseLaterTitle": "Hier stehen deine Projekte und Labels",
"tasksLaterHint": "Aufgaben kommen mit einer späteren Version von Halkyon Todo.",
"settingsTitle": "Einstellungen",
"settingsVersion": "Version {version} (Build {build})"
"settingsVersion": "Version {version} (Build {build})",
"clear": "Entfernen",
"colorLabel": "Farbe",
"completedShow": "Erledigte zeigen",
"completedHide": "Erledigte ausblenden",
"dateTitle": "Datum",
"dateNextWeek": "Nächste Woche",
"dateWeekend": "Dieses Wochenende",
"datePick": "Tag wählen",
"dateTime": "Uhrzeit",
"dateNone": "Kein Datum",
"dateNoneYet": "Kein Datum",
"dayToday": "Heute",
"dayTomorrow": "Morgen",
"dayYesterday": "Gestern",
"dayHeadingNamed": "{date} · {name}",
"deadlineOn": "Frist {day}",
"deadlineNone": "Keine Frist",
"keysMissing": "Dieses Gerät kann nichts speichern: Es hat die Schlüssel deines Kontos nicht. Melde dich mit deinem Passwort oder deiner Wiederherstellungsphrase an, um sie hinzuzufügen.",
"labelsTitle": "Labels",
"labelsNone": "Noch keine Labels.",
"labelsNoneSet": "Keine Labels",
"labelsCount": "{count, plural, =1{1 Label} other{{count} Labels}}",
"labelAdd": "Neues Label",
"labelEdit": "Label bearbeiten",
"labelDelete": "Label löschen",
"labelDeleteTitle": "Label löschen?",
"labelDeleteMessage": "„{name}“ wird von jeder Aufgabe entfernt, die es hat.",
"nameLabel": "Name",
"save": "Speichern",
"overdue": "Überfällig",
"reschedule": "Verschieben",
"priorityTitle": "Priorität",
"priority1": "Priorität 1",
"priority2": "Priorität 2",
"priority3": "Priorität 3",
"priority4": "Keine Priorität",
"projectsTitle": "Projekte",
"projectsNone": "Noch keine eigenen Projekte.",
"projectAdd": "Neues Projekt",
"projectEdit": "Projekt bearbeiten",
"projectDelete": "Projekt löschen",
"projectDeleteTitle": "Projekt löschen?",
"projectDeleteMessage": "„{name}“ wird mit seinen Abschnitten und Aufgaben auf all deinen Geräten gelöscht.",
"projectEmptyTitle": "Hier ist nichts zu tun",
"projectEmptyHint": "Füge mit dem Plus eine Aufgabe hinzu.",
"projectGone": "Dieses Projekt wurde gelöscht.",
"projectMenu": "Mehr",
"projectPickTitle": "Projekt",
"sectionAdd": "Neuer Abschnitt",
"sectionEdit": "Abschnitt umbenennen",
"sectionDelete": "Abschnitt löschen",
"sectionDeleteTitle": "Abschnitt löschen?",
"sectionDeleteMessage": "„{name}“ wird mit seinen Aufgaben gelöscht.",
"sectionMenu": "Abschnitt",
"subTasks": "Unteraufgaben",
"subTasksDone": "Unteraufgaben {done}/{count}",
"subTaskAdd": "Unteraufgabe hinzufügen",
"taskTitle": "Aufgabe",
"taskAddTitle": "Aufgabe hinzufügen",
"taskAdd": "Hinzufügen",
"taskAddOn": "Aufgabe für {day} hinzufügen",
"taskTitleHint": "Was ist zu tun?",
"taskDescription": "Beschreibung",
"taskDescriptionHint": "Beschreibung",
"taskComplete": "Als erledigt markieren",
"taskReopen": "Als unerledigt markieren",
"taskCompleted": "Aufgabe erledigt",
"taskDelete": "Aufgabe löschen",
"taskDeleteTitle": "Aufgabe löschen?",
"taskDeleteMessage": "„{title}“ wird auf all deinen Geräten gelöscht.",
"taskDeleteWithSubTasks": "„{title}“ wird mit {count, plural, =1{seiner Unteraufgabe} other{seinen {count} Unteraufgaben}} auf all deinen Geräten gelöscht.",
"taskGone": "Diese Aufgabe wurde gelöscht.",
"todayEmptyTitle": "Heute ist nichts fällig",
"todayEmptyHint": "Aufgaben mit dem heutigen Datum und überfällige erscheinen hier.",
"lockedRows": "{count, plural, =1{1 Eintrag lässt sich auf diesem Gerät nicht öffnen.} other{{count} Einträge lassen sich auf diesem Gerät nicht öffnen.}}",
"inboxMissingTitle": "Noch kein Eingang",
"inboxMissingHint": "Dein Eingang kommt mit dem nächsten Abgleich, oder sobald dieses Gerät die Schlüssel deines Kontos hat."
}

View file

@ -17,12 +17,96 @@
"shellTabUpcoming": "Upcoming",
"shellTabInbox": "Inbox",
"shellTabBrowse": "Browse",
"todayLaterTitle": "Today's tasks come here",
"upcomingLaterTitle": "The days ahead come here",
"inboxLaterTitle": "Tasks without a project come here",
"browseLaterTitle": "Your projects and labels come here",
"tasksLaterHint": "Tasks come with a later version of Halkyon Todo.",
"settingsTitle": "Settings",
"settingsVersion": "Version {version} (build {build})",
"@settingsVersion": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}}
"@settingsVersion": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}},
"clear": "Clear",
"colorLabel": "Colour",
"completedShow": "Show done tasks",
"completedHide": "Hide done tasks",
"dateTitle": "Date",
"dateNextWeek": "Next week",
"dateWeekend": "This weekend",
"datePick": "Pick a day",
"dateTime": "Time",
"dateNone": "No date",
"dateNoneYet": "No date",
"dayToday": "Today",
"dayTomorrow": "Tomorrow",
"dayYesterday": "Yesterday",
"dayHeadingNamed": "{date} · {name}",
"@dayHeadingNamed": {"placeholders": {"date": {"type": "String"}, "name": {"type": "String"}}},
"deadlineOn": "Deadline {day}",
"@deadlineOn": {"placeholders": {"day": {"type": "String"}}},
"deadlineNone": "No deadline",
"keysMissing": "This device can't save: it doesn't hold your account's keys. Sign in with your password or recovery phrase to add them.",
"labelsTitle": "Labels",
"labelsNone": "No labels yet.",
"labelsNoneSet": "No labels",
"labelsCount": "{count, plural, =1{1 label} other{{count} labels}}",
"@labelsCount": {"placeholders": {"count": {"type": "int"}}},
"labelAdd": "New label",
"labelEdit": "Edit label",
"labelDelete": "Delete label",
"labelDeleteTitle": "Delete the label?",
"labelDeleteMessage": "\"{name}\" is taken off every task that has it.",
"@labelDeleteMessage": {"placeholders": {"name": {"type": "String"}}},
"nameLabel": "Name",
"save": "Save",
"overdue": "Overdue",
"reschedule": "Reschedule",
"priorityTitle": "Priority",
"priority1": "Priority 1",
"priority2": "Priority 2",
"priority3": "Priority 3",
"priority4": "No priority",
"projectsTitle": "Projects",
"projectsNone": "No projects of your own yet.",
"projectAdd": "New project",
"projectEdit": "Edit project",
"projectDelete": "Delete project",
"projectDeleteTitle": "Delete the project?",
"projectDeleteMessage": "\"{name}\" is deleted with its sections and tasks, on all your devices.",
"@projectDeleteMessage": {"placeholders": {"name": {"type": "String"}}},
"projectEmptyTitle": "Nothing to do here",
"projectEmptyHint": "Add a task with the + button.",
"projectGone": "This project was deleted.",
"projectMenu": "More",
"projectPickTitle": "Project",
"sectionAdd": "New section",
"sectionEdit": "Rename section",
"sectionDelete": "Delete section",
"sectionDeleteTitle": "Delete the section?",
"sectionDeleteMessage": "\"{name}\" is deleted with its tasks.",
"@sectionDeleteMessage": {"placeholders": {"name": {"type": "String"}}},
"sectionMenu": "Section",
"subTasks": "Sub-tasks",
"subTasksDone": "Sub-tasks {done}/{count}",
"@subTasksDone": {"placeholders": {"done": {"type": "int"}, "count": {"type": "int"}}},
"subTaskAdd": "Add sub-task",
"taskTitle": "Task",
"taskAddTitle": "Add task",
"taskAdd": "Add",
"taskAddOn": "Add a task on {day}",
"@taskAddOn": {"placeholders": {"day": {"type": "String"}}},
"taskTitleHint": "What's to be done?",
"taskDescription": "Description",
"taskDescriptionHint": "Description",
"taskComplete": "Mark as done",
"taskReopen": "Mark as not done",
"taskCompleted": "Task done",
"taskDelete": "Delete task",
"taskDeleteTitle": "Delete the task?",
"taskDeleteMessage": "\"{title}\" is deleted on all your devices.",
"@taskDeleteMessage": {"placeholders": {"title": {"type": "String"}}},
"taskDeleteWithSubTasks": "\"{title}\" is deleted with its {count, plural, =1{sub-task} other{{count} sub-tasks}}, on all your devices.",
"@taskDeleteWithSubTasks": {"placeholders": {"title": {"type": "String"}, "count": {"type": "int"}}},
"taskGone": "This task was deleted.",
"todayEmptyTitle": "Nothing due today",
"todayEmptyHint": "Tasks dated today, and those overdue, show here.",
"lockedRows": "{count, plural, =1{1 item doesn't open on this device.} other{{count} items don't open on this device.}}",
"@lockedRows": {"placeholders": {"count": {"type": "int"}}},
"inboxMissingTitle": "No Inbox yet",
"inboxMissingHint": "Your Inbox comes with the next sync, or once this device holds your account's keys."
}

View file

@ -160,36 +160,6 @@ abstract class AppLocalizations {
/// **'Browse'**
String get shellTabBrowse;
/// No description provided for @todayLaterTitle.
///
/// In en, this message translates to:
/// **'Today\'s tasks come here'**
String get todayLaterTitle;
/// No description provided for @upcomingLaterTitle.
///
/// In en, this message translates to:
/// **'The days ahead come here'**
String get upcomingLaterTitle;
/// No description provided for @inboxLaterTitle.
///
/// In en, this message translates to:
/// **'Tasks without a project come here'**
String get inboxLaterTitle;
/// No description provided for @browseLaterTitle.
///
/// In en, this message translates to:
/// **'Your projects and labels come here'**
String get browseLaterTitle;
/// No description provided for @tasksLaterHint.
///
/// In en, this message translates to:
/// **'Tasks come with a later version of Halkyon Todo.'**
String get tasksLaterHint;
/// No description provided for @settingsTitle.
///
/// In en, this message translates to:
@ -201,6 +171,468 @@ abstract class AppLocalizations {
/// 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 @completedShow.
///
/// In en, this message translates to:
/// **'Show done tasks'**
String get completedShow;
/// No description provided for @completedHide.
///
/// In en, this message translates to:
/// **'Hide done tasks'**
String get completedHide;
/// 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;
}
class _AppLocalizationsDelegate

View file

@ -41,22 +41,6 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get shellTabBrowse => 'Übersicht';
@override
String get todayLaterTitle => 'Hier stehen die Aufgaben von heute';
@override
String get upcomingLaterTitle => 'Hier stehen die nächsten Tage';
@override
String get inboxLaterTitle => 'Hier stehen Aufgaben ohne Projekt';
@override
String get browseLaterTitle => 'Hier stehen deine Projekte und Labels';
@override
String get tasksLaterHint =>
'Aufgaben kommen mit einer späteren Version von Halkyon Todo.';
@override
String get settingsTitle => 'Einstellungen';
@ -64,4 +48,278 @@ class AppLocalizationsDe extends AppLocalizations {
String settingsVersion(String version, String build) {
return 'Version $version (Build $build)';
}
@override
String get clear => 'Entfernen';
@override
String get colorLabel => 'Farbe';
@override
String get completedShow => 'Erledigte zeigen';
@override
String get completedHide => 'Erledigte ausblenden';
@override
String get dateTitle => 'Datum';
@override
String get dateNextWeek => 'Nächste Woche';
@override
String get dateWeekend => 'Dieses Wochenende';
@override
String get datePick => 'Tag wählen';
@override
String get dateTime => 'Uhrzeit';
@override
String get dateNone => 'Kein Datum';
@override
String get dateNoneYet => 'Kein Datum';
@override
String get dayToday => 'Heute';
@override
String get dayTomorrow => 'Morgen';
@override
String get dayYesterday => 'Gestern';
@override
String dayHeadingNamed(String date, String name) {
return '$date · $name';
}
@override
String deadlineOn(String day) {
return 'Frist $day';
}
@override
String get deadlineNone => 'Keine Frist';
@override
String get keysMissing =>
'Dieses Gerät kann nichts speichern: Es hat die Schlüssel deines Kontos nicht. Melde dich mit deinem Passwort oder deiner Wiederherstellungsphrase an, um sie hinzuzufügen.';
@override
String get labelsTitle => 'Labels';
@override
String get labelsNone => 'Noch keine Labels.';
@override
String get labelsNoneSet => 'Keine Labels';
@override
String labelsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count Labels',
one: '1 Label',
);
return '$_temp0';
}
@override
String get labelAdd => 'Neues Label';
@override
String get labelEdit => 'Label bearbeiten';
@override
String get labelDelete => 'Label löschen';
@override
String get labelDeleteTitle => 'Label löschen?';
@override
String labelDeleteMessage(String name) {
return '„$name“ wird von jeder Aufgabe entfernt, die es hat.';
}
@override
String get nameLabel => 'Name';
@override
String get save => 'Speichern';
@override
String get overdue => 'Überfällig';
@override
String get reschedule => 'Verschieben';
@override
String get priorityTitle => 'Priorität';
@override
String get priority1 => 'Priorität 1';
@override
String get priority2 => 'Priorität 2';
@override
String get priority3 => 'Priorität 3';
@override
String get priority4 => 'Keine Priorität';
@override
String get projectsTitle => 'Projekte';
@override
String get projectsNone => 'Noch keine eigenen Projekte.';
@override
String get projectAdd => 'Neues Projekt';
@override
String get projectEdit => 'Projekt bearbeiten';
@override
String get projectDelete => 'Projekt löschen';
@override
String get projectDeleteTitle => 'Projekt löschen?';
@override
String projectDeleteMessage(String name) {
return '„$name“ wird mit seinen Abschnitten und Aufgaben auf all deinen Geräten gelöscht.';
}
@override
String get projectEmptyTitle => 'Hier ist nichts zu tun';
@override
String get projectEmptyHint => 'Füge mit dem Plus eine Aufgabe hinzu.';
@override
String get projectGone => 'Dieses Projekt wurde gelöscht.';
@override
String get projectMenu => 'Mehr';
@override
String get projectPickTitle => 'Projekt';
@override
String get sectionAdd => 'Neuer Abschnitt';
@override
String get sectionEdit => 'Abschnitt umbenennen';
@override
String get sectionDelete => 'Abschnitt löschen';
@override
String get sectionDeleteTitle => 'Abschnitt löschen?';
@override
String sectionDeleteMessage(String name) {
return '„$name“ wird mit seinen Aufgaben gelöscht.';
}
@override
String get sectionMenu => 'Abschnitt';
@override
String get subTasks => 'Unteraufgaben';
@override
String subTasksDone(int done, int count) {
return 'Unteraufgaben $done/$count';
}
@override
String get subTaskAdd => 'Unteraufgabe hinzufügen';
@override
String get taskTitle => 'Aufgabe';
@override
String get taskAddTitle => 'Aufgabe hinzufügen';
@override
String get taskAdd => 'Hinzufügen';
@override
String taskAddOn(String day) {
return 'Aufgabe für $day hinzufügen';
}
@override
String get taskTitleHint => 'Was ist zu tun?';
@override
String get taskDescription => 'Beschreibung';
@override
String get taskDescriptionHint => 'Beschreibung';
@override
String get taskComplete => 'Als erledigt markieren';
@override
String get taskReopen => 'Als unerledigt markieren';
@override
String get taskCompleted => 'Aufgabe erledigt';
@override
String get taskDelete => 'Aufgabe löschen';
@override
String get taskDeleteTitle => 'Aufgabe löschen?';
@override
String taskDeleteMessage(String title) {
return '„$title“ wird auf all deinen Geräten gelöscht.';
}
@override
String taskDeleteWithSubTasks(String title, int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'seinen $count Unteraufgaben',
one: 'seiner Unteraufgabe',
);
return '„$title“ wird mit $_temp0 auf all deinen Geräten gelöscht.';
}
@override
String get taskGone => 'Diese Aufgabe wurde gelöscht.';
@override
String get todayEmptyTitle => 'Heute ist nichts fällig';
@override
String get todayEmptyHint =>
'Aufgaben mit dem heutigen Datum und überfällige erscheinen hier.';
@override
String lockedRows(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count Einträge lassen sich auf diesem Gerät nicht öffnen.',
one: '1 Eintrag lässt sich auf diesem Gerät nicht öffnen.',
);
return '$_temp0';
}
@override
String get inboxMissingTitle => 'Noch kein Eingang';
@override
String get inboxMissingHint =>
'Dein Eingang kommt mit dem nächsten Abgleich, oder sobald dieses Gerät die Schlüssel deines Kontos hat.';
}

View file

@ -41,22 +41,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get shellTabBrowse => 'Browse';
@override
String get todayLaterTitle => 'Today\'s tasks come here';
@override
String get upcomingLaterTitle => 'The days ahead come here';
@override
String get inboxLaterTitle => 'Tasks without a project come here';
@override
String get browseLaterTitle => 'Your projects and labels come here';
@override
String get tasksLaterHint =>
'Tasks come with a later version of Halkyon Todo.';
@override
String get settingsTitle => 'Settings';
@ -64,6 +48,280 @@ class AppLocalizationsEn extends AppLocalizations {
String settingsVersion(String version, String build) {
return 'Version $version (build $build)';
}
@override
String get clear => 'Clear';
@override
String get colorLabel => 'Colour';
@override
String get completedShow => 'Show done tasks';
@override
String get completedHide => 'Hide done tasks';
@override
String get dateTitle => 'Date';
@override
String get dateNextWeek => 'Next week';
@override
String get dateWeekend => 'This weekend';
@override
String get datePick => 'Pick a day';
@override
String get dateTime => 'Time';
@override
String get dateNone => 'No date';
@override
String get dateNoneYet => 'No date';
@override
String get dayToday => 'Today';
@override
String get dayTomorrow => 'Tomorrow';
@override
String get dayYesterday => 'Yesterday';
@override
String dayHeadingNamed(String date, String name) {
return '$date · $name';
}
@override
String deadlineOn(String day) {
return 'Deadline $day';
}
@override
String get deadlineNone => 'No deadline';
@override
String get keysMissing =>
'This device can\'t save: it doesn\'t hold your account\'s keys. Sign in with your password or recovery phrase to add them.';
@override
String get labelsTitle => 'Labels';
@override
String get labelsNone => 'No labels yet.';
@override
String get labelsNoneSet => 'No labels';
@override
String labelsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count labels',
one: '1 label',
);
return '$_temp0';
}
@override
String get labelAdd => 'New label';
@override
String get labelEdit => 'Edit label';
@override
String get labelDelete => 'Delete label';
@override
String get labelDeleteTitle => 'Delete the label?';
@override
String labelDeleteMessage(String name) {
return '\"$name\" is taken off every task that has it.';
}
@override
String get nameLabel => 'Name';
@override
String get save => 'Save';
@override
String get overdue => 'Overdue';
@override
String get reschedule => 'Reschedule';
@override
String get priorityTitle => 'Priority';
@override
String get priority1 => 'Priority 1';
@override
String get priority2 => 'Priority 2';
@override
String get priority3 => 'Priority 3';
@override
String get priority4 => 'No priority';
@override
String get projectsTitle => 'Projects';
@override
String get projectsNone => 'No projects of your own yet.';
@override
String get projectAdd => 'New project';
@override
String get projectEdit => 'Edit project';
@override
String get projectDelete => 'Delete project';
@override
String get projectDeleteTitle => 'Delete the project?';
@override
String projectDeleteMessage(String name) {
return '\"$name\" is deleted with its sections and tasks, on all your devices.';
}
@override
String get projectEmptyTitle => 'Nothing to do here';
@override
String get projectEmptyHint => 'Add a task with the + button.';
@override
String get projectGone => 'This project was deleted.';
@override
String get projectMenu => 'More';
@override
String get projectPickTitle => 'Project';
@override
String get sectionAdd => 'New section';
@override
String get sectionEdit => 'Rename section';
@override
String get sectionDelete => 'Delete section';
@override
String get sectionDeleteTitle => 'Delete the section?';
@override
String sectionDeleteMessage(String name) {
return '\"$name\" is deleted with its tasks.';
}
@override
String get sectionMenu => 'Section';
@override
String get subTasks => 'Sub-tasks';
@override
String subTasksDone(int done, int count) {
return 'Sub-tasks $done/$count';
}
@override
String get subTaskAdd => 'Add sub-task';
@override
String get taskTitle => 'Task';
@override
String get taskAddTitle => 'Add task';
@override
String get taskAdd => 'Add';
@override
String taskAddOn(String day) {
return 'Add a task on $day';
}
@override
String get taskTitleHint => 'What\'s to be done?';
@override
String get taskDescription => 'Description';
@override
String get taskDescriptionHint => 'Description';
@override
String get taskComplete => 'Mark as done';
@override
String get taskReopen => 'Mark as not done';
@override
String get taskCompleted => 'Task done';
@override
String get taskDelete => 'Delete task';
@override
String get taskDeleteTitle => 'Delete the task?';
@override
String taskDeleteMessage(String title) {
return '\"$title\" is deleted on all your devices.';
}
@override
String taskDeleteWithSubTasks(String title, int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count sub-tasks',
one: 'sub-task',
);
return '\"$title\" is deleted with its $_temp0, on all your devices.';
}
@override
String get taskGone => 'This task was deleted.';
@override
String get todayEmptyTitle => 'Nothing due today';
@override
String get todayEmptyHint =>
'Tasks dated today, and those overdue, show here.';
@override
String lockedRows(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count items don\'t open on this device.',
one: '1 item doesn\'t open on this device.',
);
return '$_temp0';
}
@override
String get inboxMissingTitle => 'No Inbox yet';
@override
String get inboxMissingHint =>
'Your Inbox comes with the next sync, or once this device holds your account\'s keys.';
}
/// The translations for English, as used in the United Kingdom (`en_GB`).