diff --git a/frontend/components/Task/NextTaskSuggestion.tsx b/frontend/components/Task/NextTaskSuggestion.tsx
index d7f8c3e..33bbebe 100644
--- a/frontend/components/Task/NextTaskSuggestion.tsx
+++ b/frontend/components/Task/NextTaskSuggestion.tsx
@@ -160,11 +160,11 @@ const NextTaskSuggestion: React.FC = ({
)}
-
diff --git a/frontend/components/Task/TaskHeader.tsx b/frontend/components/Task/TaskHeader.tsx
index 31ecc13..5e86e30 100644
--- a/frontend/components/Task/TaskHeader.tsx
+++ b/frontend/components/Task/TaskHeader.tsx
@@ -1,14 +1,15 @@
-import React, { useState, useEffect } from 'react';
+import React, { useState, useEffect, useRef } from 'react';
+import { createPortal } from 'react-dom';
import { Link } from 'react-router-dom';
import {
CalendarDaysIcon,
CalendarIcon,
PlayIcon,
ArrowPathIcon,
- ArrowRightIcon,
ListBulletIcon,
PencilIcon,
TrashIcon,
+ EllipsisVerticalIcon,
} from '@heroicons/react/24/outline';
import { TagIcon, FolderIcon } from '@heroicons/react/24/solid';
import { useTranslation } from 'react-i18next';
@@ -43,7 +44,6 @@ const TaskHeader: React.FC
= ({
hideProjectName = false,
onToggleToday,
onTaskUpdate,
- isOverdue = false,
// Props for subtasks functionality
showSubtasks,
hasSubtasks,
@@ -53,6 +53,92 @@ const TaskHeader: React.FC = ({
onDelete,
}) => {
const { t } = useTranslation();
+ const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+ const [dropdownPosition, setDropdownPosition] = useState({
+ top: 0,
+ left: 0,
+ });
+ const buttonRef = useRef(null);
+ const dropdownId = useRef(
+ `dropdown-${Math.random().toString(36).substr(2, 9)}`
+ ).current;
+
+ // Calculate dropdown position
+ const calculateDropdownPosition = () => {
+ if (buttonRef.current) {
+ const rect = buttonRef.current.getBoundingClientRect();
+ const dropdownHeight = 300; // Approximate dropdown height
+ const dropdownWidth = 192; // w-48 = 192px
+ const padding = 8; // Padding from screen edges
+
+ // Default position: below and to the left of the button
+ let top = rect.bottom + window.scrollY + 4;
+ let left = rect.right - dropdownWidth;
+
+ // Ensure dropdown doesn't go off the left edge
+ if (left < padding) {
+ left = padding;
+ }
+
+ // Ensure dropdown doesn't go off the right edge
+ if (left + dropdownWidth > window.innerWidth - padding) {
+ left = window.innerWidth - dropdownWidth - padding;
+ }
+
+ // If dropdown would go below viewport, position it above the button
+ if (rect.bottom + dropdownHeight > window.innerHeight - padding) {
+ top = rect.top + window.scrollY - dropdownHeight - 4;
+ // Ensure it doesn't go above the top of the viewport
+ if (top < window.scrollY + padding) {
+ top = window.scrollY + padding;
+ }
+ }
+
+ const position = { top, left };
+ setDropdownPosition(position);
+ }
+ };
+
+ // Close dropdown when clicking outside
+ useEffect(() => {
+ const handleClickOutside = (event: MouseEvent) => {
+ if (isDropdownOpen && buttonRef.current) {
+ const target = event.target as Node;
+ const isOutsideButton = !buttonRef.current.contains(target);
+ const currentDropdown = document.querySelector(
+ `[data-dropdown-id="${dropdownId}"]`
+ );
+ const isOutsideDropdown = !currentDropdown?.contains(target);
+
+ if (isOutsideButton && isOutsideDropdown) {
+ setIsDropdownOpen(false);
+ }
+ }
+ };
+
+ // Listen for custom event to close this dropdown when another opens
+ const handleCloseOtherDropdowns = (event: CustomEvent) => {
+ if (event.detail.dropdownId !== dropdownId && isDropdownOpen) {
+ setIsDropdownOpen(false);
+ }
+ };
+
+ if (isDropdownOpen) {
+ document.addEventListener('click', handleClickOutside);
+ document.addEventListener(
+ 'closeOtherDropdowns',
+ handleCloseOtherDropdowns as EventListener
+ );
+ }
+
+ return () => {
+ document.removeEventListener('click', handleClickOutside);
+ document.removeEventListener(
+ 'closeOtherDropdowns',
+ handleCloseOtherDropdowns as EventListener
+ );
+ };
+ }, [isDropdownOpen, dropdownId]);
const formatDueDate = (dueDate: string) => {
const today = new Date().toISOString().split('T')[0];
@@ -170,12 +256,6 @@ const TaskHeader: React.FC = ({
{task.name}
- {isOverdue && (
-
- )}
{/* Project, tags, due date, and recurrence in same row, with spacing when they exist */}
@@ -406,17 +486,11 @@ const TaskHeader: React.FC = ({
/>
- {/* Task content - 65% width */}
-
+ {/* Task content - full width */}
+
{/* Task Title */}
{task.name}
- {isOverdue && (
-
- )}
{/* Project, tags, due date, and recurrence */}
@@ -485,135 +559,170 @@ const TaskHeader: React.FC
= ({
- {/* Mobile buttons on the right */}
+ {/* Mobile 3-dot dropdown menu */}
- {/* Button Group - All buttons together - Mobile */}
-
- {/* Today Plan Controls - Mobile */}
- {onToggleToday && (
-
- )}
+
+
+ {/* Dropdown Menu - Rendered via Portal */}
+ {isDropdownOpen &&
+ createPortal(
+
e.stopPropagation()}
+ >
+
+ {/* Today Plan Controls */}
+ {onToggleToday && (
+
{
+ e.stopPropagation();
+ handleTodayToggle(e);
+ setIsDropdownOpen(false);
+ }}
+ className="w-full px-4 py-2 text-sm text-left text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 flex justify-between items-center"
+ >
+
+ {task.today
+ ? t(
+ 'tasks.removeFromToday',
+ 'Remove from today plan'
+ )
+ : t(
+ 'tasks.addToToday',
+ 'Add to today plan'
+ )}
+
+ {Number(task.today_move_count) >
+ 1 && (
+
+ {Number(
+ task.today_move_count
+ )}
+
+ )}
+
+ )}
+
+ {/* Play/In Progress Controls */}
+ {(task.status === 'not_started' ||
+ task.status === 'in_progress' ||
+ task.status === 0 ||
+ task.status === 1) && (
+
{
+ e.stopPropagation();
+ handlePlayToggle(e);
+ setIsDropdownOpen(false);
+ }}
+ className="w-full px-4 py-2 text-sm text-left text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"
+ >
+ {task.status === 'in_progress' ||
+ task.status === 1
? t(
- 'tasks.hideSubtasks',
- 'Hide subtasks'
+ 'tasks.setNotStarted',
+ 'Set to not started'
)
: t(
- 'tasks.showSubtasks',
- 'Show subtasks'
- )
- }
- >
-
-
- )}
+ 'tasks.setInProgress',
+ 'Set in progress'
+ )}
+
+ )}
- {/* Edit Button - Mobile */}
- {onEdit && (
-
-
-
- )}
+ {/* Show Subtasks Controls */}
+ {hasSubtasks &&
+ !(
+ task.status === 'archived' ||
+ task.status === 3
+ ) && (
+
{
+ e.stopPropagation();
+ if (onSubtasksToggle) {
+ onSubtasksToggle(e);
+ }
+ setIsDropdownOpen(false);
+ }}
+ className="w-full px-4 py-2 text-sm text-left text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"
+ >
+ {showSubtasks
+ ? t(
+ 'tasks.hideSubtasks',
+ 'Hide subtasks'
+ )
+ : t(
+ 'tasks.showSubtasks',
+ 'Show subtasks'
+ )}
+
+ )}
- {/* Delete Button - Mobile */}
- {onDelete && (
-
-
-
- )}
-
-
+ {/* Edit Button */}
+ {onEdit && (
+
{
+ e.stopPropagation();
+ onEdit(e);
+ setIsDropdownOpen(false);
+ }}
+ className="w-full px-4 py-2 text-sm text-left text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"
+ >
+ {t('tasks.edit', 'Edit task')}
+
+ )}
+
+ {/* Delete Button */}
+ {onDelete && (
+
{
+ e.stopPropagation();
+ onDelete(e);
+ setIsDropdownOpen(false);
+ }}
+ className="w-full px-4 py-2 text-sm text-left text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20"
+ >
+ {t('tasks.delete', 'Delete task')}
+
+ )}
+
+
,
+ document.body
+ )}
diff --git a/public/locales/ar/translation.json b/public/locales/ar/translation.json
index d582eed..da91045 100644
--- a/public/locales/ar/translation.json
+++ b/public/locales/ar/translation.json
@@ -111,7 +111,11 @@
"addToToday": "إضافة إلى خطة اليوم",
"removeFromToday": "إزالة من خطة اليوم",
"setInProgress": "تعيين قيد التنفيذ",
- "setNotStarted": "تعيين لم يبدأ بعد"
+ "setNotStarted": "تعيين لم يبدأ بعد",
+ "showSubtasks": "عرض المهام الفرعية",
+ "hideSubtasks": "إخفاء المهام الفرعية",
+ "edit": "تعديل المهمة",
+ "delete": "حذف المهمة"
},
"timeline": {
"activityTimeline": "جدول الأنشطة",
@@ -134,7 +138,9 @@
"status": "الحالة",
"priority": "الأولوية",
"dueDate": "تاريخ الاستحقاق",
- "none": "لا شيء"
+ "none": "لا شيء",
+ "recurrenceEndDateChanged": "تاريخ انتهاء التكرار تم تغييره",
+ "recurrenceEndDate": "تاريخ انتهاء التكرار"
},
"justNow": "الآن",
"minutesAgo": "{{minutes}} دقيقة مضت",
@@ -464,7 +470,9 @@
"archived": "مؤرشف",
"unknown": "غير معروف",
"telegramConnected": "تم الاتصال بتليجرام وجاري الاستطلاع",
- "telegramConnectionProblem": "مشكلة في اتصال تليجرام"
+ "telegramConnectionProblem": "مشكلة في اتصال تليجرام",
+ "completed": "مكتمل",
+ "waiting": "في الانتظار"
},
"project": {
"name": "اسم المشروع",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "اجعلها أكثر وصفًا!",
"suggestion": "حاول إضافة المزيد من التفاصيل مثل \"اتصل بطبيب الأسنان لتحديد موعد التنظيف\" بدلاً من \"اتصل بطبيب الأسنان\""
- }
+ },
+ "overdueAlert": "كانت هذه المهمة في خطتك بالأمس ولم تكتمل.",
+ "overdueYesterday": "فكر في إعطاء أولوية لهذه المهمة أو تقسيمها إلى خطوات أصغر.",
+ "overdueMultipleDays": "تم تأجيل هذه المهمة {{count}} مرات.",
+ "content": "المحتوى",
+ "noNotes": "لم يتم إضافة محتوى بعد",
+ "subtasks": "المهام الفرعية",
+ "noSubtasks": "لا توجد مهام فرعية بعد",
+ "recentActivity": "النشاط الأخير"
},
"projects": {
"loading": "جارٍ تحميل المشاريع...",
diff --git a/public/locales/bg/translation.json b/public/locales/bg/translation.json
index 58e5c00..5fddbf3 100644
--- a/public/locales/bg/translation.json
+++ b/public/locales/bg/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Добави към плана за днес",
"removeFromToday": "Премахни от плана за днес",
"setInProgress": "Задай в процес",
- "setNotStarted": "Задай като не започната"
+ "setNotStarted": "Задай като не започната",
+ "showSubtasks": "Покажи подзадачи",
+ "hideSubtasks": "Скрий подзадачи",
+ "edit": "Редактиране на задача",
+ "delete": "Изтриване на задача"
},
"timeline": {
"activityTimeline": "Хронология на активността",
@@ -134,7 +138,9 @@
"status": "Статус",
"priority": "Приоритет",
"dueDate": "Срок",
- "none": "Няма"
+ "none": "Няма",
+ "recurrenceEndDateChanged": "Дата на края на повторението е променена",
+ "recurrenceEndDate": "Дата на края на повторението"
},
"justNow": "Току-що",
"minutesAgo": "{{minutes}}м. назад",
@@ -464,7 +470,9 @@
"archived": "Архивирано",
"unknown": "Неизвестно",
"telegramConnected": "Telegram свързан и проверява",
- "telegramConnectionProblem": "Проблем с връзката на Telegram"
+ "telegramConnectionProblem": "Проблем с връзката на Telegram",
+ "completed": "Завършено",
+ "waiting": "В очакване"
},
"project": {
"name": "Име на проекта",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Направете го по-описателно!",
"suggestion": "Опитайте да добавите повече детайли като \"Обадете се на зъболекаря, за да насрочите час за почистване\" вместо просто \"Обадете се на зъболекаря\""
- }
+ },
+ "overdueAlert": "Тази задача беше в плана ви вчера и не беше завършена.",
+ "overdueYesterday": "Помислете за приоритизиране на тази задача или разделянето ѝ на по-малки стъпки.",
+ "overdueMultipleDays": "Тази задача е отложена {{count}} пъти.",
+ "content": "Съдържание",
+ "noNotes": "Все още не е добавено съдържание",
+ "subtasks": "Подзадачи",
+ "noSubtasks": "Все още няма подзадачи",
+ "recentActivity": "Наскоро извършена дейност"
},
"projects": {
"loading": "Зареждане на проекти...",
diff --git a/public/locales/da/translation.json b/public/locales/da/translation.json
index 09011d9..938c17f 100644
--- a/public/locales/da/translation.json
+++ b/public/locales/da/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Tilføj til dagens plan",
"removeFromToday": "Fjern fra dagens plan",
"setInProgress": "Sæt i gang",
- "setNotStarted": "Sæt til ikke startet"
+ "setNotStarted": "Sæt til ikke startet",
+ "showSubtasks": "Vis underopgaver",
+ "hideSubtasks": "Skjul underopgaver",
+ "edit": "Rediger opgave",
+ "delete": "Slet opgave"
},
"timeline": {
"activityTimeline": "Aktivitets Tidslinje",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Prioritet",
"dueDate": "Forfaldsdato",
- "none": "Ingen"
+ "none": "Ingen",
+ "recurrenceEndDateChanged": "Ændret slutdato for gentagelse",
+ "recurrenceEndDate": "Slutdato for gentagelse"
},
"justNow": "Lige nu",
"minutesAgo": "{{minutes}}m siden",
@@ -464,7 +470,9 @@
"archived": "Arkiveret",
"unknown": "Ukendt",
"telegramConnected": "Telegram tilsluttet og polling",
- "telegramConnectionProblem": "Telegram forbindelsesproblem"
+ "telegramConnectionProblem": "Telegram forbindelsesproblem",
+ "completed": "Fuldført",
+ "waiting": "Venter"
},
"project": {
"name": "Projekt Navn",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Gør det mere beskrivende!",
"suggestion": "Prøv at tilføje flere detaljer som \"Ring til tandlægen for at planlægge rengøringsaftale\" i stedet for bare \"Ring til tandlægen\""
- }
+ },
+ "overdueAlert": "Denne opgave var i din plan i går og blev ikke fuldført.",
+ "overdueYesterday": "Overvej at prioritere denne opgave eller opdele den i mindre trin.",
+ "overdueMultipleDays": "Denne opgave er blevet udsat {{count}} gange.",
+ "content": "Indhold",
+ "noNotes": "Ingen indhold tilføjet endnu",
+ "subtasks": "Underopgaver",
+ "noSubtasks": "Ingen underopgaver endnu",
+ "recentActivity": "Seneste aktivitet"
},
"projects": {
"loading": "Indlæser projekter...",
diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json
index befaf9a..b2d657e 100644
--- a/public/locales/de/translation.json
+++ b/public/locales/de/translation.json
@@ -111,7 +111,11 @@
"addNewTask": "Neue Aufgabe hinzufügen",
"metrics": "Metriken",
"setInProgress": "In Bearbeitung setzen",
- "setNotStarted": "Auf nicht begonnen setzen"
+ "setNotStarted": "Auf nicht begonnen setzen",
+ "showSubtasks": "Unteraufgaben anzeigen",
+ "hideSubtasks": "Unteraufgaben ausblenden",
+ "edit": "Aufgabe bearbeiten",
+ "delete": "Aufgabe löschen"
},
"timeline": {
"activityTimeline": "Aktivitätsverlauf",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Priorität",
"dueDate": "Fälligkeitsdatum",
- "none": "Keine"
+ "none": "Keine",
+ "recurrenceEndDateChanged": "Das Enddatum der Wiederholung wurde geändert",
+ "recurrenceEndDate": "Enddatum der Wiederholung"
},
"justNow": "Gerade eben",
"minutesAgo": "{{minutes}}m her",
@@ -550,7 +556,15 @@
"updated": "Aufgabe",
"updatedSuccessfully": "erfolgreich aktualisiert!",
"deleted": "Aufgabe",
- "deletedSuccessfully": "erfolgreich gelöscht!"
+ "deletedSuccessfully": "erfolgreich gelöscht!",
+ "overdueAlert": "Diese Aufgabe war gestern in Ihrem Plan und wurde nicht abgeschlossen.",
+ "overdueYesterday": "Erwägen Sie, diese Aufgabe zu priorisieren oder in kleinere Schritte zu unterteilen.",
+ "overdueMultipleDays": "Diese Aufgabe wurde {{count}} Mal verschoben.",
+ "content": "Inhalt",
+ "noNotes": "Noch kein Inhalt hinzugefügt",
+ "subtasks": "Unteraufgaben",
+ "noSubtasks": "Noch keine Unteraufgaben",
+ "recentActivity": "Aktuelle Aktivitäten"
},
"calendar": {
"month": "Monat",
@@ -674,7 +688,9 @@
"archived": "Archiviert",
"unknown": "Unbekannt",
"telegramConnected": "Telegram verbunden und abfragt",
- "telegramConnectionProblem": "Telegram-Verbindungsproblem"
+ "telegramConnectionProblem": "Telegram-Verbindungsproblem",
+ "completed": "Abgeschlossen",
+ "waiting": "Warten"
},
"dateIndicators": {
"today": "HEUTE",
diff --git a/public/locales/el/translation.json b/public/locales/el/translation.json
index e3a386b..a47db4a 100644
--- a/public/locales/el/translation.json
+++ b/public/locales/el/translation.json
@@ -306,7 +306,11 @@
"addToToday": "Προσθήκη στο σημερινό σχέδιο",
"removeFromToday": "Αφαίρεση από το σημερινό σχέδιο",
"setInProgress": "Ορισμός ως 'Σε Εξέλιξη'",
- "setNotStarted": "Ορισμός ως 'Δεν Έχει Ξεκινήσει'"
+ "setNotStarted": "Ορισμός ως 'Δεν Έχει Ξεκινήσει'",
+ "showSubtasks": "Εμφάνιση υποκαθηκόντων",
+ "hideSubtasks": "Απόκρυψη υποκαθηκόντων",
+ "edit": "Επεξεργασία καθήκοντος",
+ "delete": "Διαγραφή καθήκοντος"
},
"timeline": {
"activityTimeline": "Χρονοδιάγραμμα Δραστηριότητας",
@@ -329,7 +333,9 @@
"status": "Κατάσταση",
"priority": "Προτεραιότητα",
"dueDate": "Ημερομηνία λήξης",
- "none": "Καμία"
+ "none": "Καμία",
+ "recurrenceEndDateChanged": "Η ημερομηνία λήξης επανάληψης άλλαξε",
+ "recurrenceEndDate": "Η ημερομηνία λήξης επανάληψης"
},
"justNow": "Μόλις τώρα",
"minutesAgo": "{{minutes}} λεπτά πριν",
@@ -526,7 +532,9 @@
"archived": "Αρχειοθετημένο",
"unknown": "Άγνωστο",
"telegramConnected": "Το Telegram είναι συνδεδεμένο και αναζητά",
- "telegramConnectionProblem": "Πρόβλημα σύνδεσης με το Telegram"
+ "telegramConnectionProblem": "Πρόβλημα σύνδεσης με το Telegram",
+ "completed": "Ολοκληρώθηκε",
+ "waiting": "Σε αναμονή"
},
"task": {
"labels": {
@@ -564,7 +572,15 @@
"updated": "Εργασία",
"updatedSuccessfully": "ενημερώθηκε επιτυχώς!",
"deleted": "Εργασία",
- "deletedSuccessfully": "διαγράφηκε επιτυχώς!"
+ "deletedSuccessfully": "διαγράφηκε επιτυχώς!",
+ "overdueAlert": "Αυτή η εργασία ήταν στο σχέδιο σας χθες και δεν ολοκληρώθηκε.",
+ "overdueYesterday": "Σκεφτείτε να δώσετε προτεραιότητα σε αυτή την εργασία ή να την χωρίσετε σε μικρότερα βήματα.",
+ "overdueMultipleDays": "Αυτή η εργασία έχει αναβληθεί {{count}} φορές.",
+ "content": "Περιεχόμενο",
+ "noNotes": "Δεν έχει προστεθεί περιεχόμενο ακόμα",
+ "subtasks": "Υποεργασίες",
+ "noSubtasks": "Δεν υπάρχουν υποεργασίες ακόμα",
+ "recentActivity": "Πρόσφατη Δραστηριότητα"
},
"dateFormats": {
"long": "EEEE, d MMMM yyyy",
diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index df76f87..43bab78 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Add to today plan",
"removeFromToday": "Remove from today plan",
"setInProgress": "Set in progress",
- "setNotStarted": "Set to not started"
+ "setNotStarted": "Set to not started",
+ "showSubtasks": "Show subtasks",
+ "hideSubtasks": "Hide subtasks",
+ "edit": "Edit task",
+ "delete": "Delete task"
},
"timeline": {
"activityTimeline": "Activity Timeline",
@@ -621,7 +625,15 @@
"nameHelper": {
"title": "Make it more descriptive!",
"suggestion": "Try adding more details like \"Call dentist to schedule cleaning appointment\" instead of just \"Call dentist\""
- }
+ },
+ "overdueAlert": "This task was in your plan yesterday and wasn't completed.",
+ "overdueYesterday": "Consider prioritizing this task or breaking it into smaller steps.",
+ "overdueMultipleDays": "This task has been postponed {{count}} times.",
+ "content": "Content",
+ "noNotes": "No content added yet",
+ "subtasks": "Subtasks",
+ "noSubtasks": "No subtasks yet",
+ "recentActivity": "Recent Activity"
},
"projects": {
"loading": "Loading projects...",
diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json
index e50415e..5104064 100644
--- a/public/locales/es/translation.json
+++ b/public/locales/es/translation.json
@@ -306,7 +306,11 @@
"tasksCompleted": "tareas completadas",
"metrics": "Métricas",
"setInProgress": "Establecer en progreso",
- "setNotStarted": "Establecer como no iniciado"
+ "setNotStarted": "Establecer como no iniciado",
+ "showSubtasks": "Mostrar subtareas",
+ "hideSubtasks": "Ocultar subtareas",
+ "edit": "Editar tarea",
+ "delete": "Eliminar tarea"
},
"timeline": {
"activityTimeline": "Línea de Tiempo de Actividad",
@@ -329,7 +333,9 @@
"status": "Estado",
"priority": "Prioridad",
"dueDate": "Fecha de vencimiento",
- "none": "Ninguno"
+ "none": "Ninguno",
+ "recurrenceEndDateChanged": "Fecha de finalización de la recurrencia cambiada",
+ "recurrenceEndDate": "Fecha de finalización de la recurrencia"
},
"justNow": "Justo ahora",
"minutesAgo": "{{minutes}}m hace",
@@ -520,7 +526,9 @@
"archived": "Archivado",
"unknown": "Desconocido",
"telegramConnected": "Telegram conectado y sondeando",
- "telegramConnectionProblem": "Problema de conexión de Telegram"
+ "telegramConnectionProblem": "Problema de conexión de Telegram",
+ "completed": "Completado",
+ "waiting": "Esperando"
},
"project": {
"name": "Nombre del Proyecto",
@@ -564,7 +572,15 @@
"updated": "Tarea",
"updatedSuccessfully": "actualizada con éxito!",
"deleted": "Tarea",
- "deletedSuccessfully": "eliminada con éxito!"
+ "deletedSuccessfully": "eliminada con éxito!",
+ "overdueAlert": "Esta tarea estaba en tu plan ayer y no se completó.",
+ "overdueYesterday": "Considera priorizar esta tarea o dividirla en pasos más pequeños.",
+ "overdueMultipleDays": "Esta tarea ha sido pospuesta {{count}} veces.",
+ "content": "Contenido",
+ "noNotes": "No se ha añadido contenido aún",
+ "subtasks": "Subtareas",
+ "noSubtasks": "No hay subtareas aún",
+ "recentActivity": "Actividad Reciente"
},
"dateIndicators": {
"today": "HOY",
diff --git a/public/locales/fi/translation.json b/public/locales/fi/translation.json
index ba8eeda..e23a7db 100644
--- a/public/locales/fi/translation.json
+++ b/public/locales/fi/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Lisää tänään suunnitelmaan",
"removeFromToday": "Poista tänään suunnitelmasta",
"setInProgress": "Aseta käynnissä olevaksi",
- "setNotStarted": "Aseta aloittamatta"
+ "setNotStarted": "Aseta aloittamatta",
+ "showSubtasks": "Näytä alitehtävät",
+ "hideSubtasks": "Piilota alitehtävät",
+ "edit": "Muokkaa tehtävää",
+ "delete": "Poista tehtävä"
},
"timeline": {
"activityTimeline": "Toiminta-aikajana",
@@ -134,7 +138,9 @@
"status": "Tila",
"priority": "Prioriteetti",
"dueDate": "Eräpäivä",
- "none": "Ei mitään"
+ "none": "Ei mitään",
+ "recurrenceEndDateChanged": "Toistuvuuden päättymispäivämäärä on muuttunut",
+ "recurrenceEndDate": "Toistuvuuden päättymispäivämäärä"
},
"justNow": "Juuri nyt",
"minutesAgo": "{{minutes}}m sitten",
@@ -464,7 +470,9 @@
"archived": "Arkistoitu",
"unknown": "Tuntematon",
"telegramConnected": "Telegram yhdistetty ja kyselyssä",
- "telegramConnectionProblem": "Telegram-yhteysongelma"
+ "telegramConnectionProblem": "Telegram-yhteysongelma",
+ "completed": "Valmis",
+ "waiting": "Odottaa"
},
"project": {
"name": "Projektin nimi",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Tee siitä kuvaavampi!",
"suggestion": "Yritä lisätä enemmän yksityiskohtia, kuten \"Soita hammaslääkärille aikatauluttaaksesi puhdistusajan\" sen sijaan, että sanoisit vain \"Soita hammaslääkärille\""
- }
+ },
+ "overdueAlert": "Tämä tehtävä oli suunnitelmassasi eilen eikä sitä ole suoritettu.",
+ "overdueYesterday": "Harkitse tämän tehtävän priorisoimista tai jakamista pienempiin vaiheisiin.",
+ "overdueMultipleDays": "Tätä tehtävää on siirretty {{count}} kertaa.",
+ "content": "Sisältö",
+ "noNotes": "Ei vielä lisättyä sisältöä",
+ "subtasks": "Ala-tehtävät",
+ "noSubtasks": "Ei vielä ala-tehtäviä",
+ "recentActivity": "Viimeaikainen toiminta"
},
"projects": {
"loading": "Ladataan projekteja...",
diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json
index c1b4ff6..c715987 100644
--- a/public/locales/fr/translation.json
+++ b/public/locales/fr/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Ajouter au plan d'aujourd'hui",
"removeFromToday": "Retirer du plan d'aujourd'hui",
"setInProgress": "Définir en cours",
- "setNotStarted": "Définir comme non commencé"
+ "setNotStarted": "Définir comme non commencé",
+ "showSubtasks": "Afficher les sous-tâches",
+ "hideSubtasks": "Masquer les sous-tâches",
+ "edit": "Modifier la tâche",
+ "delete": "Supprimer la tâche"
},
"timeline": {
"activityTimeline": "Chronologie d'Activité",
@@ -134,7 +138,9 @@
"status": "Statut",
"priority": "Priorité",
"dueDate": "Date d'échéance",
- "none": "Aucun"
+ "none": "Aucun",
+ "recurrenceEndDateChanged": "Date de fin de récurrence modifiée",
+ "recurrenceEndDate": "Date de fin de récurrence"
},
"justNow": "À l'instant",
"minutesAgo": "{{minutes}}m auparavant",
@@ -464,7 +470,9 @@
"archived": "Archivé",
"unknown": "Inconnu",
"telegramConnected": "Telegram connecté et en cours de sondage",
- "telegramConnectionProblem": "Problème de connexion à Telegram"
+ "telegramConnectionProblem": "Problème de connexion à Telegram",
+ "completed": "Terminé",
+ "waiting": "En attente"
},
"project": {
"name": "Nom du projet",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Rendez-le plus descriptif !",
"suggestion": "Essayez d'ajouter plus de détails comme \"Appeler le dentiste pour prendre un rendez-vous de nettoyage\" au lieu de simplement \"Appeler le dentiste\""
- }
+ },
+ "overdueAlert": "Cette tâche était dans votre plan hier et n'a pas été complétée.",
+ "overdueYesterday": "Envisagez de prioriser cette tâche ou de la décomposer en étapes plus petites.",
+ "overdueMultipleDays": "Cette tâche a été reportée {{count}} fois.",
+ "content": "Contenu",
+ "noNotes": "Aucun contenu ajouté pour le moment",
+ "subtasks": "Sous-tâches",
+ "noSubtasks": "Aucune sous-tâche pour le moment",
+ "recentActivity": "Activité récente"
},
"projects": {
"loading": "Chargement des projets...",
diff --git a/public/locales/id/translation.json b/public/locales/id/translation.json
index 4db7a20..77ec782 100644
--- a/public/locales/id/translation.json
+++ b/public/locales/id/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Tambahkan ke rencana hari ini",
"removeFromToday": "Hapus dari rencana hari ini",
"setInProgress": "Tandai sebagai sedang berlangsung",
- "setNotStarted": "Tandai sebagai belum dimulai"
+ "setNotStarted": "Tandai sebagai belum dimulai",
+ "showSubtasks": "Tampilkan subtugas",
+ "hideSubtasks": "Sembunyikan subtugas",
+ "edit": "Edit tugas",
+ "delete": "Hapus tugas"
},
"timeline": {
"activityTimeline": "Garis Waktu Aktivitas",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Prioritas",
"dueDate": "Tanggal jatuh tempo",
- "none": "Tidak ada"
+ "none": "Tidak ada",
+ "recurrenceEndDateChanged": "Tanggal akhir pengulangan telah diubah",
+ "recurrenceEndDate": "Tanggal akhir pengulangan"
},
"justNow": "Baru saja",
"minutesAgo": "{{minutes}}m yang lalu",
@@ -464,7 +470,9 @@
"archived": "Arsip",
"unknown": "Tidak Diketahui",
"telegramConnected": "Telegram terhubung dan memeriksa",
- "telegramConnectionProblem": "Masalah koneksi Telegram"
+ "telegramConnectionProblem": "Masalah koneksi Telegram",
+ "completed": "Selesai",
+ "waiting": "Menunggu"
},
"project": {
"name": "Nama Proyek",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Buat lebih deskriptif!",
"suggestion": "Cobalah menambahkan lebih banyak detail seperti \"Hubungi dokter gigi untuk menjadwalkan janji pembersihan\" alih-alih hanya \"Hubungi dokter gigi\""
- }
+ },
+ "overdueAlert": "Tugas ini ada dalam rencana Anda kemarin dan belum diselesaikan.",
+ "overdueYesterday": "Pertimbangkan untuk memprioritaskan tugas ini atau membaginya menjadi langkah-langkah yang lebih kecil.",
+ "overdueMultipleDays": "Tugas ini telah ditunda {{count}} kali.",
+ "content": "Konten",
+ "noNotes": "Belum ada konten yang ditambahkan",
+ "subtasks": "Subtugas",
+ "noSubtasks": "Belum ada subtugas",
+ "recentActivity": "Aktivitas Terbaru"
},
"projects": {
"loading": "Memuat proyek...",
diff --git a/public/locales/it/translation.json b/public/locales/it/translation.json
index f2766f1..02befd4 100644
--- a/public/locales/it/translation.json
+++ b/public/locales/it/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Aggiungi al piano di oggi",
"removeFromToday": "Rimuovi dal piano di oggi",
"setInProgress": "Imposta in corso",
- "setNotStarted": "Imposta come non iniziata"
+ "setNotStarted": "Imposta come non iniziata",
+ "showSubtasks": "Mostra sottocompiti",
+ "hideSubtasks": "Nascondi sottocompiti",
+ "edit": "Modifica attività",
+ "delete": "Elimina attività"
},
"timeline": {
"activityTimeline": "Timeline delle Attività",
@@ -134,7 +138,9 @@
"status": "Stato",
"priority": "Priorità",
"dueDate": "Data di scadenza",
- "none": "Nessuno"
+ "none": "Nessuno",
+ "recurrenceEndDateChanged": "Data di fine ricorrenza cambiata",
+ "recurrenceEndDate": "Data di fine ricorrenza"
},
"justNow": "Proprio adesso",
"minutesAgo": "{{minutes}}m fa",
@@ -464,7 +470,9 @@
"archived": "Archiviata",
"unknown": "Sconosciuto",
"telegramConnected": "Telegram connesso e in polling",
- "telegramConnectionProblem": "Problema di connessione a Telegram"
+ "telegramConnectionProblem": "Problema di connessione a Telegram",
+ "completed": "Completato",
+ "waiting": "In attesa"
},
"project": {
"name": "Nome Progetto",
@@ -612,7 +620,15 @@
"nameHelper": {
"title": "Rendila più descrittiva!",
"suggestion": "Prova ad aggiungere più dettagli come \"Chiamare il dentista per programmare l'appuntamento per la pulizia\" invece di solo \"Chiamare il dentista\""
- }
+ },
+ "overdueAlert": "Questo compito era nel tuo piano ieri e non è stato completato.",
+ "overdueYesterday": "Considera di dare priorità a questo compito o di suddividerlo in passaggi più piccoli.",
+ "overdueMultipleDays": "Questo compito è stato posticipato {{count}} volte.",
+ "content": "Contenuto",
+ "noNotes": "Nessun contenuto aggiunto ancora",
+ "subtasks": "Sottocompiti",
+ "noSubtasks": "Nessun sottocompito ancora",
+ "recentActivity": "Attività recente"
},
"projects": {
"loading": "Caricamento progetti...",
diff --git a/public/locales/jp/translation.json b/public/locales/jp/translation.json
index 950f43b..a771742 100644
--- a/public/locales/jp/translation.json
+++ b/public/locales/jp/translation.json
@@ -111,7 +111,11 @@
"tasksCompleted": "タスク完了",
"metrics": "メトリクス",
"setInProgress": "進行中に設定",
- "setNotStarted": "未開始に設定"
+ "setNotStarted": "未開始に設定",
+ "showSubtasks": "サブタスクを表示",
+ "hideSubtasks": "サブタスクを非表示",
+ "edit": "タスクを編集",
+ "delete": "タスクを削除"
},
"timeline": {
"activityTimeline": "アクティビティタイムライン",
@@ -134,7 +138,9 @@
"status": "ステータス",
"priority": "優先度",
"dueDate": "期限",
- "none": "なし"
+ "none": "なし",
+ "recurrenceEndDateChanged": "繰り返し終了日が変更されました",
+ "recurrenceEndDate": "繰り返し終了日"
},
"justNow": "たった今",
"minutesAgo": "{{minutes}}分前",
@@ -666,7 +672,15 @@
"updated": "タスク",
"updatedSuccessfully": "が正常に更新されました!",
"deleted": "タスク",
- "deletedSuccessfully": "が正常に削除されました!"
+ "deletedSuccessfully": "が正常に削除されました!",
+ "overdueAlert": "このタスクは昨日の計画に含まれていましたが、完了していません。",
+ "overdueYesterday": "このタスクを優先するか、より小さなステップに分けることを検討してください。",
+ "overdueMultipleDays": "このタスクは{{count}}回延期されています。",
+ "content": "内容",
+ "noNotes": "まだ内容が追加されていません",
+ "subtasks": "サブタスク",
+ "noSubtasks": "まだサブタスクはありません",
+ "recentActivity": "最近の活動"
},
"calendar": {
"month": "月",
@@ -738,7 +752,9 @@
"archived": "アーカイブ",
"unknown": "不明",
"telegramConnected": "Telegramが接続され、ポーリング中",
- "telegramConnectionProblem": "Telegram接続の問題"
+ "telegramConnectionProblem": "Telegram接続の問題",
+ "completed": "完了",
+ "waiting": "待機中"
},
"dateIndicators": {
"today": "今日",
diff --git a/public/locales/ko/translation.json b/public/locales/ko/translation.json
index 626fda6..cb2cc8f 100644
--- a/public/locales/ko/translation.json
+++ b/public/locales/ko/translation.json
@@ -111,7 +111,11 @@
"addToToday": "오늘 계획에 추가",
"removeFromToday": "오늘 계획에서 제거",
"setInProgress": "진행 중으로 설정",
- "setNotStarted": "시작되지 않음으로 설정"
+ "setNotStarted": "시작되지 않음으로 설정",
+ "showSubtasks": "하위 작업 표시",
+ "hideSubtasks": "하위 작업 숨기기",
+ "edit": "작업 편집",
+ "delete": "작업 삭제"
},
"timeline": {
"activityTimeline": "활동 타임라인",
@@ -134,7 +138,9 @@
"status": "상태",
"priority": "우선순위",
"dueDate": "마감일",
- "none": "없음"
+ "none": "없음",
+ "recurrenceEndDateChanged": "반복 종료 날짜가 변경되었습니다",
+ "recurrenceEndDate": "반복 종료 날짜"
},
"justNow": "방금",
"minutesAgo": "{{minutes}}분 전",
@@ -464,7 +470,9 @@
"archived": "보관됨",
"unknown": "알 수 없음",
"telegramConnected": "텔레그램 연결됨 및 폴링 중",
- "telegramConnectionProblem": "텔레그램 연결 문제"
+ "telegramConnectionProblem": "텔레그램 연결 문제",
+ "completed": "완료됨",
+ "waiting": "대기 중"
},
"project": {
"name": "프로젝트 이름",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "더 설명적으로 만들어 보세요!",
"suggestion": "\"치과에 전화하여 청소 예약하기\"와 같은 더 많은 세부정보를 추가해 보세요. 단순히 \"치과에 전화하기\" 대신에요."
- }
+ },
+ "overdueAlert": "이 작업은 어제 귀하의 계획에 있었으나 완료되지 않았습니다.",
+ "overdueYesterday": "이 작업의 우선 순위를 정하거나 더 작은 단계로 나누는 것을 고려해 보세요.",
+ "overdueMultipleDays": "이 작업은 {{count}} 번 연기되었습니다.",
+ "content": "내용",
+ "noNotes": "아직 추가된 내용이 없습니다",
+ "subtasks": "하위 작업",
+ "noSubtasks": "아직 하위 작업이 없습니다",
+ "recentActivity": "최근 활동"
},
"projects": {
"loading": "프로젝트 로딩 중...",
diff --git a/public/locales/nl/translation.json b/public/locales/nl/translation.json
index 25fb1b3..9de17c5 100644
--- a/public/locales/nl/translation.json
+++ b/public/locales/nl/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Toevoegen aan het plan van vandaag",
"removeFromToday": "Verwijderen van het plan van vandaag",
"setInProgress": "Instellen op in uitvoering",
- "setNotStarted": "Instellen op niet gestart"
+ "setNotStarted": "Instellen op niet gestart",
+ "showSubtasks": "Toon subtaken",
+ "hideSubtasks": "Verberg subtaken",
+ "edit": "Bewerk taak",
+ "delete": "Verwijder taak"
},
"timeline": {
"activityTimeline": "Activiteit Tijdlijn",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Prioriteit",
"dueDate": "Vervaldatum",
- "none": "Geen"
+ "none": "Geen",
+ "recurrenceEndDateChanged": "Einddatum van herhaling gewijzigd",
+ "recurrenceEndDate": "Einddatum van herhaling"
},
"justNow": "Net nu",
"minutesAgo": "{{minutes}}m geleden",
@@ -464,7 +470,9 @@
"archived": "Gearchiveerd",
"unknown": "Onbekend",
"telegramConnected": "Telegram verbonden en aan het polleren",
- "telegramConnectionProblem": "Probleem met Telegram-verbinding"
+ "telegramConnectionProblem": "Probleem met Telegram-verbinding",
+ "completed": "Voltooid",
+ "waiting": "Wachten"
},
"project": {
"name": "Projectnaam",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Maak het beschrijvender!",
"suggestion": "Probeer meer details toe te voegen zoals \"Bel de tandarts om een afspraak voor een reiniging te plannen\" in plaats van alleen \"Bel de tandarts\""
- }
+ },
+ "overdueAlert": "Deze taak stond gisteren in je planning en is niet voltooid.",
+ "overdueYesterday": "Overweeg deze taak prioriteit te geven of deze in kleinere stappen op te splitsen.",
+ "overdueMultipleDays": "Deze taak is {{count}} keer uitgesteld.",
+ "content": "Inhoud",
+ "noNotes": "Nog geen inhoud toegevoegd",
+ "subtasks": "Subtaken",
+ "noSubtasks": "Nog geen subtaken",
+ "recentActivity": "Recente Activiteit"
},
"projects": {
"loading": "Projecten laden...",
diff --git a/public/locales/no/translation.json b/public/locales/no/translation.json
index 4aaa8d7..dbbdb5a 100644
--- a/public/locales/no/translation.json
+++ b/public/locales/no/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Legg til i dagens plan",
"removeFromToday": "Fjern fra dagens plan",
"setInProgress": "Sett i gang",
- "setNotStarted": "Sett til ikke startet"
+ "setNotStarted": "Sett til ikke startet",
+ "showSubtasks": "Vis undertasker",
+ "hideSubtasks": "Skjul undertasker",
+ "edit": "Rediger oppgave",
+ "delete": "Slett oppgave"
},
"timeline": {
"activityTimeline": "Aktivitetslinje",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Prioritet",
"dueDate": "Forfallsdato",
- "none": "Ingen"
+ "none": "Ingen",
+ "recurrenceEndDateChanged": "Endringsdato for gjentakelse endret",
+ "recurrenceEndDate": "Endringsdato for gjentakelse"
},
"justNow": "Akkurat nå",
"minutesAgo": "{{minutes}}m siden",
@@ -464,7 +470,9 @@
"archived": "Arkivert",
"unknown": "Ukjent",
"telegramConnected": "Telegram tilkoblet og henter data",
- "telegramConnectionProblem": "Telegram tilkoblingsproblem"
+ "telegramConnectionProblem": "Telegram tilkoblingsproblem",
+ "completed": "Fullført",
+ "waiting": "Venter"
},
"project": {
"name": "Prosjektnavn",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Gjør det mer beskrivende!",
"suggestion": "Prøv å legge til flere detaljer som \"Ring tannlegen for å avtale rengjøringsavtale\" i stedet for bare \"Ring tannlegen\""
- }
+ },
+ "overdueAlert": "Denne oppgaven var i planen din i går og ble ikke fullført.",
+ "overdueYesterday": "Vurder å prioritere denne oppgaven eller dele den opp i mindre trinn.",
+ "overdueMultipleDays": "Denne oppgaven har blitt utsatt {{count}} ganger.",
+ "content": "Innhold",
+ "noNotes": "Ingen innhold lagt til ennå",
+ "subtasks": "Undertasker",
+ "noSubtasks": "Ingen undertasker ennå",
+ "recentActivity": "Nylig aktivitet"
},
"projects": {
"loading": "Laster prosjekter...",
diff --git a/public/locales/pl/translation.json b/public/locales/pl/translation.json
index f40962b..3c1fef5 100644
--- a/public/locales/pl/translation.json
+++ b/public/locales/pl/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Dodaj do planu na dzisiaj",
"removeFromToday": "Usuń z planu na dzisiaj",
"setInProgress": "Ustaw jako w trakcie",
- "setNotStarted": "Ustaw jako nie rozpoczęte"
+ "setNotStarted": "Ustaw jako nie rozpoczęte",
+ "showSubtasks": "Pokaż podzadania",
+ "hideSubtasks": "Ukryj podzadania",
+ "edit": "Edytuj zadanie",
+ "delete": "Usuń zadanie"
},
"timeline": {
"activityTimeline": "Oś czasu aktywności",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Priorytet",
"dueDate": "Termin",
- "none": "Brak"
+ "none": "Brak",
+ "recurrenceEndDateChanged": "Data zakończenia powtarzania została zmieniona",
+ "recurrenceEndDate": "Data zakończenia powtarzania"
},
"justNow": "Właśnie teraz",
"minutesAgo": "{{minutes}}m temu",
@@ -464,7 +470,9 @@
"archived": "Zarchiwizowane",
"unknown": "Nieznany",
"telegramConnected": "Telegram połączony i sprawdzanie",
- "telegramConnectionProblem": "Problem z połączeniem Telegram"
+ "telegramConnectionProblem": "Problem z połączeniem Telegram",
+ "completed": "Zakończone",
+ "waiting": "Oczekiwanie"
},
"project": {
"name": "Nazwa projektu",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Uczyń to bardziej opisowym!",
"suggestion": "Spróbuj dodać więcej szczegółów, takich jak \"Zadzwoń do dentysty, aby umówić się na wizytę na czyszczenie\" zamiast po prostu \"Zadzwoń do dentysty\""
- }
+ },
+ "overdueAlert": "To zadanie było w Twoim planie wczoraj i nie zostało ukończone.",
+ "overdueYesterday": "Rozważ nadanie priorytetu temu zadaniu lub podzielenie go na mniejsze kroki.",
+ "overdueMultipleDays": "To zadanie zostało odłożone {{count}} razy.",
+ "content": "Treść",
+ "noNotes": "Nie dodano jeszcze treści",
+ "subtasks": "Podzadania",
+ "noSubtasks": "Brak podzadań",
+ "recentActivity": "Ostatnia aktywność"
},
"projects": {
"loading": "Ładowanie projektów...",
diff --git a/public/locales/pt/translation.json b/public/locales/pt/translation.json
index 079da2d..0c492c0 100644
--- a/public/locales/pt/translation.json
+++ b/public/locales/pt/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Adicionar ao plano de hoje",
"removeFromToday": "Remover do plano de hoje",
"setInProgress": "Definir como em progresso",
- "setNotStarted": "Definir como não iniciado"
+ "setNotStarted": "Definir como não iniciado",
+ "showSubtasks": "Mostrar subtarefas",
+ "hideSubtasks": "Ocultar subtarefas",
+ "edit": "Editar tarefa",
+ "delete": "Excluir tarefa"
},
"timeline": {
"activityTimeline": "Linha do Tempo de Atividades",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Prioridade",
"dueDate": "Data de vencimento",
- "none": "Nenhum"
+ "none": "Nenhum",
+ "recurrenceEndDateChanged": "Data de término da recorrência alterada",
+ "recurrenceEndDate": "Data de término da recorrência"
},
"justNow": "Agora mesmo",
"minutesAgo": "{{minutes}}m atrás",
@@ -464,7 +470,9 @@
"archived": "Arquivado",
"unknown": "Desconhecido",
"telegramConnected": "Telegram conectado e recebendo dados",
- "telegramConnectionProblem": "Problema de conexão com o Telegram"
+ "telegramConnectionProblem": "Problema de conexão com o Telegram",
+ "completed": "Concluído",
+ "waiting": "Aguardando"
},
"project": {
"name": "Nome do Projeto",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Torne-o mais descritivo!",
"suggestion": "Tente adicionar mais detalhes como \"Ligar para o dentista para agendar a limpeza\" em vez de apenas \"Ligar para o dentista\""
- }
+ },
+ "overdueAlert": "Esta tarefa estava no seu plano ontem e não foi concluída.",
+ "overdueYesterday": "Considere priorizar esta tarefa ou dividi-la em etapas menores.",
+ "overdueMultipleDays": "Esta tarefa foi adiada {{count}} vezes.",
+ "content": "Conteúdo",
+ "noNotes": "Nenhum conteúdo adicionado ainda",
+ "subtasks": "Subtarefas",
+ "noSubtasks": "Nenhuma subtarefa ainda",
+ "recentActivity": "Atividade Recente"
},
"projects": {
"loading": "Carregando projetos...",
diff --git a/public/locales/ro/translation.json b/public/locales/ro/translation.json
index 124ce85..85dd72c 100644
--- a/public/locales/ro/translation.json
+++ b/public/locales/ro/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Adaugă la planul de astăzi",
"removeFromToday": "Elimină din planul de astăzi",
"setInProgress": "Setează în desfășurare",
- "setNotStarted": "Setează ca neluat în lucru"
+ "setNotStarted": "Setează ca neluat în lucru",
+ "showSubtasks": "Arată subtask-uri",
+ "hideSubtasks": "Ascunde subtask-uri",
+ "edit": "Editează task-ul",
+ "delete": "Șterge task-ul"
},
"timeline": {
"activityTimeline": "Cronologia activităților",
@@ -134,7 +138,9 @@
"status": "Status",
"priority": "Prioritate",
"dueDate": "Data limită",
- "none": "Niciunul"
+ "none": "Niciunul",
+ "recurrenceEndDateChanged": "Data de încheiere a recurenței a fost modificată",
+ "recurrenceEndDate": "Data de încheiere a recurenței"
},
"justNow": "Chiar acum",
"minutesAgo": "{{minutes}}m în urmă",
@@ -464,7 +470,9 @@
"archived": "Arhivat",
"unknown": "Necunoscut",
"telegramConnected": "Telegram conectat și polling",
- "telegramConnectionProblem": "Problemă de conectare Telegram"
+ "telegramConnectionProblem": "Problemă de conectare Telegram",
+ "completed": "Finalizat",
+ "waiting": "În așteptare"
},
"project": {
"name": "Numele Proiectului",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Faceți-l mai descriptiv!",
"suggestion": "Încercați să adăugați mai multe detalii, cum ar fi \"Sunați dentistul pentru a programa o întâlnire pentru curățare\" în loc de doar \"Sunați dentistul\""
- }
+ },
+ "overdueAlert": "Această sarcină a fost în planul tău ieri și nu a fost finalizată.",
+ "overdueYesterday": "Ia în considerare prioritizarea acestei sarcini sau împărțirea ei în pași mai mici.",
+ "overdueMultipleDays": "Această sarcină a fost amânată de {{count}} ori.",
+ "content": "Conținut",
+ "noNotes": "Nu a fost adăugat încă niciun conținut",
+ "subtasks": "Subsarci",
+ "noSubtasks": "Nu există subsarci încă",
+ "recentActivity": "Activitate recentă"
},
"projects": {
"loading": "Se încarcă proiectele...",
diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json
index 9543d01..ece3127 100644
--- a/public/locales/ru/translation.json
+++ b/public/locales/ru/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Добавить в план на сегодня",
"removeFromToday": "Удалить из плана на сегодня",
"setInProgress": "Установить в процессе",
- "setNotStarted": "Установить как не начатую"
+ "setNotStarted": "Установить как не начатую",
+ "showSubtasks": "Показать подзадачи",
+ "hideSubtasks": "Скрыть подзадачи",
+ "edit": "Редактировать задачу",
+ "delete": "Удалить задачу"
},
"timeline": {
"activityTimeline": "Хронология активности",
@@ -134,7 +138,9 @@
"status": "Статус",
"priority": "Приоритет",
"dueDate": "Срок выполнения",
- "none": "Нет"
+ "none": "Нет",
+ "recurrenceEndDateChanged": "Дата окончания повторения изменена",
+ "recurrenceEndDate": "Дата окончания повторения"
},
"justNow": "Только что",
"minutesAgo": "{{minutes}}м назад",
@@ -464,7 +470,9 @@
"archived": "Архивировано",
"unknown": "Неизвестно",
"telegramConnected": "Telegram подключен и опрашивает",
- "telegramConnectionProblem": "Проблема с подключением Telegram"
+ "telegramConnectionProblem": "Проблема с подключением Telegram",
+ "completed": "Завершено",
+ "waiting": "Ожидание"
},
"project": {
"name": "Название проекта",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Сделайте это более описательным!",
"suggestion": "Попробуйте добавить больше деталей, например, \"Позвонить стоматологу, чтобы записаться на чистку\" вместо просто \"Позвонить стоматологу\""
- }
+ },
+ "overdueAlert": "Эта задача была в вашем плане вчера и не была выполнена.",
+ "overdueYesterday": "Рассмотрите возможность приоритизировать эту задачу или разбить её на более мелкие шаги.",
+ "overdueMultipleDays": "Эта задача была отложена {{count}} раз.",
+ "content": "Содержание",
+ "noNotes": "Содержимое ещё не добавлено",
+ "subtasks": "Подзадачи",
+ "noSubtasks": "Подзадач пока нет",
+ "recentActivity": "Недавняя активность"
},
"projects": {
"loading": "Загрузка проектов...",
diff --git a/public/locales/sl/translation.json b/public/locales/sl/translation.json
index 6f4dcf3..65c63b4 100644
--- a/public/locales/sl/translation.json
+++ b/public/locales/sl/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Dodaj v današnji načrt",
"removeFromToday": "Odstrani iz današnjega načrta",
"setInProgress": "Nastavi v poteku",
- "setNotStarted": "Nastavi na ni začeto"
+ "setNotStarted": "Nastavi na ni začeto",
+ "showSubtasks": "Prikaži podnaloge",
+ "hideSubtasks": "Skrij podnaloge",
+ "edit": "Uredi nalogo",
+ "delete": "Izbriši nalogo"
},
"timeline": {
"activityTimeline": "Časovnica aktivnosti",
@@ -141,7 +145,9 @@
"status": "Status",
"priority": "Prioriteta",
"dueDate": "Rok",
- "none": "Nič"
+ "none": "Nič",
+ "recurrenceEndDateChanged": "Datum konca ponavljanja se je spremenil",
+ "recurrenceEndDate": "Datum konca ponavljanja"
}
},
"profile": {
@@ -464,7 +470,9 @@
"archived": "Arhivirano",
"unknown": "Neznano",
"telegramConnected": "Telegram povezan in preverja",
- "telegramConnectionProblem": "Težava s povezavo Telegram"
+ "telegramConnectionProblem": "Težava s povezavo Telegram",
+ "completed": "Dokončano",
+ "waiting": "Čaka"
},
"project": {
"name": "Ime projekta",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Naredite ga bolj opisnega!",
"suggestion": "Poskusite dodati več podrobnosti, kot je \"Pokličite zobozdravnika, da se dogovorite za termin čiščenja\" namesto samo \"Pokličite zobozdravnika\""
- }
+ },
+ "overdueAlert": "Ta naloga je bila v vašem načrtu včeraj in ni bila dokončana.",
+ "overdueYesterday": "Razmislite o prioriteti te naloge ali jo razdelite na manjše korake.",
+ "overdueMultipleDays": "Ta naloga je bila prestavljena {{count}}-krat.",
+ "content": "Vsebina",
+ "noNotes": "Še ni dodane vsebine",
+ "subtasks": "Podnaloge",
+ "noSubtasks": "Še ni podnalog",
+ "recentActivity": "Nedavna dejavnost"
},
"projects": {
"loading": "Nalagam projekte...",
diff --git a/public/locales/sv/translation.json b/public/locales/sv/translation.json
index 8d358f0..e01ccb4 100644
--- a/public/locales/sv/translation.json
+++ b/public/locales/sv/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Lägg till i dagens plan",
"removeFromToday": "Ta bort från dagens plan",
"setInProgress": "Sätt i pågående",
- "setNotStarted": "Sätt till ej påbörjad"
+ "setNotStarted": "Sätt till ej påbörjad",
+ "showSubtasks": "Visa deluppgifter",
+ "hideSubtasks": "Dölj deluppgifter",
+ "edit": "Redigera uppgift",
+ "delete": "Ta bort uppgift"
},
"timeline": {
"activityTimeline": "Aktivitetslinje",
@@ -141,7 +145,9 @@
"status": "Status",
"priority": "Prioritet",
"dueDate": "Förfallodatum",
- "none": "Inga"
+ "none": "Inga",
+ "recurrenceEndDateChanged": "Återkommande slutdatum ändrat",
+ "recurrenceEndDate": "Återkommande slutdatum"
}
},
"profile": {
@@ -464,7 +470,9 @@
"archived": "Arkiverad",
"unknown": "Okänd",
"telegramConnected": "Telegram ansluten och polling",
- "telegramConnectionProblem": "Problem med Telegram-anslutning"
+ "telegramConnectionProblem": "Problem med Telegram-anslutning",
+ "completed": "Slutförd",
+ "waiting": "Väntar"
},
"project": {
"name": "Projektets namn",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Gör den mer beskrivande!",
"suggestion": "Försök att lägga till mer information som \"Ring tandläkaren för att boka tid för rengöring\" istället för bara \"Ring tandläkaren\""
- }
+ },
+ "overdueAlert": "Denna uppgift var i din plan igår och blev inte slutförd.",
+ "overdueYesterday": "Överväg att prioritera denna uppgift eller dela upp den i mindre steg.",
+ "overdueMultipleDays": "Denna uppgift har blivit uppskjuten {{count}} gånger.",
+ "content": "Innehåll",
+ "noNotes": "Inga anteckningar tillagda än",
+ "subtasks": "Deluppgifter",
+ "noSubtasks": "Inga deluppgifter än",
+ "recentActivity": "Senaste aktivitet"
},
"projects": {
"loading": "Laddar projekt...",
diff --git a/public/locales/tr/translation.json b/public/locales/tr/translation.json
index 13d5fa9..2299d5c 100644
--- a/public/locales/tr/translation.json
+++ b/public/locales/tr/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Bugün planına ekle",
"removeFromToday": "Bugün planından çıkar",
"setInProgress": "Devam ediyor olarak ayarla",
- "setNotStarted": "Başlamadı olarak ayarla"
+ "setNotStarted": "Başlamadı olarak ayarla",
+ "showSubtasks": "Alt görevleri göster",
+ "hideSubtasks": "Alt görevleri gizle",
+ "edit": "Görevi düzenle",
+ "delete": "Görevi sil"
},
"timeline": {
"activityTimeline": "Etkinlik Zaman Çizelgesi",
@@ -134,7 +138,9 @@
"status": "Durum",
"priority": "Öncelik",
"dueDate": "Son tarih",
- "none": "Yok"
+ "none": "Yok",
+ "recurrenceEndDateChanged": "Tekrar son tarihi değiştirildi",
+ "recurrenceEndDate": "Tekrar son tarihi"
},
"justNow": "Şu anda",
"minutesAgo": "{{minutes}}d önce",
@@ -464,7 +470,9 @@
"archived": "Arşivlendi",
"unknown": "Bilinmiyor",
"telegramConnected": "Telegram bağlı ve sorgulama yapılıyor",
- "telegramConnectionProblem": "Telegram bağlantı sorunu"
+ "telegramConnectionProblem": "Telegram bağlantı sorunu",
+ "completed": "Tamamlandı",
+ "waiting": "Bekliyor"
},
"project": {
"name": "Proje Adı",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Daha açıklayıcı hale getirin!",
"suggestion": "\"Temizlik randevusu ayarlamak için dişçiyi ara\" gibi daha fazla detay eklemeyi deneyin, sadece \"Dişçiyi ara\" demek yerine"
- }
+ },
+ "overdueAlert": "Bu görev dün planınızdaydı ve tamamlanmadı.",
+ "overdueYesterday": "Bu görevi önceliklendirmeyi veya daha küçük adımlara ayırmayı düşünün.",
+ "overdueMultipleDays": "Bu görev {{count}} kez ertelendi.",
+ "content": "İçerik",
+ "noNotes": "Henüz içerik eklenmedi",
+ "subtasks": "Alt görevler",
+ "noSubtasks": "Henüz alt görev yok",
+ "recentActivity": "Son Aktivite"
},
"projects": {
"loading": "Projeler yükleniyor...",
diff --git a/public/locales/ua/translation.json b/public/locales/ua/translation.json
index 8163b3d..25e8ca5 100644
--- a/public/locales/ua/translation.json
+++ b/public/locales/ua/translation.json
@@ -111,7 +111,11 @@
"tasksCompleted": "завдання виконані",
"metrics": "Метрики",
"setInProgress": "Встановити в процесі",
- "setNotStarted": "Встановити як не розпочате"
+ "setNotStarted": "Встановити як не розпочате",
+ "showSubtasks": "Показати підзадачі",
+ "hideSubtasks": "Сховати підзадачі",
+ "edit": "Редагувати задачу",
+ "delete": "Видалити задачу"
},
"timeline": {
"activityTimeline": "Хронологія Активності",
@@ -134,7 +138,9 @@
"status": "Статус",
"priority": "Пріоритет",
"dueDate": "Термін",
- "none": "Немає"
+ "none": "Немає",
+ "recurrenceEndDateChanged": "Дата закінчення повторення змінена",
+ "recurrenceEndDate": "Дата закінчення повторення"
},
"justNow": "Щойно",
"minutesAgo": "{{minutes}}м тому",
@@ -576,7 +582,15 @@
"updated": "Завдання",
"updatedSuccessfully": "успішно оновлено!",
"deleted": "Завдання",
- "deletedSuccessfully": "успішно видалено!"
+ "deletedSuccessfully": "успішно видалено!",
+ "overdueAlert": "Це завдання було у вашому плані вчора і не було завершено.",
+ "overdueYesterday": "Розгляньте можливість пріоритизувати це завдання або розбити його на менші етапи.",
+ "overdueMultipleDays": "Це завдання було відкладено {{count}} разів.",
+ "content": "Зміст",
+ "noNotes": "Ще не додано жодного змісту",
+ "subtasks": "Підзавдання",
+ "noSubtasks": "Ще немає підзавдань",
+ "recentActivity": "Остання активність"
},
"calendar": {
"month": "Місяць",
@@ -691,7 +705,9 @@
"archived": "Архівовано",
"unknown": "Невідомо",
"telegramConnected": "Telegram підключено та опитування",
- "telegramConnectionProblem": "Проблема з підключенням Telegram"
+ "telegramConnectionProblem": "Проблема з підключенням Telegram",
+ "completed": "Завершено",
+ "waiting": "Очікування"
},
"dateIndicators": {
"today": "СЬОГОДНІ",
diff --git a/public/locales/vi/translation.json b/public/locales/vi/translation.json
index c1eeb5d..59a42a0 100644
--- a/public/locales/vi/translation.json
+++ b/public/locales/vi/translation.json
@@ -111,7 +111,11 @@
"addToToday": "Thêm vào kế hoạch hôm nay",
"removeFromToday": "Gỡ bỏ khỏi kế hoạch hôm nay",
"setInProgress": "Đặt thành đang tiến hành",
- "setNotStarted": "Đặt thành chưa bắt đầu"
+ "setNotStarted": "Đặt thành chưa bắt đầu",
+ "showSubtasks": "Hiện các công việc con",
+ "hideSubtasks": "Ẩn các công việc con",
+ "edit": "Chỉnh sửa công việc",
+ "delete": "Xóa công việc"
},
"timeline": {
"activityTimeline": "Dòng Thời Gian Hoạt Động",
@@ -134,7 +138,9 @@
"status": "Trạng thái",
"priority": "Độ ưu tiên",
"dueDate": "Ngày đến hạn",
- "none": "Không có"
+ "none": "Không có",
+ "recurrenceEndDateChanged": "Ngày kết thúc chu kỳ đã thay đổi",
+ "recurrenceEndDate": "Ngày kết thúc chu kỳ"
},
"justNow": "Vừa xong",
"minutesAgo": "{{minutes}} phút trước",
@@ -464,7 +470,9 @@
"archived": "Đã lưu trữ",
"unknown": "Không xác định",
"telegramConnected": "Telegram đã kết nối và đang kiểm tra",
- "telegramConnectionProblem": "Vấn đề kết nối Telegram"
+ "telegramConnectionProblem": "Vấn đề kết nối Telegram",
+ "completed": "Đã hoàn thành",
+ "waiting": "Đang chờ"
},
"project": {
"name": "Tên Dự Án",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "Hãy làm cho nó mô tả hơn!",
"suggestion": "Cố gắng thêm nhiều chi tiết như \"Gọi nha sĩ để đặt lịch hẹn làm sạch\" thay vì chỉ \"Gọi nha sĩ\""
- }
+ },
+ "overdueAlert": "Nhiệm vụ này đã có trong kế hoạch của bạn hôm qua và chưa được hoàn thành.",
+ "overdueYesterday": "Hãy xem xét ưu tiên nhiệm vụ này hoặc chia nhỏ nó thành các bước nhỏ hơn.",
+ "overdueMultipleDays": "Nhiệm vụ này đã bị hoãn lại {{count}} lần.",
+ "content": "Nội dung",
+ "noNotes": "Chưa có nội dung nào được thêm vào",
+ "subtasks": "Công việc con",
+ "noSubtasks": "Chưa có công việc con nào",
+ "recentActivity": "Hoạt động gần đây"
},
"projects": {
"loading": "Đang tải dự án...",
diff --git a/public/locales/zh/translation.json b/public/locales/zh/translation.json
index 6e96a4d..7e6cf42 100644
--- a/public/locales/zh/translation.json
+++ b/public/locales/zh/translation.json
@@ -111,7 +111,11 @@
"addToToday": "添加到今天计划",
"removeFromToday": "从今天计划中移除",
"setInProgress": "设置为进行中",
- "setNotStarted": "设置为未开始"
+ "setNotStarted": "设置为未开始",
+ "showSubtasks": "显示子任务",
+ "hideSubtasks": "隐藏子任务",
+ "edit": "编辑任务",
+ "delete": "删除任务"
},
"timeline": {
"activityTimeline": "活动时间线",
@@ -134,7 +138,9 @@
"status": "状态",
"priority": "优先级",
"dueDate": "截止日期",
- "none": "无"
+ "none": "无",
+ "recurrenceEndDateChanged": "重复结束日期已更改",
+ "recurrenceEndDate": "重复结束日期"
},
"justNow": "刚刚",
"minutesAgo": "{{minutes}}分钟前",
@@ -464,7 +470,9 @@
"archived": "已归档",
"unknown": "未知",
"telegramConnected": "Telegram 已连接并正在轮询",
- "telegramConnectionProblem": "Telegram 连接问题"
+ "telegramConnectionProblem": "Telegram 连接问题",
+ "completed": "已完成",
+ "waiting": "等待中"
},
"project": {
"name": "项目名称",
@@ -611,7 +619,15 @@
"nameHelper": {
"title": "让它更具描述性!",
"suggestion": "尝试添加更多细节,例如 \"打电话给牙医安排清洁预约\" 而不仅仅是 \"打电话给牙医\""
- }
+ },
+ "overdueAlert": "此任务昨天在您的计划中,但未完成。",
+ "overdueYesterday": "考虑优先处理此任务或将其拆分为更小的步骤。",
+ "overdueMultipleDays": "此任务已推迟 {{count }} 次。",
+ "content": "内容",
+ "noNotes": "尚未添加内容",
+ "subtasks": "子任务",
+ "noSubtasks": "尚无子任务",
+ "recentActivity": "最近活动"
},
"projects": {
"loading": "加载项目中...",