// English locale — typed as typeof ru so missing/extra keys fail vue-tsc.
import type ru from './ru'
export default {
common: {
any: '— any —',
anyStatus: '— any status —',
noProject: '— no project —',
none: '— none —',
choose: '— choose —',
error: 'Request failed',
save: 'Save',
cancel: 'Cancel',
edit: 'Edit',
preview: 'Preview',
confirmTitle: 'Confirmation',
delete: 'Delete',
deleteConfirmTask: 'Delete task "{title}"? This cannot be undone.',
deleteConfirmProject: 'Delete project "{name}"? Tasks will remain, but without a project.',
saved: 'Saved',
created: 'Created',
taskDeleted: 'Task deleted',
projectDeleted: 'Project deleted',
taskApproved: 'Task approved',
taskTaken: 'Task started',
taskFinished: 'Task finished',
},
nav: {
sections: 'Sections',
subtitle: 'gntodo — personal tasks',
signIn: 'Sign in',
account: 'Account',
signOut: 'Sign out',
stack: 'Inbox stack',
tree: 'Task tree',
list: 'Task list',
projects: 'Projects',
options: '3 options',
settings: 'Settings',
},
stack: {
title: 'Inbox stack',
count: 'Tasks in stack: {n}',
quickPlaceholder: 'Throw in a task — just the text, details later…',
quickAdd: 'Throw in',
added: 'Task added to the stack',
detailTitle: 'Task details',
emptyTitle: 'Stack is empty',
emptyText: 'Throw in your first task — detailing is picked automatically.',
inStack: 'in stack',
uploading: 'uploading…',
proposal: 'AI proposal:',
proposalPending: 'Detailing in progress…',
proposalNewProject: '+ project "{name}"',
proposalPriority: 'priority {n}',
approveProposal: 'Yes, looks right',
detail: 'Detail it',
redetail: 'Ask AI again',
deleteTask: 'Delete task',
deleteAttachment: 'Delete attachment',
promptProject: 'Name of the new project:',
promptTag: 'Name of the new tag:',
newProject: 'New project',
newTag: 'New tag',
approve: 'Approve',
form: {
title: 'Title',
description: 'Description (Markdown, Ctrl+V for image)',
preview: 'Markdown preview',
project: 'Project',
tags: 'Tags',
priority: 'Priority (0–10)',
estimate: 'Time estimate, minutes',
budget: 'Budget (in settings currency)',
cost: 'Cost estimate (in settings currency)',
},
deadline: {
legend: 'Deadline',
date: 'Strict — date',
period: 'Soft — period',
},
recur: {
legend: 'Task type',
oneTime: 'One-time',
recurring: 'Recurring (repeats)',
kind: 'Repeat rule',
interval: 'Interval, days',
weekdays: 'Days of week',
monthlyDay: 'Day of month (1–31, empty — last)',
},
},
tree: {
title: 'Task tree',
count: 'Tasks: {n}',
emptyTitle: 'No tasks yet',
emptyText: 'Approve tasks in the stack — a tree will grow here.',
addSubtask: 'Add subtask',
promptSubtask: 'Subtask:',
collapse: 'Collapse',
expand: 'Expand',
},
list: {
title: 'Task list',
count: 'Found: {n}',
emptyTitle: 'Nothing found',
emptyText: 'Try relaxing the filters or throw a new task into the stack.',
filterStatus: 'Status',
filterProject: 'Project',
filterTag: 'Tag',
},
options: {
title: '3 options',
done: 'Done',
notNow: 'Not now — other options',
available: 'Available time, minutes',
suggest: 'Suggest',
choose: 'Do it now',
emptyTitle: 'No options',
emptyText: 'No free tasks fit this time — throw something into the stack or lower the time.',
},
projects: {
title: 'Projects',
count: 'Projects: {n}',
new: 'New project',
emptyTitle: 'No projects',
emptyText:
'Create a project — tasks can be grouped and get notes with resources.',
prompt: 'Name of the new project:',
edit: 'Edit',
delete: 'Delete project',
form: {
name: 'Name',
relevance: 'Relevance',
priority: 'Priority (0–10)',
note: 'Note (Markdown: links, context)',
preview: 'Preview',
},
},
settings: {
title: 'Settings',
currencyTitle: 'Budget currency',
currencyHint:
'The unit is chosen once and applies to all amounts: task budget, cost estimate.',
currencyUnit: 'Unit',
saved: 'Saved — applied in all views.',
languageTitle: 'Interface language',
languageHint:
'The chosen language applies immediately. "Same as account" takes it from gnexus auth.',
languageUnit: 'Language',
languageAuto: 'Same as account (SSO)',
langRu: 'Русский',
langEn: 'English',
langUk: 'Українська',
},
taskui: {
status: {
to_do: 'To do',
in_progress: 'In progress',
done: 'Done',
cancelled: 'Cancelled',
deferred: 'Deferred',
},
relevance: {
active: 'Active',
paused: 'Paused',
archived: 'Archived',
},
time: {
hm: '{h} h {m} m',
h: '{h} h',
m: '{m} m',
},
money: {
budget: 'budget {amount}',
estimate: 'estimate {amount}',
},
currency: {
UAH: '₴ Hryvnia (UAH)',
USD: '$ Dollar (USD)',
EUR: '€ Euro (EUR)',
GBP: '£ Pound (GBP)',
PLN: 'zł Zloty (PLN)',
},
deadline: {
day: 'within a day',
week: 'within a week',
month: 'within a month',
year: 'within a year',
until: 'by {date}',
},
recur: {
kind: {
interval: 'Every N days',
weekdays: 'Days of week',
monthly: 'Day of month',
},
daily: 'daily',
weekly: 'weekly',
everyN: 'every {n} d',
byWeekdays: 'by days of week',
monthlyDay: 'monthly on day {day}',
recurring: 'recurring',
},
},
} satisfies typeof ru