- halkyon_ui: showAdaptiveSheet shows a dialog on Linux, macOS and Windows at every width (bottom sheets stay on phones and tablets below expanded windows), so Learn and Train follow; SheetScaffold takes a heading in the title's place and may leave out its close button. - Todo: the tabs are Inbox, Today, Upcoming, Browse, Today still opening; `serverpod start` launches the app on Linux, as it has no web build. - A task's sheet shows where the task is (its project, an icon once tasks are above it, and the tasks above it, each opening what it names) and a ⋮ menu in place of its close button: when it was added (its UUID v7), Duplicate with its sub-tasks, hiding its done sub-tasks (synced in its payload), Close in the pane, Delete after asking. The description's icon stays by its first line. - A row names its project and section at the end of its date's line; every menu entry has its icon. - Learn: a studyset's path starts at the Library tab's icon, named by its tooltip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
180 lines
8.7 KiB
Text
180 lines
8.7 KiB
Text
{
|
|
"@@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",
|
|
"shellTabBrowse": "Browse",
|
|
"settingsTitle": "Settings",
|
|
"settingsVersion": "Version {version} (build {build})",
|
|
"@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.",
|
|
"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.",
|
|
"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"
|
|
}
|