// Українська локаль — типізована як typeof ru, щоб пропущені ключі ловив vue-tsc.
import type ru from './ru'
export default {
common: {
any: '— будь-який —',
anyStatus: '— будь-який статус —',
noProject: '— без проєкту —',
none: '— немає —',
choose: '— оберіть —',
error: 'Помилка запиту',
save: 'Зберегти',
cancel: 'Скасувати',
edit: 'Редагувати',
preview: 'Попередній перегляд',
confirmTitle: 'Підтвердження',
delete: 'Видалити',
open: 'Відкрити',
deleteConfirmTask: 'Видалити задачу «{title}»? Дію не можна скасувати.',
deleteConfirmProject: 'Видалити проєкт «{name}»? Задачі залишаться, але без проєкту.',
saved: 'Збережено',
created: 'Створено',
create: 'Створити',
taskDeleted: 'Задачу видалено',
projectDeleted: 'Проєкт видалено',
taskApproved: 'Задачу затверджено',
taskTaken: 'Задачу взято в роботу',
taskFinished: 'Задачу завершено',
},
nav: {
sections: 'Розділи',
subtitle: 'GNexus Tasks — особисті задачі',
signIn: 'Увійти',
account: 'Акаунт',
signOut: 'Вийти',
task: 'Завдання',
home: 'Головна',
stack: 'Вхідний стек',
list: 'Список задач',
garden: 'Сад',
stats: 'Статистика',
projects: 'Проєкти',
options: '3 варіанти',
settings: 'Налаштування',
},
garden: {
title: 'Сад',
level: 'Рівень {n}',
xpTotal: '{n} XP',
plants: 'рослин: {n}',
levelProgress: 'До наступного рівня: {xp} / {span} XP',
aboutOpen: 'Як це працює',
aboutTitle: 'Як влаштований сад',
about: [
'Кожне виконане завдання залишає на грядці рослину — сад лише зростає і ніколи не зменшується.',
'За виконання нараховується XP: база 10 + бонус за пріоритет (до 15) + бонус за обсяг за оцінкою часу (до 15) + 10 за «ментально складне» — чесна нагорода за силу волі. Великі й термінові справи цінніші.',
'Накопичений XP підвищує рівень — від «Паростка» до «Легенди саду». Рівень не падає: XP не згорає і не віднімається, навіть якщо завдання видалити.',
'Іноді завдання приносить рідкісну рослину — шанс тим вищий, що «важче» завдання. Епічні рослини дістаються лише великим завершенням.',
'Досягнення відзначають віхи: виконані завдання, рівні, різні проєкти, години роботи, строгі дедлайни, «ментально складні» завдання. У кожного ступені I, II, III — прогрес видно завжди.',
'Завдання, виконане з режиму «3 варіанти», відзначається меткою «обрав і зробив». Закриття «не хочеться робити» завжди святкується золотом — сила волі того варта. Нічого не згорає, серій і покарань немає — лише приємні нагороди.',
],
lastPlant: 'Останній паросток: {title} — {date}',
history: 'Історія: виконаних завдань за місяцями',
emptyTitle: 'Сад поки порожній',
emptyText: 'Закрийте перше завдання — на грядці зросте рослина.',
levels: [
'Паросток',
'Сіянець',
'Садівник',
'Городник',
'Дендролог',
'Лісничий',
'Садовий майстер',
'Хранитель саду',
'Королівський садівник',
'Легенда саду',
],
achievements: 'Досягнення',
ach: {
firstDone: 'Перший паросток',
done10: 'Десятка',
level5: 'Висоти',
sprinter: 'Спринтер',
explorer: 'Різнобічний',
marathon: 'Марафонець',
deadlineBoss: 'Дедлайн-бос',
chooser: 'Обрав і зробив',
willpower: 'Подолання',
recurring: 'Ритм життя',
projectDone: 'Проєкт під ключ',
},
},
gamify: {
praise: [
'Чудово зроблено!',
'Готово — півсправи!',
'Ще один крок уперед.',
'Красота!',
'Так тримати!',
'Мінус одне завдання, плюс настрій.',
],
rarePlant: 'На грядці зросла рідкісна рослина!',
epicPlant: 'Легендарна рослина в саду!',
chosen: 'обрав і зробив',
willpower: 'сила волі',
willpowerText: 'Сила волі! Того варто було.',
},
stats: {
title: 'Статистика',
modeDay: 'День',
modeWeek: 'Тиждень',
modeMonth: 'Місяць',
today: 'Сьогодні, {date}',
prevPeriod: 'Попередній період',
nextPeriod: 'Наступний період',
ofDays: 'з {n} дн.',
totalVs: 'За період виконано: {n} · минулого разу: {m}',
chartTitle: 'Виконані завдання',
legendNow: 'Зараз',
legendPrev: 'Попередній період',
heatmapHalf: 'Активність за півроку',
heatmapYear: 'Активність за рік',
heatTasks: 'Завдання',
heatXp: 'XP',
heatLess: 'менше',
heatMore: 'більше',
heatHalf: 'Півроку',
heatYear: 'Рік',
emptyTitle: 'Поки немає даних',
emptyText: 'Закрийте пару завдань — і тут з’явиться динаміка з порівнянням.',
metric: {
closed: 'Виконано завдань',
xp: 'XP отримано',
created: 'Створено завдань',
hours: 'Години роботи',
activeDays: 'Дні з результатом',
},
},
home: {
title: 'Головне',
stackCount: 'у стеці: {n}',
activeCount: 'активних: {n}',
inProgress: 'У роботі',
overdue: 'Прострочено',
deadlines: 'Дедлайни на тиждень',
next: 'Наступні',
overview: 'Огляд',
projects: 'Активні проєкти',
totalTasks: 'Усього завдань',
doneMonth: 'Виконано за місяць',
doneAll: 'Виконано загалом',
clearTitle: 'Усе спокійно',
clearText: 'Немає активних завдань — гарний момент розібрати стек.',
},
stack: {
title: 'Вхідний стек',
count: 'Завдань у стеці: {n}',
quickPlaceholder: 'Кинути задачу — лише текст, решта потім…',
quickAdd: 'Кинути',
newTask: 'Нове завдання',
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: 'Проєкт',
tagsPlaceholder: 'Додати теґ…',
tags: 'Теґи',
priority: 'Пріоритет',
estimate: 'Оцінка часу, хвилин',
budget: 'Бюджет (у валюті налаштувань)',
cost: 'Оцінка витрат (у валюті налаштувань)',
estimateLegend: 'Оцінка',
},
deadline: {
legend: 'Дедлайн',
date: 'Строгий — дата',
period: 'Нестрогий — період',
},
recur: {
legend: 'Тип задачі',
oneTime: 'Одноразова',
recurring: 'Регулярна (повторюється)',
kind: 'Правило повторення',
interval: 'Інтервал, днів',
weekdays: 'Дні тижня',
monthlyDay: 'День місяця (1–31, без дня — останній)',
},
},
tree: {
addSubtask: 'Додати підзадачу',
promptSubtask: 'Підзадача:',
},
task: {
notFoundTitle: 'Задачу не знайдено',
notFoundText: 'Можливо, задачу видалено або посилання застаріло.',
proposalTitle: 'Пропозиція ШІ',
proposalHint: 'Перевірте деталі та затвердіть — задача потрапить до списку.',
description: 'Опис',
descriptionEmpty: 'Опис порожній — деталізуйте задачу.',
attachments: 'Вкладення',
fields: 'Параметри',
dates: 'Дати',
field: {
project: 'Проєкт',
taskType: 'Тип задачі',
priority: 'Пріоритет',
estimate: 'Оцінка часу',
actual: 'Фактично',
money: 'Гроші',
deadline: 'Дедлайн',
recurrence: 'Повторення',
created: 'Створено',
approved: 'Затверджено',
done: 'Завершено',
},
subtasks: 'Підзадачі',
noSubtasks: 'Підзадач немає',
statusTitle: 'Статус',
changeStatus: 'Змінити статус',
mentallyHard: {
set: 'Не хочеться робити',
unset: 'Зняти «ментально складне»',
badge: 'ментально складне',
},
subtaskCreated: 'Підзадачу створено — потрапила у стек на деталізацію',
createdRaw: 'Завдання потрапило у стек — деталізуйте його там',
actions: 'Дії',
addTag: 'Додати теґ…',
},
projectPage: {
notFoundTitle: 'Проєкт не знайдено',
notFoundText: 'Можливо, проєкт видалено або посилання застаріло.',
note: 'Нотатка',
noteEmpty: 'Нотатки ще немає — додайте її через «Редагувати».',
progress: 'Задачі проєкту: {done}/{total}',
newTask: 'Нова задача',
taskCreated: 'Задачу створено — потрапила у стек на деталізацію',
promptTask: 'Нова задача проєкту:',
emptyTitle: 'Задач немає',
emptyText: 'Створіть першу задачу проєкту або послабте фільтри.',
tree: 'Дерево проєкту',
stats: 'Статистика',
total: 'Всього задач',
doneN: 'Завершено',
inProgress: 'У роботі',
toDo: 'До виконання',
overdue: 'Прострочено',
taskCount: '{n} задач',
},
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: 'Пріоритет',
note: 'Нотатка (Markdown: посилання, контекст)',
preview: 'Попередній перегляд',
},
},
settings: {
title: 'Налаштування',
currencyTitle: 'Валюта бюджетів',
currencyHint:
'Одиниця обирається один раз і застосовується в усіх сумах: бюджет задачі, оцінка витрат.',
currencyUnit: 'Одиниця вимірювання',
saved: 'Збережено — застосовується в усіх видах.',
languageTitle: 'Мова інтерфейсу',
languageHint:
'Обрана мова застосовується одразу. «Як в акаунті» — мова береться з gnexus auth.',
languageUnit: 'Мова',
languageAuto: 'Як в акаунті (SSO)',
langRu: 'Русский',
langEn: 'English',
langUk: 'Українська',
},
md: {
bold: 'Жирний',
boldText: 'жирний текст',
italic: 'Курсив',
italicText: 'курсивний текст',
heading: 'Заголовок',
list: 'Список',
checklist: 'Чек-ліст',
link: 'Посилання',
linkText: 'текст посилання',
code: 'Код',
},
taskui: {
priority: {
very_low: 'Дуже низький',
low: 'Низький',
medium: 'Середній',
high: 'Високий',
urgent: 'Терміново',
},
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: 'регулярна',
},
},
} satisfies typeof ru