halkyon/apps/todo/halkyon_todo_flutter/lib/l10n/app_en.arb

1246 lines
39 KiB
Text
Raw Normal View History

{
"@@locale": "en",
"appTitle": "Halkyon Todo",
"@appTitle": {
"description": "The app's name: the window's title, and where halkyon_app's texts name the app."
},
"launchProduct": "Todo",
"@launchProduct": {
"description": "The app's word in its wordmark, under \"Halkyon\"."
},
"instanceFirstStartSubtitle": "Choose the instance to keep your tasks on. Someone runs each one; you can add others later.",
"accountTitle": "Account",
"accountDeleteMessage": "Your account is deleted on the server and on all your devices. This can't be undone.",
"aboutTitle": "About Halkyon Todo",
"shellTabToday": "Today",
"shellTabUpcoming": "Upcoming",
"shellTabInbox": "Inbox",
"todayCount": "{count, plural, =1{1 task} other{{count} tasks}}",
"@todayCount": {
"description": "Under Today's title: how many tasks are overdue or due today.",
"placeholders": {
"count": {
"type": "int"
}
}
},
"browseProfile": "Profile",
"browseProfileHint": "Your account, how you sign in and your public profile",
"shellTabBrowse": "Browse",
"settingsTitle": "Settings",
"settingsVersion": "Version {version} (build {build})",
"@settingsVersion": {
"placeholders": {
"version": {
"type": "String"
},
"build": {
"type": "String"
}
}
},
"clear": "Clear",
"colorLabel": "Colour",
"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.",
"filtersLabelsTitle": "Filters & labels",
"filtersLabelsHint": "Views of your tasks, kept",
"filtersTitle": "My filters",
"filtersNone": "No filters yet.",
"filterAdd": "New filter",
"filterEdit": "Edit filter",
"filterDelete": "Delete filter",
"filterDeleteTitle": "Delete the filter?",
"filterName": "Name",
"filterDescription": "Description",
"filterQuery": "Query",
"filterQueryHint": "today & p1",
"filterFavorite": "Add to favourites",
"filterUnfavorite": "Remove from favourites",
"filterPreviewEmpty": "Nothing matches yet.",
"filterNothing": "No tasks in this filter at the moment.",
"filterHelp": "today, tomorrow, overdue, no date, 7 days, p1 to p4, #Project, ##Project with its sub-projects, /Section, @label, search: word. Combine them with & (and), | (or), ! (not) and parentheses; * stands for anything in a name.",
"filterMenu": "Filter menu",
"labelMenu": "Label menu",
"labelNothing": "No open tasks have this label.",
"labelEditEntry": "Edit label",
"filterMatches": "{count, plural, =1{1 task matches} other{{count} tasks match}}",
"@filterMatches": {
"description": "The filter editor's preview.",
"placeholders": {
"count": {
"type": "int"
}
}
},
"filterNotRead": "Not understood near “{near}”",
"@filterNotRead": {
"description": "The filter editor when its query cannot be read.",
"placeholders": {
"near": {
"type": "String"
}
}
},
"filterNotReadEnd": "This query ends too soon",
"@filterNotReadEnd": {
"description": "The filter editor when its query stops before it is complete."
},
"commentShowAll": "Show all",
"commentReact": "Add a reaction",
"commentReactionRemove": "Remove {emoji}",
"commentNone": "Add relevant notes, links or anything else here.",
"@commentReactionRemove": {
"placeholders": {
"emoji": {
"type": "String"
}
}
},
"emojiSearch": "Search emoji",
"emojiNone": "No emoji found",
"emojiRecent": "Recently used",
"emojiSmileys": "Smileys & people",
"emojiAnimals": "Animals & nature",
"emojiFoods": "Food & drink",
"emojiActivities": "Activities",
"emojiTravel": "Travel & places",
"emojiObjects": "Objects",
"emojiSymbols": "Symbols",
"emojiFlags": "Flags",
"commentsTitle": "Comments",
"commentAdd": "Add a comment",
"commentSend": "Send comment",
"commentMenu": "Comment menu",
"commentEdit": "Edit comment",
"commentCopy": "Copy text",
"commentDelete": "Delete comment",
"commentDeleteTitle": "Delete the comment?",
"commentEdited": "{when}, edited",
"@commentEdited": {
"description": "When a comment was written, once it was changed.",
"placeholders": {
"when": {
"type": "String"
}
}
},
"reportingTitle": "Reporting",
"reportingHint": "Goals, streaks and what you've done",
"reportingDaily": "Daily",
"reportingWeekly": "Weekly",
"reportingHistory": "History",
"reportingLast7Days": "Done in the last 7 days",
"reportingLast4Weeks": "Done in the last 4 weeks",
"historyProject": "Project",
"historyAllProjects": "All projects",
"historyNothing": "Nothing done yet.",
"goalsDaily": "Tasks a day",
"goalsWeekly": "Tasks a week",
"goalsDaysOff": "Days off",
"goalsVacation": "Vacation",
"goalsVacationHint": "Streaks wait until you're back",
"goalsEdit": "Edit goals",
"goalsDailyTitle": "Daily goal",
"goalsWeeklyTitle": "Weekly goal",
"goalsDailyStreak": "Daily streak",
"goalsWeeklyStreak": "Weekly streak",
"goalsOnVacation": "On vacation",
"goalsProgress": "{done} of {goal} tasks",
"@goalsProgress": {
"placeholders": {
"done": {
"type": "int"
},
"goal": {
"type": "int"
}
}
},
"goalsLongest": "Longest: {length} ({from} to {to})",
"@goalsLongest": {
"placeholders": {
"length": {
"type": "String"
},
"from": {
"type": "String"
},
"to": {
"type": "String"
}
}
},
"goalsDays": "{count, plural, =1{1 day} other{{count} days}}",
"@goalsDays": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"goalsWeeks": "{count, plural, =1{1 week} other{{count} weeks}}",
"@goalsWeeks": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"reportingTasks": "{count, plural, =1{1 task} other{{count} tasks}}",
"@reportingTasks": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"goalsReached": "Daily goal reached: {count, plural, =1{1 task} other{{count} tasks}} done today.",
"@goalsReached": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"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.",
feat(todo): a project's editor as Todoist's Add project, with sub-projects and favourites Adding or editing a project was a dialog of a name and a colour. It is now a screen of its own on a phone (a dialog where sheets are dialogs), as Todoist's Add project: the name counted to 120, a description, the colour, the parent project, a Favourite switch and the layout, Display's pictures. All of it lives in the project's sealed payload, the schema still 1, no server model or migration; the payload now keeps fields it doesn't know, as a task's does. A new project starts with the layout picked, and Display's Reset all returns to that default rather than to List. Browse lists sub-projects indented and folding under their parents, and the favourites in a group above; a project is never offered as its own ancestor, and a parent's deletion takes its sub-projects, naming them first, as Todoist's. ADR 0033, D28. Whats-New: Add project and Edit project are a screen of their own, with a description, a parent project, Favourite and the layout. Whats-New: Browse lists sub-projects under their parents and your favourite projects at the top. Whats-New: Reset all in Display returns to the layout the project was made with. Whats-New-De: „Projekt hinzufügen“ und „Projekt bearbeiten“ sind eine eigene Seite, mit Beschreibung, übergeordnetem Projekt, Favorit und Layout. Whats-New-De: „Übersicht“ zeigt Unterprojekte unter ihren Projekten und deine Favoriten oben. Whats-New-De: „Alles zurücksetzen“ in der Anzeige kehrt zum Layout zurück, mit dem das Projekt angelegt wurde. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 20:56:34 +01:00
"projectAdd": "Add 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"
}
}
},
feat(todo): a project's editor as Todoist's Add project, with sub-projects and favourites Adding or editing a project was a dialog of a name and a colour. It is now a screen of its own on a phone (a dialog where sheets are dialogs), as Todoist's Add project: the name counted to 120, a description, the colour, the parent project, a Favourite switch and the layout, Display's pictures. All of it lives in the project's sealed payload, the schema still 1, no server model or migration; the payload now keeps fields it doesn't know, as a task's does. A new project starts with the layout picked, and Display's Reset all returns to that default rather than to List. Browse lists sub-projects indented and folding under their parents, and the favourites in a group above; a project is never offered as its own ancestor, and a parent's deletion takes its sub-projects, naming them first, as Todoist's. ADR 0033, D28. Whats-New: Add project and Edit project are a screen of their own, with a description, a parent project, Favourite and the layout. Whats-New: Browse lists sub-projects under their parents and your favourite projects at the top. Whats-New: Reset all in Display returns to the layout the project was made with. Whats-New-De: „Projekt hinzufügen“ und „Projekt bearbeiten“ sind eine eigene Seite, mit Beschreibung, übergeordnetem Projekt, Favorit und Layout. Whats-New-De: „Übersicht“ zeigt Unterprojekte unter ihren Projekten und deine Favoriten oben. Whats-New-De: „Alles zurücksetzen“ in der Anzeige kehrt zum Layout zurück, mit dem das Projekt angelegt wurde. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 20:56:34 +01:00
"projectParent": "Parent project",
"@projectParent": {
"description": "A project's editor (ADR 0033, D28), as Todoist's Add project."
},
"projectNoParent": "No parent",
"projectFavorite": "Favourite",
"favoritesTitle": "Favourites",
"projectSubProjectsHide": "Hide sub-projects",
"projectSubProjectsShow": "Show sub-projects",
"projectDeleteWithSubProjects": "\"{name}\" is deleted with its sub-projects {subProjects}, and their sections and tasks, on all your devices.",
"@projectDeleteWithSubProjects": {
"description": "Deleting a project with sub-projects (ADR 0033, D28): subProjects their names, separated by commas.",
"placeholders": {
"name": {
"type": "String"
},
"subProjects": {
"type": "String"
}
}
},
"projectEmptyTitle": "Nothing to do here",
"projectEmptyHint": "Add a task with the + button.",
"projectGone": "This project was deleted.",
"projectMenu": "More",
"projectPickTitle": "Project",
"sectionAdd": "Add 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": "Task name",
"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.",
"repeatTitle": "Repeat",
"repeatNone": "Doesn't repeat",
"repeatCustom": "Custom",
"repeatEveryDay": "{count, plural, =1{Every day} other{Every {count} days}}",
"@repeatEveryDay": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"repeatEveryWeek": "{count, plural, =1{Every week} other{Every {count} weeks}}",
"@repeatEveryWeek": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"repeatEveryMonth": "{count, plural, =1{Every month} other{Every {count} months}}",
"@repeatEveryMonth": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"repeatEveryYear": "{count, plural, =1{Every year} other{Every {count} years}}",
"@repeatEveryYear": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"repeatWeekdays": "Every weekday",
"repeatOn": "{rule} on {on}",
"@repeatOn": {
"placeholders": {
"rule": {
"type": "String"
},
"on": {
"type": "String"
}
}
},
"repeatMonthDay": "day {day}",
"@repeatMonthDay": {
"placeholders": {
"day": {
"type": "int"
}
}
},
"repeatMonthWeek": "the {nth, select, 1{first} 2{second} 3{third} 4{fourth} other{last}} {weekday}",
"@repeatMonthWeek": {
"placeholders": {
"nth": {
"type": "String"
},
"weekday": {
"type": "String"
}
}
},
"repeatFromCompletion": "{rule}, from when it's done",
"@repeatFromCompletion": {
"placeholders": {
"rule": {
"type": "String"
}
}
},
"repeatUntil": "{rule}, until {day}",
"@repeatUntil": {
"placeholders": {
"rule": {
"type": "String"
},
"day": {
"type": "String"
}
}
},
"repeatLeft": "{rule}, {count, plural, =0{this time only} =1{once more} other{{count} more times}}",
"@repeatLeft": {
"placeholders": {
"rule": {
"type": "String"
},
"count": {
"type": "int"
}
}
},
"repeatEvery": "Every",
"repeatUnitDays": "Days",
"repeatUnitWeeks": "Weeks",
"repeatUnitMonths": "Months",
"repeatUnitYears": "Years",
"repeatCountFromCompletion": "Count from when it's done",
"repeatCountFromCompletionHint": "Not from its date: done late, it comes again as long after.",
"repeatEnds": "Ends",
"repeatEndsNever": "Never",
"repeatEndsOn": "On a day",
"repeatEndsAfter": "{count, plural, =1{After once} other{After {count} times}}",
"@repeatEndsAfter": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"remindersTitle": "Reminders",
"remindersNone": "No reminders",
"reminderAtTime": "At its time",
"reminderMinutesBefore": "{count, plural, =1{1 minute before} other{{count} minutes before}}",
"@reminderMinutesBefore": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"reminderHoursBefore": "{count, plural, =1{1 hour before} other{{count} hours before}}",
"@reminderHoursBefore": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"reminderDaysBefore": "{count, plural, =1{1 day before} other{{count} days before}}",
"@reminderDaysBefore": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"reminderDue": "Due at {time}",
"@reminderDue": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"remindersChannel": "Task reminders",
"remindersNotAllowed": "Notifications are off for Halkyon Todo: reminders show once you allow them in the system's settings.",
"remindersOnThisDevice": "Reminders come on each of your devices that opens your tasks.",
"reminderBody": "Reminder",
"remindersAtTimes": "At a time of their own",
"reminderAddTime": "Remind at a time",
"reminderRemove": "Remove the reminder",
"durationTitle": "Duration",
"durationNone": "No duration",
"durationHours": "{hours} h",
"@durationHours": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"durationMinutes": "{minutes} min",
"@durationMinutes": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"durationHoursMinutes": "{hours} h {minutes} min",
"@durationHoursMinutes": {
"placeholders": {
"hours": {
"type": "int"
},
"minutes": {
"type": "int"
}
}
},
"weekPrevious": "Previous week",
"weekNext": "Following week",
"searchTitle": "Search",
"searchHint": "Search tasks and projects",
"searchEmpty": "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.",
"searchNone": "Nothing found for “{query}”.",
"@searchNone": {
"placeholders": {
"query": {
"type": "String"
}
}
},
"searchProjects": "Projects",
"searchTasks": "Tasks",
"taskMore": "Task options",
"taskAddedOn": "Added on {when}",
"@taskAddedOn": {
"placeholders": {
"when": {
"type": "String"
}
}
},
"taskDuplicate": "Duplicate",
"taskDuplicated": "Task duplicated",
"subTasksHideDone": "Hide done sub-tasks",
"subTasksShowDone": "Show done sub-tasks",
"taskClose": "Close",
"taskPath": "Where the task is",
"weekToday": "Back to today",
"monthPrevious": "Previous month",
"monthNext": "Following month",
"monthShow": "Show the whole month",
"monthHide": "Show one week",
"selectTasks": "Select tasks",
"selectionCount": "{count, plural, =0{Select tasks} =1{1 task selected} other{{count} tasks selected}}",
"@selectionCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionEnd": "Stop selecting",
"selectionDate": "Date",
"selectionMove": "Move to",
"selectionLabels": "Labels",
"selectionPriority": "Priority",
"selectionMore": "More",
"selectionDelete": "{count, plural, =1{Delete 1 task} other{Delete {count} tasks}}",
"@selectionDelete": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionDeleteTitle": "Delete the tasks?",
"selectionDeleteMessage": "{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.}}",
"@selectionDeleteMessage": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionDuplicate": "{count, plural, =1{Duplicate 1 task} other{Duplicate {count} tasks}}",
"@selectionDuplicate": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionComplete": "{count, plural, =1{Complete 1 task} other{Complete {count} tasks}}",
"@selectionComplete": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionDeadline": "Deadline",
"tasksCompleted": "{count, plural, =1{Task done} other{{count} tasks done}}",
"@tasksCompleted": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"swipeSelect": "Select",
"swipeDate": "Date",
"tasksMenu": "More",
"quickAddMore": "More",
"@quickAddMore": {
"description": "Quick add's + menu, holding Description and Deadline (ADR 0033, D15)."
},
"quickAddTokenHint": "Tap a highlighted word, or press Backspace right after it, to keep it as text.",
"@quickAddTokenHint": {
"description": "Below quick add's title while it has tokens recognised (D15)."
},
"quickAddSpeak": "Dictate the task",
"@quickAddSpeak": {
"description": "Tooltip of quick add's microphone, shown while the title is empty (D29)."
},
"quickAddStopListening": "Stop listening",
"@quickAddStopListening": {
"description": "Tooltip of quick add's microphone while it listens (D29)."
},
"quickAddSpeechUnavailable": "This device can't listen now. Check that the app may use the microphone and that speech recognition is on.",
"@quickAddSpeechUnavailable": {
"description": "Shown when quick add's microphone can't listen, as with the microphone refused (D29)."
},
"deadlineTitle": "Deadline",
"@deadlineTitle": {
"description": "Quick add's deadline chip and menu entry (D15)."
},
"orderChanged": "Order changed",
"@orderChanged": {
"description": "Snack bar after a task was dragged into another place (ADR 0033, D16)."
},
"addTaskCancel": "Drop here to cancel",
"@addTaskCancel": {
"description": "The × left in the add button's place while it is dragged (D16)."
},
"taskMovedTo": "Moved to {day}",
"@taskMovedTo": {
"description": "Snack bar after a task was dragged onto another day in Upcoming (ADR 0033, D16).",
"placeholders": {
"day": {
"type": "String"
}
}
},
"display": "Display",
"@display": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayCompleted": "Completed tasks",
"@displayCompleted": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displaySort": "Sort",
"@displaySort": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayGrouping": "Grouping",
"@displayGrouping": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displaySorting": "Sorting",
"@displaySorting": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayFilter": "Filter",
"@displayFilter": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayDeadline": "Deadline",
"@displayDeadline": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayLabel": "Label",
"@displayLabel": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayReset": "Reset all",
"@displayReset": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayDone": "Done",
"@displayDone": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayAll": "All",
"@displayAll": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayAny": "Any",
"@displayAny": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupingNone": "None",
"@groupingNone": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupingDate": "Date",
"@groupingDate": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupingDeadline": "Deadline",
"@groupingDeadline": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupingAdded": "Added date",
"@groupingAdded": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupingPriority": "Priority",
"@groupingPriority": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupingLabel": "Label",
"@groupingLabel": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"sortingManual": "Manual",
"@sortingManual": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"sortingName": "Name",
"@sortingName": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"sortingDate": "Date",
"@sortingDate": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"sortingDeadline": "Deadline",
"@sortingDeadline": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"sortingAdded": "Added date",
"@sortingAdded": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"sortingPriority": "Priority",
"@sortingPriority": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeToday": "Today",
"@rangeToday": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeThisWeek": "This week",
"@rangeThisWeek": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeNext7": "Next 7 days",
"@rangeNext7": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeThisMonth": "This month",
"@rangeThisMonth": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeNext30": "Next 30 days",
"@rangeNext30": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeNoDate": "No date",
"@rangeNoDate": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"rangeNoDeadline": "No deadline",
"@rangeNoDeadline": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"viewNothingTitle": "Nothing matches",
"@viewNothingTitle": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"viewNothingHint": "This view's filters leave out every task here. Display changes them.",
"@viewNothingHint": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displaySave": "Save",
"@displaySave": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"displayCancel": "Cancel",
"@displayCancel": {
"description": "A project's Display sheet and what it shows (ADR 0033, D17)."
},
"groupNoLabel": "No label",
"@groupNoLabel": {
"description": "A project's group of tasks without a label (ADR 0033, D17)."
},
"layoutTitle": "Layout",
"@layoutTitle": {
"description": "A project's layout in its Display, and its board's columns (ADR 0033, D17)."
},
"layoutList": "List",
"@layoutList": {
"description": "A project's layout in its Display, and its board's columns (ADR 0033, D17)."
},
"taskColumnDescription": "Description",
"taskColumnCreated": "Created",
"tableColumns": "Columns",
"tableDetails": "Task details",
"tableSubTasks": "Sub-tasks",
"tableReminders": "Reminders",
"tableFilter": "Filter",
"tableSortUp": "Sort ascending",
"tableSortDown": "Sort descending",
"tableMoveLeft": "Move left",
"tableMoveRight": "Move right",
"tableHide": "Hide column",
"layoutTable": "Table",
"taskColumnTask": "Task",
"taskColumnDate": "Date",
"taskColumnDeadline": "Deadline",
"layoutBoard": "Board",
"@layoutBoard": {
"description": "A project's layout in its Display, and its board's columns (ADR 0033, D17)."
},
"boardNoSection": "(No section)",
"@boardNoSection": {
"description": "A project's layout in its Display, and its board's columns (ADR 0033, D17)."
},
"layoutCalendar": "Calendar",
"@layoutCalendar": {
"description": "A project's Calendar layout and its Display (ADR 0033, D17)."
},
"displayOccurrences": "Future occurrences",
"@displayOccurrences": {
"description": "A project's Calendar layout and its Display (ADR 0033, D17)."
},
"calendarNoDate": "No date",
"@calendarNoDate": {
"description": "A project's Calendar layout and its Display (ADR 0033, D17)."
},
"calendarNoDateEmpty": "Every task here has a date",
"@calendarNoDateEmpty": {
"description": "A project's Calendar layout and its Display (ADR 0033, D17)."
},
"calendarNoDateHint": "Tasks of this project without a date show here.",
"@calendarNoDateHint": {
"description": "A project's Calendar layout and its Display (ADR 0033, D17)."
},
"taskLater": "A later time of a repeating task",
"@taskLater": {
"description": "A project's Calendar layout and its Display (ADR 0033, D17)."
},
"sortingSmart": "Smart",
"@sortingSmart": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"layoutAgenda": "Agenda",
"@layoutAgenda": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"layoutThreeDay": "3-day",
"@layoutThreeDay": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"displayColoring": "Colouring",
"@displayColoring": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"coloringProject": "Project",
"@coloringProject": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"allDay": "All day",
"@allDay": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"daysPrevious": "Earlier days",
"@daysPrevious": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"daysNext": "Later days",
"@daysNext": {
"description": "Upcoming's Display and its 3-day grid (ADR 0033, D17)."
},
"settingsTasks": "Tasks",
"@settingsTasks": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"weekStartTitle": "Start the week on",
"@weekStartTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"weekStartLanguage": "As the language has it",
"@weekStartLanguage": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"resetSubTasksTitle": "Reset sub-tasks",
"@resetSubTasksTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"resetSubTasksHint": "Open them again when a recurring task is done",
"@resetSubTasksHint": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"automaticReminderTitle": "Automatic reminder",
"@automaticReminderTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"automaticReminderHint": "For a task given a time, unless it has reminders of its own",
"@automaticReminderHint": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"automaticReminderNone": "None",
"@automaticReminderNone": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"snoozeTitle": "When snoozed",
"@snoozeTitle": {
"description": "Settings of tasks and reminders (ADR 0033, D4)."
},
"snoozeMinutes": "{count, plural, =1{1 minute} other{{count} minutes}}",
"@snoozeMinutes": {
"description": "Settings of tasks and reminders (ADR 0033, D4).",
"placeholders": {
"count": {
"type": "int"
}
}
},
"reminderSnooze": "Snooze {count} min",
"@reminderSnooze": {
"description": "Settings of tasks and reminders (ADR 0033, D4).",
"placeholders": {
"count": {
"type": "int"
}
}
},
"notificationsOffTitle": "Notifications are off",
"@notificationsOffTitle": {
"description": "Settings' Reminders while notifications are off and reminders are planned (ADR 0033, D31)."
},
"notificationsOffHint": "Reminders can't show until Halkyon Todo may notify you.",
"@notificationsOffHint": {
"description": "Settings' Reminders while notifications are off and reminders are planned (ADR 0033, D31)."
},
"notificationsTurnOn": "Turn on",
"@notificationsTurnOn": {
"description": "Settings' Reminders while notifications are off and reminders are planned (ADR 0033, D31)."
},
"monthMore": "{count} more",
"@monthMore": {
"description": "A project's Calendar as a month on wide windows (ADR 0033, D17): a day's tasks that don't fit.",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dayHeadingPattern": "EEEE, d MMM",
"@dayHeadingPattern": {
"description": "intl's DateFormat pattern of a day's heading in Today and Upcoming, as Todoist's (\"Tuesday, 3 Nov\"): EEEE the weekday, d the day, MMM the short month."
},
"overdueHide": "Hide what is overdue",
feat(todo): Today laid out as a calendar, planned from its Plan by dragging, as Todoist's desktop Today (ADR 0033, D30) The developer asked for Todoist's desktop Today planning: a day of hours and a Plan beside it, tasks dragged from it onto an hour. Today gets a Display, its layout alone (List or Calendar), kept in the person's sealed settings row as Upcoming's (`TodayView`, the payload's `today`, schema still 1). Its Calendar is one day of `HourGrid`; *Plan: n* in its app bar shows or hides the Plan (`PlanPanel`): Overdue with Reschedule, To plan (today's without a time) and Time-blocked (today's with one), each folding with its count, narrowed for the session by *All projects*' Filter by project (a search and a box a project, a sub-project with its parents' path). A row dropped on an hour is moved to today at that time, its duration kept; a block dropped on the Plan loses its time; both undone from the snack bar, through `moveTask`. From a medium width of Today's own on the Plan stands beside the day, shown or hidden as remembered; on a phone it is a sheet over the day's foot (the developer's choice, over the Plan on wide windows alone and over a strip above the day), part of the screen rather than a modal route, so that the day behind it takes the drop, and it lowers to its heading while one of its rows is held. Whats-New: Today's Display offers a Calendar layout: today's hours, with a Plan of what is overdue, to plan and time-blocked, whose tasks you drag onto an hour. Whats-New-De: Die Anzeige von Heute bietet das Layout Kalender: die Stunden des Tages, mit einem Plan aus Überfälligem, Zu planen und Eingeplant, dessen Aufgaben du auf eine Stunde ziehst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 22:39:38 +01:00
"overdueShow": "Show what is overdue",
"paneResize": "Resize",
feat(todo): Today laid out as a calendar, planned from its Plan by dragging, as Todoist's desktop Today (ADR 0033, D30) The developer asked for Todoist's desktop Today planning: a day of hours and a Plan beside it, tasks dragged from it onto an hour. Today gets a Display, its layout alone (List or Calendar), kept in the person's sealed settings row as Upcoming's (`TodayView`, the payload's `today`, schema still 1). Its Calendar is one day of `HourGrid`; *Plan: n* in its app bar shows or hides the Plan (`PlanPanel`): Overdue with Reschedule, To plan (today's without a time) and Time-blocked (today's with one), each folding with its count, narrowed for the session by *All projects*' Filter by project (a search and a box a project, a sub-project with its parents' path). A row dropped on an hour is moved to today at that time, its duration kept; a block dropped on the Plan loses its time; both undone from the snack bar, through `moveTask`. From a medium width of Today's own on the Plan stands beside the day, shown or hidden as remembered; on a phone it is a sheet over the day's foot (the developer's choice, over the Plan on wide windows alone and over a strip above the day), part of the screen rather than a modal route, so that the day behind it takes the drop, and it lowers to its heading while one of its rows is held. Whats-New: Today's Display offers a Calendar layout: today's hours, with a Plan of what is overdue, to plan and time-blocked, whose tasks you drag onto an hour. Whats-New-De: Die Anzeige von Heute bietet das Layout Kalender: die Stunden des Tages, mit einem Plan aus Überfälligem, Zu planen und Eingeplant, dessen Aufgaben du auf eine Stunde ziehst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 22:39:38 +01:00
"planButton": "Plan: {count}",
"@planButton": {
"description": "Today's app bar in its Calendar layout (ADR 0033, D30, as Todoist's): shows or hides the Plan, counting the tasks it holds.",
"placeholders": {
"count": {
"type": "int"
}
}
},
"planTitle": "Plan",
"@planTitle": {
"description": "Today's Plan beside or below its day of hours (ADR 0033, D30)."
},
"planShow": "Show the Plan",
"@planShow": {
"description": "Tooltip of Today's Plan button while the Plan is hidden (ADR 0033, D30)."
},
"planHide": "Hide the Plan",
"@planHide": {
"description": "Tooltip of Today's Plan button and the Plan's close button while it shows (ADR 0033, D30)."
},
"planNoDate": "No date",
feat(todo): Today laid out as a calendar, planned from its Plan by dragging, as Todoist's desktop Today (ADR 0033, D30) The developer asked for Todoist's desktop Today planning: a day of hours and a Plan beside it, tasks dragged from it onto an hour. Today gets a Display, its layout alone (List or Calendar), kept in the person's sealed settings row as Upcoming's (`TodayView`, the payload's `today`, schema still 1). Its Calendar is one day of `HourGrid`; *Plan: n* in its app bar shows or hides the Plan (`PlanPanel`): Overdue with Reschedule, To plan (today's without a time) and Time-blocked (today's with one), each folding with its count, narrowed for the session by *All projects*' Filter by project (a search and a box a project, a sub-project with its parents' path). A row dropped on an hour is moved to today at that time, its duration kept; a block dropped on the Plan loses its time; both undone from the snack bar, through `moveTask`. From a medium width of Today's own on the Plan stands beside the day, shown or hidden as remembered; on a phone it is a sheet over the day's foot (the developer's choice, over the Plan on wide windows alone and over a strip above the day), part of the screen rather than a modal route, so that the day behind it takes the drop, and it lowers to its heading while one of its rows is held. Whats-New: Today's Display offers a Calendar layout: today's hours, with a Plan of what is overdue, to plan and time-blocked, whose tasks you drag onto an hour. Whats-New-De: Die Anzeige von Heute bietet das Layout Kalender: die Stunden des Tages, mit einem Plan aus Überfälligem, Zu planen und Eingeplant, dessen Aufgaben du auf eine Stunde ziehst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 22:39:38 +01:00
"planToPlan": "To plan",
"@planToPlan": {
"description": "Today's Plan (ADR 0033, D30): the group of today's tasks without a time, to be given one."
},
"planTimeBlocked": "Time-blocked",
"@planTimeBlocked": {
"description": "Today's Plan (ADR 0033, D30, Todoist's word): the group of today's tasks with a time."
},
"planEmpty": "Nothing to plan",
"@planEmpty": {
"description": "Today's Plan (ADR 0033, D30) while it holds no task."
},
"planDropHint": "Drop here to take its time away",
"@planDropHint": {
"description": "Today's Plan (ADR 0033, D30) while a block of the day is dragged over it."
},
"planGroupHide": "Hide {group}",
"@planGroupHide": {
"description": "Tooltip folding a group of Today's Plan (ADR 0033, D30).",
"placeholders": {
"group": {
"type": "String"
}
}
},
"planGroupShow": "Show {group}",
"@planGroupShow": {
"description": "Tooltip unfolding a group of Today's Plan (ADR 0033, D30).",
"placeholders": {
"group": {
"type": "String"
}
}
},
"planAllProjects": "All projects",
"@planAllProjects": {
"description": "Today's Plan's project filter (ADR 0033, D30) while it keeps every project, and the button putting it back."
},
"planProjectsCount": "{count, plural, =1{1 project} other{{count} projects}}",
"@planProjectsCount": {
"description": "Today's Plan's project filter (ADR 0033, D30) while it keeps several projects.",
"placeholders": {
"count": {
"type": "int"
}
}
},
"planFilterTitle": "Filter by project",
"@planFilterTitle": {
"description": "Today's Plan's project filter (ADR 0033, D30): its search field's hint and its name."
},
"locationTitle": "Location",
"@locationTitle": {
"description": "Quick add's + menu and its button (ADR 0033, D32)."
},
"locationAdd": "Add location",
"@locationAdd": {
"description": "A task's Where, and the picker's button."
},
"locationWhere": "Where",
"@locationWhere": {
"description": "The heading of a task's places."
},
"locationAnyOf": "Any of these",
"@locationAnyOf": {
"description": "Under a task's Where, with several places: they are alternatives."
},
"locationSearchHint": "City or district, then the name",
"@locationSearchHint": {
"description": "The location picker's search field."
},
"locationSearchAny": "Search for a place",
"@locationSearchAny": {
"description": "Quick add, as + is typed."
},
"locationSearchFor": "Search for “{query}”",
"@locationSearchFor": {
"description": "Quick add, as +something is typed.",
"placeholders": {
"query": {
"type": "String"
}
}
},
"locationSearchUnavailable": "Search isn't available here. Move the map and tap to place a pin.",
"@locationSearchUnavailable": {
"description": "The location picker without a place search."
},
"locationSearchFailed": "The search didn't work. Try again.",
"@locationSearchFailed": {
"description": "The location picker after a failed search."
},
"locationNoResults": "Nothing found",
"@locationNoResults": {
"description": "The location picker, a search without results."
},
"locationRecent": "Recent",
"@locationRecent": {
"description": "The location picker's places of the person's tasks."
},
"locationNearby": "Or choose a nearby place",
"@locationNearby": {
"description": "Above the places around the pin in the location picker."
},
2026-11-06 00:12:01 +01:00
"locationNearbyFailed": "Couldn't look up what's around here",
"@locationNearbyFailed": {
"description": "The location picker when asking what is around the pin failed."
},
"locationTryAgain": "Try again",
"@locationTryAgain": {
"description": "Beside the location picker's message that asking what is around the pin failed."
},
"locationPickHint": "Zoom in and move the map to a spot",
"@locationPickHint": {
"description": "The location picker's sheet while the map is too far out for a spot."
},
"locationNorth": "Point north",
"@locationNorth": {
"description": "The location picker's compass, turning the map back to north."
},
"locationKind": "{kind, select, city{City} town{Town} village{Village} hamlet{Hamlet} isolated_dwelling{Isolated dwelling} locality{Locality} suburb{District} neighbourhood{Neighbourhood} residential{Street} house{Address} supermarket{Supermarket} convenience{Shop} bakery{Bakery} butcher{Butcher} chemist{Chemist} pharmacy{Pharmacy} doctors{Doctor} dentist{Dentist} hospital{Hospital} restaurant{Restaurant} cafe{Café} fast_food{Fast food} bar{Bar} pub{Pub} fuel{Petrol station} bank{Bank} post_office{Post office} school{School} kindergarten{Nursery} library{Library} station{Station} bus_stop{Bus stop} hotel{Hotel} park{Park} other{}}",
"@locationKind": {
"description": "What a place found is, from OpenStreetMap's value; empty for any other.",
"placeholders": {
"kind": {
"type": "String"
}
}
},
"locationZoomIn": "Zoom in",
"@locationZoomIn": {
"description": "The location picker's button zooming the map in."
},
"locationZoomOut": "Zoom out",
"@locationZoomOut": {
"description": "The location picker's button zooming the map out."
},
"locationPin": "Pinned place",
"@locationPin": {
"description": "The name of a pin placed by hand where nothing names the spot."
},
"locationName": "Name",
"@locationName": {
"description": "The name field of a pin placed by hand."
},
"locationMine": "My position",
"@locationMine": {
"description": "The map's button."
},
"locationRemindNone": "No reminder",
"@locationRemindNone": {
"description": "A location's reminder."
},
"locationRemindArrive": "On arriving",
"@locationRemindArrive": {
"description": "A location's reminder."
},
"locationRemindLeave": "On leaving",
"@locationRemindLeave": {
"description": "A location's reminder."
},
"locationRemove": "Remove",
"@locationRemove": {
"description": "A task's location's menu."
},
"locationWatching": "Watching your places",
"locationWatchingChannel": "Places watched",
"locationAccessTitle": "Allow location all the time",
"@locationAccessTitle": {
"description": "Before asking for the position in the background."
},
"locationAccessHint": "To remind you when you arrive or leave, Halkyon Todo needs your position while it is closed too. It stays on this device. Next, choose “Allow all the time”.",
"@locationAccessHint": {
"description": "Before asking for the position in the background."
},
"locationAccessGo": "Continue",
"@locationAccessGo": {
"description": "Before asking for the position in the background."
},
"locationOffTitle": "Location is off for reminders",
"@locationOffTitle": {
"description": "Settings' Reminders while places are planned and may not be watched."
},
"locationOffHint": "Reminders at a place need “Allow all the time”.",
"@locationOffHint": {
"description": "Settings' Reminders while places are planned and may not be watched."
},
"locationArrived": "You're at {name}",
"@locationArrived": {
"description": "A reminder on arriving, below the task's title.",
"placeholders": {
"name": {
"type": "String"
}
}
},
"locationLeft": "You've left {name}",
"@locationLeft": {
"description": "A reminder on leaving, below the task's title.",
"placeholders": {
"name": {
"type": "String"
}
}
feat(todo): Today laid out as a calendar, planned from its Plan by dragging, as Todoist's desktop Today (ADR 0033, D30) The developer asked for Todoist's desktop Today planning: a day of hours and a Plan beside it, tasks dragged from it onto an hour. Today gets a Display, its layout alone (List or Calendar), kept in the person's sealed settings row as Upcoming's (`TodayView`, the payload's `today`, schema still 1). Its Calendar is one day of `HourGrid`; *Plan: n* in its app bar shows or hides the Plan (`PlanPanel`): Overdue with Reschedule, To plan (today's without a time) and Time-blocked (today's with one), each folding with its count, narrowed for the session by *All projects*' Filter by project (a search and a box a project, a sub-project with its parents' path). A row dropped on an hour is moved to today at that time, its duration kept; a block dropped on the Plan loses its time; both undone from the snack bar, through `moveTask`. From a medium width of Today's own on the Plan stands beside the day, shown or hidden as remembered; on a phone it is a sheet over the day's foot (the developer's choice, over the Plan on wide windows alone and over a strip above the day), part of the screen rather than a modal route, so that the day behind it takes the drop, and it lowers to its heading while one of its rows is held. Whats-New: Today's Display offers a Calendar layout: today's hours, with a Plan of what is overdue, to plan and time-blocked, whose tasks you drag onto an hour. Whats-New-De: Die Anzeige von Heute bietet das Layout Kalender: die Stunden des Tages, mit einem Plan aus Überfälligem, Zu planen und Eingeplant, dessen Aufgaben du auf eine Stunde ziehst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 22:39:38 +01:00
}
}