// Русская локаль — источник правды ключей; en.ts/uk.ts типизируются как typeof ru.
// Namespaces по областям UI (см. план i18n): common, nav, stack, tree, list,
// options, projects, settings, taskui.
export default {
common: {
any: '— любой —',
anyStatus: '— любой статус —',
noProject: '— без проекта —',
none: '— нет —',
choose: '— выберите —',
error: 'Ошибка запроса',
save: 'Сохранить',
cancel: 'Отмена',
edit: 'Редактировать',
preview: 'Предпросмотр',
confirmTitle: 'Подтверждение',
delete: 'Удалить',
deleteConfirmTask: 'Удалить задачу «{title}»? Действие необратимо.',
deleteConfirmProject: 'Удалить проект «{name}»? Задачи останутся, но без проекта.',
saved: 'Сохранено',
created: 'Создано',
taskDeleted: 'Задача удалена',
projectDeleted: 'Проект удалён',
taskApproved: 'Задача утверждена',
taskTaken: 'Задача взята в работу',
taskFinished: 'Задача завершена',
},
nav: {
sections: 'Разделы',
subtitle: 'gntodo — личные задачи',
signIn: 'Войти',
account: 'Аккаунт',
signOut: 'Выйти',
stack: 'Стек входящих',
tree: 'Дерево задач',
list: 'Список задач',
projects: 'Проекты',
options: '3 варианта',
settings: 'Настройки',
},
stack: {
title: 'Стек входящих',
count: 'Задач в стеке: {n}',
quickPlaceholder: 'Закинуть задачу — только текст, остальное потом…',
quickAdd: 'Закинуть',
added: 'Задача закинута в стек',
detailTitle: 'Детализация задачи',
emptyTitle: 'Стек пуст',
emptyText: 'Закиньте первую задачу — детализация подберётся автоматически.',
inStack: 'в стеке',
uploading: 'загрузка…',
proposal: 'Предложение ИИ:',
proposalPending: 'Детализация подбирается…',
proposalNewProject: '+ проект «{name}»',
proposalPriority: 'приоритет {n}',
approveProposal: 'Да, всё верно',
detail: 'Детализировать',
redetail: 'Переспросить ИИ',
deleteTask: 'Удалить задачу',
deleteAttachment: 'Удалить вложение',
promptProject: 'Название нового проекта:',
promptTag: 'Название нового тега:',
newProject: 'Новый проект',
newTag: 'Новый тег',
approve: 'Утвердить',
form: {
title: 'Заголовок',
description: 'Описание (Markdown, Ctrl+V — картинка)',
preview: 'Предпросмотр Markdown',
project: 'Проект',
tags: 'Теги',
priority: 'Приоритет (0–10)',
estimate: 'Оценка времени, минут',
budget: 'Бюджет (в валюте настроек)',
cost: 'Оценка затрат (в валюте настроек)',
},
deadline: {
legend: 'Дедлайн',
date: 'Строгий — дата',
period: 'Нестрогий — период',
},
recur: {
legend: 'Тип задачи',
oneTime: 'Разовая',
recurring: 'Регулярная (повторяется)',
kind: 'Правило повторения',
interval: 'Интервал, дней',
weekdays: 'Дни недели',
monthlyDay: 'День месяца (1–31, без дня — последний)',
},
},
tree: {
title: 'Дерево задач',
count: 'Задач: {n}',
emptyTitle: 'Задач пока нет',
emptyText: 'Утвердите задачи в стеке — здесь вырастет дерево.',
addSubtask: 'Добавить подзадачу',
promptSubtask: 'Подзадача:',
collapse: 'Свернуть',
expand: 'Развернуть',
},
list: {
title: 'Список задач',
count: 'Найдено: {n}',
emptyTitle: 'Ничего не найдено',
emptyText: 'Попробуйте ослабить фильтры или закиньте новую задачу в стек.',
filterStatus: 'Статус',
filterProject: 'Проект',
filterTag: 'Тег',
},
options: {
title: '3 варианта',
done: 'Готово',
notNow: 'Не сейчас — другие варианты',
available: 'Доступное время, минут',
suggest: 'Предложить',
choose: 'Делаем сейчас',
emptyTitle: 'Вариантов нет',
emptyText:
'Свободных задач под это время не нашлось — закиньте что-нибудь в стек или уменьшите время.',
},
projects: {
title: 'Проекты',
count: 'Проектов: {n}',
new: 'Новый проект',
emptyTitle: 'Проектов нет',
emptyText:
'Создайте проект — задачи можно будет группировать и добавлять заметки с ресурсами.',
prompt: 'Название нового проекта:',
edit: 'Редактировать',
delete: 'Удалить проект',
form: {
name: 'Название',
relevance: 'Актуальность',
priority: 'Приоритет (0–10)',
note: 'Заметка (Markdown: ссылки, контекст)',
preview: 'Предпросмотр',
},
},
settings: {
title: 'Настройки',
currencyTitle: 'Валюта бюджетов',
currencyHint:
'Единица выбирается один раз и применяется во всех суммах: бюджет задачи, оценка затрат.',
currencyUnit: 'Единица измерения',
saved: 'Сохранено — применяется во всех видах.',
languageTitle: 'Язык интерфейса',
languageHint:
'Выбранный язык применяется сразу. «Как в аккаунте» — язык берётся из gnexus auth.',
languageUnit: 'Язык',
languageAuto: 'Как в аккаунте (SSO)',
langRu: 'Русский',
langEn: 'English',
langUk: 'Українська',
},
taskui: {
status: {
to_do: 'К выполнению',
in_progress: 'В работе',
done: 'Завершено',
cancelled: 'Отменено',
deferred: 'Отложено',
},
relevance: {
active: 'Активен',
paused: 'Приостановлен',
archived: 'Закрыт',
},
time: {
hm: '{h} ч {m} м',
h: '{h} ч',
m: '{m} м',
},
money: {
budget: 'бюджет {amount}',
estimate: 'оценка {amount}',
},
currency: {
UAH: '₴ Гривна (UAH)',
USD: '$ Доллар (USD)',
EUR: '€ Евро (EUR)',
GBP: '£ Фунт (GBP)',
PLN: 'zł Злотый (PLN)',
},
deadline: {
day: 'в течение дня',
week: 'в течение недели',
month: 'в течение месяца',
year: 'в течение года',
until: 'до {date}',
},
recur: {
kind: {
interval: 'Каждые N дней',
weekdays: 'Дни недели',
monthly: 'День месяца',
},
daily: 'ежедневно',
weekly: 'еженедельно',
everyN: 'каждые {n} дн.',
byWeekdays: 'по дням недели',
monthlyDay: 'ежемесячно {day}-го',
recurring: 'регулярная',
},
},
}