Feature batch: Projects, Recurrence, Group settings, Bug fixes

- Projects CRUD API + invite members
- Task recurrence (daily/weekly/monthly) with auto-creation
- Group time zones + GPS locations settings
- i18n fallback fix (no more undefined labels)
- UX: action buttons in one row
- Chat/Calendar: relative API URLs
- DB: task_assignments, projects tables, recurrence column

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 13:49:25 +00:00
parent fc39029ce3
commit b4b8439f80
14 changed files with 1173 additions and 136 deletions

View File

@@ -1,10 +1,133 @@
{
"nav": { "tasks": "Завдання", "calendar": "Календар", "chat": "Чат", "settings": "Налаштування", "goals": "Цілі" },
"auth": { "login": "Вхід", "register": "Реєстрація", "email": "Email", "name": "Ім'я", "phone": "Телефон", "submit": "Увійти", "registerBtn": "Зареєструватися", "noAccount": "Немає акаунту?", "hasAccount": "Є акаунт?", "logout": "Вийти" },
"tasks": { "title": "Завдання", "add": "Нове завдання", "edit": "Редагувати", "delete": "Видалити", "noTasks": "Немає завдань", "all": "Усі", "status": { "pending": "Очікує", "in_progress": "В роботі", "done": "Готово", "completed": "Готово", "cancelled": "Скасовано" }, "priority": { "urgent": "Терміново", "high": "Високий", "medium": "Середній", "low": "Низький" }, "form": { "title": "Назва", "description": "Опис", "group": "Група", "priority": "Пріоритет", "status": "Статус", "dueDate": "Термін", "save": "Зберегти", "cancel": "Скасувати", "titleRequired": "Назва обов'язкова", "saveError": "Помилка при збереженні", "saving": "Зберігаю...", "noGroup": "-- Без групи --", "placeholder": "Що треба зробити...", "descPlaceholder": "Подробиці..." }, "noDue": "Без терміну", "createFirst": "Створіть перше завдання кнопкою +", "newTask": "Нове завдання", "close": "Закрити", "markDone": "Позначити готовим", "start": "Розпочати", "reopen": "Відкрити знову", "confirmDelete": "Видалити це завдання?", "editTask": "Редагувати завдання", "saveChanges": "Зберегти зміни", "deleting": "Видаляю...", "created": "Створено", "completed": "Завершено", "loadError": "Помилка при завантаженні завдання", "notFound": "Завдання не знайдено", "backToTasks": "Назад до завдань" },
"chat": { "title": "AI Асистент", "placeholder": "Напишіть повідомлення...", "send": "Надіслати", "empty": "Запитайте будь-що...", "subtitle": "Задайте будь-яке питання щодо ваших завдань", "startConversation": "Почніть розмову", "helpText": "Напишіть повідомлення, і AI асистент допоможе вам із завданнями", "unavailable": "Чат асистент зараз недоступний. Спробуйте пізніше.", "processError": "Вибачте, не вдалося обробити ваше повідомлення." },
"settings": { "title": "Налаштування", "language": "Мова", "theme": "Тема", "dark": "Темний режим", "light": "Світлий режим", "notifications": "Сповіщення", "push": "Push сповіщення", "email": "E-mail сповіщення", "taskReminders": "Нагадування про завдання", "dailySummary": "Щоденний підсумок", "save": "Зберегти налаштування", "saved": "Збережено!", "profile": "Профіль", "appearance": "Зовнішній вигляд", "user": "Користувач" },
"goals": { "title": "Цілі", "add": "Нова ціль", "progress": "Прогрес", "plan": "Створити план", "report": "AI Звіт" },
"common": { "back": "Назад", "loading": "Завантаження...", "error": "Помилка", "confirm": "Підтвердити", "menu": "Меню", "closeMenu": "Закрити меню", "toggleTheme": "Перемкнути тему" },
"calendar": { "title": "Календар" }
}
"nav": {
"tasks": "Завдання",
"calendar": "Календар",
"chat": "Чат",
"settings": "Налаштування",
"goals": "Цілі",
"projects": "Проекти"
},
"auth": {
"login": "Вхід",
"register": "Реєстрація",
"email": "Email",
"name": "Ім'я",
"phone": "Телефон",
"submit": "Увійти",
"registerBtn": "Зареєструватися",
"noAccount": "Немає акаунту?",
"hasAccount": "Є акаунт?",
"logout": "Вийти"
},
"tasks": {
"title": "Завдання",
"add": "Нове завдання",
"edit": "Редагувати",
"delete": "Видалити",
"noTasks": "Немає завдань",
"all": "Усі",
"status": {
"pending": "Очікує",
"in_progress": "В роботі",
"done": "Готово",
"completed": "Готово",
"cancelled": "Скасовано"
},
"priority": {
"urgent": "Терміново",
"high": "Високий",
"medium": "Середній",
"low": "Низький"
},
"form": {
"title": "Назва",
"description": "Опис",
"group": "Група",
"priority": "Пріоритет",
"status": "Статус",
"dueDate": "Термін",
"save": "Зберегти",
"cancel": "Скасувати",
"titleRequired": "Назва обов'язкова",
"saveError": "Помилка при збереженні",
"saving": "Зберігаю...",
"noGroup": "-- Без групи --",
"placeholder": "Що треба зробити...",
"descPlaceholder": "Подробиці..."
},
"noDue": "Без терміну",
"createFirst": "Створіть перше завдання кнопкою +",
"newTask": "Нове завдання",
"close": "Закрити",
"markDone": "Позначити готовим",
"start": "Розпочати",
"reopen": "Відкрити знову",
"confirmDelete": "Видалити це завдання?",
"editTask": "Редагувати завдання",
"saveChanges": "Зберегти зміни",
"deleting": "Видаляю...",
"created": "Створено",
"completed": "Завершено",
"loadError": "Помилка при завантаженні завдання",
"notFound": "Завдання не знайдено",
"backToTasks": "Назад до завдань"
},
"chat": {
"title": "AI Асистент",
"placeholder": "Напишіть повідомлення...",
"send": "Надіслати",
"empty": "Запитайте будь-що...",
"subtitle": "Задайте будь-яке питання щодо ваших завдань",
"startConversation": "Почніть розмову",
"helpText": "Напишіть повідомлення, і AI асистент допоможе вам із завданнями",
"unavailable": "Чат асистент зараз недоступний. Спробуйте пізніше.",
"processError": "Вибачте, не вдалося обробити ваше повідомлення."
},
"settings": {
"title": "Налаштування",
"language": "Мова",
"theme": "Тема",
"dark": "Темний режим",
"light": "Світлий режим",
"notifications": "Сповіщення",
"push": "Push сповіщення",
"email": "E-mail сповіщення",
"taskReminders": "Нагадування про завдання",
"dailySummary": "Щоденний підсумок",
"save": "Зберегти налаштування",
"saved": "Збережено!",
"profile": "Профіль",
"appearance": "Зовнішній вигляд",
"user": "Користувач"
},
"goals": {
"title": "Цілі",
"add": "Нова ціль",
"progress": "Прогрес",
"plan": "Створити план",
"report": "AI Звіт"
},
"common": {
"back": "Назад",
"loading": "Завантаження...",
"error": "Помилка",
"confirm": "Підтвердити",
"menu": "Меню",
"closeMenu": "Закрити меню",
"toggleTheme": "Перемкнути тему"
},
"calendar": {
"title": "Календар"
},
"projects": {
"add": "Новий проект",
"empty": "Немає проектів",
"createFirst": "Створіть перший проект кнопкою +",
"namePlaceholder": "Назва проекту...",
"descPlaceholder": "Опис проекту...",
"color": "Колір",
"icon": "Іконка",
"tasks": "Завдання",
"members": "Учасники"
}
}