+
{t(
diff --git a/frontend/components/Task/TaskDetails/TaskDetailsHeader.tsx b/frontend/components/Task/TaskDetails/TaskDetailsHeader.tsx
index ef2fc64..61dd92a 100644
--- a/frontend/components/Task/TaskDetails/TaskDetailsHeader.tsx
+++ b/frontend/components/Task/TaskDetails/TaskDetailsHeader.tsx
@@ -656,13 +656,13 @@ const TaskDetailsHeader: React.FC = ({
)}
{formattedUpdatedAt && (
-
+
{t(
- 'task.lastUpdatedAt',
+ 'task.updatedAt',
'Updated at'
)}
:{' '}
-
+
{formattedUpdatedAt}
diff --git a/frontend/utils/dateUtils.ts b/frontend/utils/dateUtils.ts
index 595eea8..18c7769 100644
--- a/frontend/utils/dateUtils.ts
+++ b/frontend/utils/dateUtils.ts
@@ -1,9 +1,25 @@
import { format, Locale } from 'date-fns';
+import { toZonedTime } from 'date-fns-tz';
import { enUS } from 'date-fns/locale/en-US';
import { es } from 'date-fns/locale/es';
import { el } from 'date-fns/locale/el';
import i18n from '../i18n';
+let userTimezone: string | null = null;
+
+export const setUserTimezone = (timezone: string): void => {
+ userTimezone = timezone;
+};
+
+export const getUserTimezone = (): string => {
+ return userTimezone || Intl.DateTimeFormat().resolvedOptions().timeZone;
+};
+
+export const convertToUserTimezone = (date: Date | number): Date => {
+ const timezone = getUserTimezone();
+ return toZonedTime(date, timezone);
+};
+
/**
* Maps i18next language codes to date-fns locale objects
*/
@@ -158,14 +174,20 @@ export const formatTime = (date: Date | number): string => {
/**
* Formats a date to show date and time based on the current locale
+ * Converts to user's timezone before formatting
* Example: "Jan 1, 2023 3:30 PM" (in English)
*
- * @param date - The date to format
+ * @param date - The date to format (assumed to be UTC)
+ * @param useTimezone - Whether to convert to user timezone (default: true)
* @returns The formatted date and time string
*/
-export const formatDateTime = (date: Date | number): string => {
+export const formatDateTime = (
+ date: Date | number,
+ useTimezone: boolean = true
+): string => {
+ const dateToFormat = useTimezone ? convertToUserTimezone(date) : date;
return formatLocalizedDate(
- date,
+ dateToFormat,
getDateFormatPattern('dateTime', 'MMM d, yyyy h:mm a')
);
};
diff --git a/public/locales/ar/translation.json b/public/locales/ar/translation.json
index 2faa647..3fe59ab 100644
--- a/public/locales/ar/translation.json
+++ b/public/locales/ar/translation.json
@@ -149,7 +149,8 @@
"overdue": "متأخر",
"planned": "مخطط",
"open": "فتح",
- "completed": "مكتمل"
+ "completed": "مكتمل",
+ "noCompletedTasksToday": "لا توجد مهام مكتملة اليوم."
},
"timeline": {
"activityTimeline": "جدول الأنشطة",
@@ -308,7 +309,8 @@
"security": "الأمان",
"productivity": "الإنتاجية",
"telegram": "تيليجرام",
- "ai": "ميزات الذكاء الاصطناعي"
+ "ai": "ميزات الذكاء الاصطناعي",
+ "notifications": "تفضيلات الإشعارات"
},
"security": "إعدادات الأمان",
"changePassword": "تغيير كلمة المرور",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "تم تغيير كلمة المرور بنجاح!",
"changingPassword": "جارٍ تغيير كلمة المرور...",
"accountSettings": "الإعدادات والحسابات",
- "aiProductivityFeatures": "ميزات الذكاء الاصطناعي والإنتاجية",
"botSetup": "إعداد الروبوت",
"passwordChangeNote": "سيتم حفظ تغييرات كلمة المرور عند النقر على \"حفظ التغييرات\" في أسفل النموذج.",
"passwordChangeOptional": "اترك حقول كلمة المرور فارغة لتحديث الإعدادات الأخرى دون تغيير كلمة المرور الخاصة بك.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "اختر كيف تريد أن تتلقى إشعارات حول الأحداث المهمة.",
+ "aiFeatures": "ميزات الذكاء الاصطناعي"
},
"productivity": {
"stalledProjects": "المشاريع المتوقفة",
@@ -797,7 +800,9 @@
"activity": "نشاط",
"lastUpdatedAt": "آخر تحديث في",
"statusUpdated": "تم تحديث الحالة بنجاح",
- "statusUpdateError": "فشل في تحديث الحالة"
+ "statusUpdateError": "فشل في تحديث الحالة",
+ "updatedAt": "تم التحديث في",
+ "upcoming": "قادم"
},
"projects": {
"loading": "جارٍ تحميل المشاريع...",
@@ -833,7 +838,28 @@
"active_desc": "عمل نشط جارٍ"
},
"showMetrics": "عرض المقاييس",
- "hideMetrics": "إخفاء المقاييس"
+ "hideMetrics": "إخفاء المقاييس",
+ "progress": "التقدم",
+ "taskMomentum": "زخم المهام",
+ "activeTasks": "المهام النشطة",
+ "dueSchedule": "جدول الاستحقاق",
+ "next14Days": "الأيام الـ 14 القادمة",
+ "noUpcomingDue": "لا توجد مواعيد استحقاق في الأيام الـ 14 القادمة.",
+ "peakDay": "الذروة",
+ "none": "لا شيء",
+ "next3days": "الأيام الـ 3 القادمة",
+ "nextWeek": "الأيام الـ 7 القادمة",
+ "recentCompletion": "الإنجازات الأخيرة",
+ "last7And30": "آخر 7 و 30 يومًا",
+ "weeklyPace": "الوتيرة الأسبوعية",
+ "prevWeekCompleted": "{{count}} الأسبوع السابق",
+ "vsPrevWeek": "مقابل الأسبوع السابق",
+ "monthlyCompletion": "إنجازات 30 يومًا",
+ "last30Days": "آخر 30 يومًا",
+ "nextUp": "الإجراء الأفضل التالي",
+ "focusTask": "المهمة الأكثر تأثيرًا",
+ "focusHint": "ينقل هذه المهمة إلى قيد التنفيذ واليوم",
+ "noNextAction": "كل شيء واضح - لا توجد مهام معلقة."
},
"projectItem": {
"edit": "تعديل",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "تبديل قائمة السحب",
"projectInitials": "اختصارات المشروع",
"share": "مشاركة",
- "sharedProject": "مشاركة مع الفريق"
+ "sharedProject": "مشاركة مع الفريق",
+ "noDueDate": "لا يوجد تاريخ استحقاق",
+ "dueToday": "مستحق اليوم",
+ "dueIn": "مستحق خلال {{count}} {{unit}}",
+ "overdue": "متأخر منذ {{count}} {{unit}}",
+ "day": "يوم",
+ "days": "أيام",
+ "sharedUser": "مستخدم مشارك",
+ "moreSharedUsers": "+{{count}} مستخدمين آخرين"
},
"areas": {
"title": "المناطق",
@@ -1265,5 +1299,46 @@
"validationErrors": "أخطاء التحقق:",
"versionIncompatible": "الإصدار غير متوافق",
"backupVersion": "إصدار النسخة الاحتياطية"
+ },
+ "notifications": {
+ "table": {
+ "type": "نوع الإشعار"
+ },
+ "channels": {
+ "inApp": "داخل التطبيق",
+ "email": "البريد الإلكتروني",
+ "push": "إشعارات الدفع",
+ "telegram": "تيليجرام"
+ },
+ "types": {
+ "dueTasks": "المهام المستحقة",
+ "overdueTasks": "المهام المتأخرة",
+ "deferUntil": "تأجيل حتى",
+ "dueProjects": "المشاريع المستحقة",
+ "overdueProjects": "المشاريع المتأخرة"
+ },
+ "descriptions": {
+ "dueTasks": "المهام المستحقة خلال 24 ساعة",
+ "overdueTasks": "المهام التي تجاوزت تاريخ استحقاقها",
+ "deferUntil": "المهام المتاحة الآن للعمل عليها",
+ "dueProjects": "المشاريع المستحقة خلال 24 ساعة",
+ "overdueProjects": "المشاريع التي تجاوزت تاريخ استحقاقها"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "تيليجرام غير مُعد:",
+ "message": "لتلقي إشعارات تيليجرام، يرجى إعداد بوت تيليجرام الخاص بك في علامة تيليجرام."
+ }
+ },
+ "test": {
+ "title": "اختبار الإشعارات",
+ "description": "أرسل إشعار اختبار لرؤية كيف يظهر داخل التطبيق وعلى القنوات المفعلة (تليجرام، إلخ)",
+ "send": "إرسال اختبار",
+ "sending": "جارٍ الإرسال..."
+ },
+ "info": {
+ "title": "ملاحظة:",
+ "message": "ستكون إشعارات البريد الإلكتروني وإشعارات الدفع متاحة قريبًا. الإشعارات داخل التطبيق وإشعارات تليجرام متاحة حاليًا."
+ }
}
}
diff --git a/public/locales/bg/translation.json b/public/locales/bg/translation.json
index 8b701c4..4c8e1d4 100644
--- a/public/locales/bg/translation.json
+++ b/public/locales/bg/translation.json
@@ -149,7 +149,8 @@
"overdue": "Просрочено",
"planned": "Планирано",
"open": "Отвори",
- "completed": "Завършено"
+ "completed": "Завършено",
+ "noCompletedTasksToday": "Няма завършени задачи днес."
},
"timeline": {
"activityTimeline": "Хронология на активността",
@@ -308,7 +309,8 @@
"security": "Сигурност",
"productivity": "Продуктивност",
"telegram": "Телеграм",
- "ai": "AI функции"
+ "ai": "AI функции",
+ "notifications": "Настройки за известия"
},
"security": "Настройки за сигурност",
"changePassword": "Смяна на парола",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Паролата е сменена успешно!",
"changingPassword": "Сменям паролата...",
"accountSettings": "Настройки на акаунта и предпочитания",
- "aiProductivityFeatures": "AI и функции за производителност",
"botSetup": "Настройка на бота",
"passwordChangeNote": "Промените на паролата ще бъдат запазени, когато кликнете \"Запази промените\" в долната част на формуляра.",
"passwordChangeOptional": "Оставете полетата за парола празни, за да актуализирате други настройки, без да променяте паролата си.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Изберете как искате да бъдете уведомявани за важни събития.",
+ "aiFeatures": "AI функции"
},
"productivity": {
"stalledProjects": "Забавени проекти",
@@ -797,7 +800,9 @@
"activity": "Активност",
"lastUpdatedAt": "Последно обновено на",
"statusUpdated": "Статусът е обновен успешно",
- "statusUpdateError": "Неуспешно обновяване на статуса"
+ "statusUpdateError": "Неуспешно обновяване на статуса",
+ "updatedAt": "Актуализирано на",
+ "upcoming": "предстоящ"
},
"projects": {
"loading": "Зареждане на проекти...",
@@ -833,7 +838,28 @@
"active_desc": "Активна работа в ход"
},
"showMetrics": "Покажи метрики",
- "hideMetrics": "Скрий метрики"
+ "hideMetrics": "Скрий метрики",
+ "progress": "Прогрес",
+ "taskMomentum": "Инерция на задачите",
+ "activeTasks": "Активни задачи",
+ "dueSchedule": "График на падежите",
+ "next14Days": "Следващите 14 дни",
+ "noUpcomingDue": "Няма падежи в следващите 14 дни.",
+ "peakDay": "Пик",
+ "none": "Няма",
+ "next3days": "Следващите 3 дни",
+ "nextWeek": "Следващите 7 дни",
+ "recentCompletion": "Скорошни завършвания",
+ "last7And30": "Последните 7 и 30 дни",
+ "weeklyPace": "Седмична скорост",
+ "prevWeekCompleted": "{{count}} предишна седмица",
+ "vsPrevWeek": "спрямо предишна седмица",
+ "monthlyCompletion": "30-дневни завършвания",
+ "last30Days": "Последните 30 дни",
+ "nextUp": "Следващо най-добро действие",
+ "focusTask": "Най-въздействаща задача",
+ "focusHint": "Премества задачата в „в процес\" и „днес\"",
+ "noNextAction": "Всичко е наред - няма неизпълнени задачи."
},
"projectItem": {
"edit": "Редактиране",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Превключи падащото меню",
"projectInitials": "Инициали на проекта",
"share": "Сподели",
- "sharedProject": "Споделено с екипа"
+ "sharedProject": "Споделено с екипа",
+ "noDueDate": "Няма краен срок",
+ "dueToday": "С падеж днес",
+ "dueIn": "С падеж след {{count}} {{unit}}",
+ "overdue": "Просрочено с {{count}} {{unit}}",
+ "day": "ден",
+ "days": "дни",
+ "sharedUser": "Споделен потребител",
+ "moreSharedUsers": "+{{count}} повече потребители"
},
"areas": {
"title": "Области",
@@ -1265,5 +1299,46 @@
"validationErrors": "Грешки при валидиране:",
"versionIncompatible": "Несъвместима версия",
"backupVersion": "Версия на резервното копие"
+ },
+ "notifications": {
+ "table": {
+ "type": "Тип известие"
+ },
+ "channels": {
+ "inApp": "В приложението",
+ "email": "Имейл",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Задължителни задачи",
+ "overdueTasks": "Закъснели задачи",
+ "deferUntil": "Отложи до",
+ "dueProjects": "Задължителни проекти",
+ "overdueProjects": "Закъснели проекти"
+ },
+ "descriptions": {
+ "dueTasks": "Задачи, които трябва да бъдат завършени в рамките на 24 часа",
+ "overdueTasks": "Задачи, които са преминали срока си",
+ "deferUntil": "Задачи, които сега са налични за работа",
+ "dueProjects": "Проекти, които трябва да бъдат завършени в рамките на 24 часа",
+ "overdueProjects": "Проекти, които са преминали срока си"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram не е конфигуриран:",
+ "message": "За да получавате известия в Telegram, моля, конфигурирайте вашия Telegram бот в таба Telegram."
+ }
+ },
+ "test": {
+ "title": "Тестови известия",
+ "description": "Изпратете тестово известие, за да видите как изглежда в приложението и на активираните канали (Telegram и др.)",
+ "send": "Изпрати тест",
+ "sending": "Изпраща се..."
+ },
+ "info": {
+ "title": "Забележка:",
+ "message": "Имейл и Push известия ще бъдат налични скоро. В приложението и Telegram известията в момента са налични."
+ }
}
}
diff --git a/public/locales/da/translation.json b/public/locales/da/translation.json
index 52e3bfb..7b6f3b1 100644
--- a/public/locales/da/translation.json
+++ b/public/locales/da/translation.json
@@ -149,7 +149,8 @@
"overdue": "Forsinket",
"planned": "Planlagt",
"open": "Åbn",
- "completed": "Fuldført"
+ "completed": "Fuldført",
+ "noCompletedTasksToday": "Ingen fuldførte opgaver i dag."
},
"timeline": {
"activityTimeline": "Aktivitets Tidslinje",
@@ -315,7 +316,8 @@
"security": "Sikkerhed",
"productivity": "Produktivitet",
"telegram": "Telegram",
- "ai": "AI-funktioner"
+ "ai": "AI-funktioner",
+ "notifications": "Notifikationsindstillinger"
},
"security": "Sikkerhedsindstillinger",
"changePassword": "Skift adgangskode",
@@ -333,7 +335,6 @@
"passwordChangeSuccess": "Adgangskoden blev ændret med succes!",
"changingPassword": "Ændrer adgangskode...",
"accountSettings": "Konto & Indstillinger",
- "aiProductivityFeatures": "AI & Produktivitetsfunktioner",
"botSetup": "Bot Opsætning",
"passwordChangeNote": "Ændringer af adgangskode gemmes, når du klikker på \"Gem ændringer\" nederst i formularen.",
"passwordChangeOptional": "Lad adgangskodefelterne stå tomme for at opdatere andre indstillinger uden at ændre din adgangskode.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Vælg hvordan du ønsker at blive underrettet om vigtige begivenheder.",
+ "aiFeatures": "AI-funktioner"
},
"productivity": {
"stalledProjects": "Stagnerede Projekter",
@@ -797,7 +800,9 @@
"activity": "Aktivitet",
"lastUpdatedAt": "Sidst opdateret den",
"statusUpdated": "Status opdateret med succes",
- "statusUpdateError": "Fejl ved opdatering af status"
+ "statusUpdateError": "Fejl ved opdatering af status",
+ "updatedAt": "Opdateret den",
+ "upcoming": "kommende"
},
"projects": {
"loading": "Indlæser projekter...",
@@ -833,7 +838,28 @@
"active_desc": "Aktivt arbejde i gang"
},
"showMetrics": "Vis målinger",
- "hideMetrics": "Skjul målinger"
+ "hideMetrics": "Skjul målinger",
+ "progress": "Fremgang",
+ "taskMomentum": "Opgavemomentum",
+ "activeTasks": "Aktive opgaver",
+ "dueSchedule": "Forfaldsoversigt",
+ "next14Days": "Næste 14 dage",
+ "noUpcomingDue": "Ingen frister de næste 14 dage.",
+ "peakDay": "Top",
+ "none": "Ingen",
+ "next3days": "Næste 3 dage",
+ "nextWeek": "Næste 7 dage",
+ "recentCompletion": "Seneste færdiggørelse",
+ "last7And30": "Sidste 7 og 30 dage",
+ "weeklyPace": "Ugentligt tempo",
+ "prevWeekCompleted": "{{count}} forrige uge",
+ "vsPrevWeek": "vs forrige uge",
+ "monthlyCompletion": "30-dages færdiggørelser",
+ "last30Days": "Sidste 30 dage",
+ "nextUp": "Næste bedste handling",
+ "focusTask": "Mest indflydelsesrige opgave",
+ "focusHint": "Flytter denne opgave til i gang og i dag",
+ "noNextAction": "Alt klart - ingen udestående opgaver."
},
"projectItem": {
"edit": "Rediger",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Skift dropdown-menu",
"projectInitials": "Projektinitialer",
"share": "Del",
- "sharedProject": "Delt med teamet"
+ "sharedProject": "Delt med teamet",
+ "noDueDate": "Ingen frist",
+ "dueToday": "Forfalder i dag",
+ "dueIn": "Forfalder om {{count}} {{unit}}",
+ "overdue": "Overskredet med {{count}} {{unit}}",
+ "day": "dag",
+ "days": "dage",
+ "sharedUser": "Delt bruger",
+ "moreSharedUsers": "+{{count}} flere brugere"
},
"areas": {
"title": "Områder",
@@ -1265,5 +1299,46 @@
"validationErrors": "Valideringsfejl:",
"versionIncompatible": "Version inkompatibel",
"backupVersion": "Backup version"
+ },
+ "notifications": {
+ "table": {
+ "type": "Notifikationstype"
+ },
+ "channels": {
+ "inApp": "I-app",
+ "email": "E-mail",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Forfaldne opgaver",
+ "overdueTasks": "Overdue opgaver",
+ "deferUntil": "Udsæt indtil",
+ "dueProjects": "Forfaldne projekter",
+ "overdueProjects": "Overdue projekter"
+ },
+ "descriptions": {
+ "dueTasks": "Opgaver der forfalder inden for 24 timer",
+ "overdueTasks": "Opgaver der er overskredet deres forfaldsdato",
+ "deferUntil": "Opgaver der nu er tilgængelige for arbejde",
+ "dueProjects": "Projekter der forfalder inden for 24 timer",
+ "overdueProjects": "Projekter der er overskredet deres forfaldsdato"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram ikke konfigureret:",
+ "message": "For at modtage Telegram-notifikationer, bedes du konfigurere din Telegram-bot i Telegram-fanen."
+ }
+ },
+ "test": {
+ "title": "Testnotifikationer",
+ "description": "Send en testnotifikation for at se, hvordan den vises i appen og på aktiverede kanaler (Telegram osv.)",
+ "send": "Send test",
+ "sending": "Sender..."
+ },
+ "info": {
+ "title": "Bemærk:",
+ "message": "E-mail og push-notifikationer kommer snart. Notifikationer i appen og Telegram er i øjeblikket tilgængelige."
+ }
}
}
diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json
index 6c93d93..3a3d443 100644
--- a/public/locales/de/translation.json
+++ b/public/locales/de/translation.json
@@ -149,7 +149,8 @@
"tasks": "Aufgaben",
"showingItems": "{{current}} von {{total}} Aufgaben angezeigt",
"open": "Öffnen",
- "completed": "Abgeschlossen"
+ "completed": "Abgeschlossen",
+ "noCompletedTasksToday": "Keine abgeschlossenen Aufgaben heute."
},
"timeline": {
"activityTimeline": "Aktivitätsverlauf",
@@ -488,7 +489,8 @@
"security": "Sicherheit",
"productivity": "Produktivität",
"telegram": "Telegram",
- "ai": "KI-Funktionen"
+ "ai": "KI-Funktionen",
+ "notifications": "Benachrichtigungseinstellungen"
},
"security": "Sicherheitseinstellungen",
"changePassword": "Passwort ändern",
@@ -506,7 +508,6 @@
"passwordChangeSuccess": "Passwort erfolgreich geändert!",
"changingPassword": "Passwort wird geändert...",
"accountSettings": "Konto & Einstellungen",
- "aiProductivityFeatures": "KI & Produktivitätsfunktionen",
"botSetup": "Bot-Einrichtung",
"successMessage": "Profil erfolgreich aktualisiert!",
"settings": "Profil Einstellungen",
@@ -594,7 +595,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Wählen Sie aus, wie Sie über wichtige Ereignisse benachrichtigt werden möchten.",
+ "aiFeatures": "KI-Funktionen"
},
"nextTask": {
"suggestion": "Da nichts in Bearbeitung ist, wie wäre es, mit diesem zu beginnen",
@@ -728,7 +731,9 @@
"activity": "Aktivität",
"lastUpdatedAt": "Zuletzt aktualisiert am",
"statusUpdated": "Status erfolgreich aktualisiert",
- "statusUpdateError": "Fehler beim Aktualisieren des Status"
+ "statusUpdateError": "Fehler beim Aktualisieren des Status",
+ "updatedAt": "Aktualisiert am",
+ "upcoming": "bevorstehend"
},
"calendar": {
"month": "Monat",
@@ -925,7 +930,28 @@
"active_desc": "Aktive Arbeit im Gange"
},
"showMetrics": "Metriken anzeigen",
- "hideMetrics": "Metriken ausblenden"
+ "hideMetrics": "Metriken ausblenden",
+ "progress": "Fortschritt",
+ "taskMomentum": "Aufgabenmomentum",
+ "activeTasks": "Aktive Aufgaben",
+ "dueSchedule": "Fälligkeitsplan",
+ "next14Days": "Nächsten 14 Tage",
+ "noUpcomingDue": "Keine Fälligkeiten in den nächsten 14 Tagen.",
+ "peakDay": "Spitze",
+ "none": "Keine",
+ "next3days": "Nächsten 3 Tage",
+ "nextWeek": "Nächsten 7 Tage",
+ "recentCompletion": "Kürzliche Fertigstellung",
+ "last7And30": "Letzte 7 und 30 Tage",
+ "weeklyPace": "Wöchentliches Tempo",
+ "prevWeekCompleted": "{{count}} vorherige Woche",
+ "vsPrevWeek": "vs vorherige Woche",
+ "monthlyCompletion": "30-Tage-Fertigstellungen",
+ "last30Days": "Letzte 30 Tage",
+ "nextUp": "Nächste beste Aktion",
+ "focusTask": "Einflussreichste Aufgabe",
+ "focusHint": "Verschiebt diese Aufgabe zu „In Bearbeitung\" und „Heute\"",
+ "noNextAction": "Alles klar - keine ausstehenden Aufgaben."
},
"projectItem": {
"edit": "Bearbeiten",
@@ -935,7 +961,15 @@
"toggleDropdownMenu": "Dropdown-Menü umschalten",
"projectInitials": "Projektinitialen",
"share": "Teilen",
- "sharedProject": "Mit dem Team geteilt"
+ "sharedProject": "Mit dem Team geteilt",
+ "noDueDate": "Kein Fälligkeitsdatum",
+ "dueToday": "Heute fällig",
+ "dueIn": "Fällig in {{count}} {{unit}}",
+ "overdue": "Überfällig seit {{count}} {{unit}}",
+ "day": "Tag",
+ "days": "Tage",
+ "sharedUser": "Geteilter Benutzer",
+ "moreSharedUsers": "+{{count}} weitere Benutzer"
},
"areas": {
"title": "Bereiche",
@@ -1274,5 +1308,46 @@
"validationErrors": "Validierungsfehler:",
"versionIncompatible": "Version inkompatibel",
"backupVersion": "Backup-Version"
+ },
+ "notifications": {
+ "table": {
+ "type": "Benachrichtigungstyp"
+ },
+ "channels": {
+ "inApp": "In-App",
+ "email": "E-Mail",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Fällige Aufgaben",
+ "overdueTasks": "Überfällige Aufgaben",
+ "deferUntil": "Aufschieben bis",
+ "dueProjects": "Fällige Projekte",
+ "overdueProjects": "Überfällige Projekte"
+ },
+ "descriptions": {
+ "dueTasks": "Aufgaben, die innerhalb von 24 Stunden fällig sind",
+ "overdueTasks": "Aufgaben, deren Fälligkeitsdatum überschritten ist",
+ "deferUntil": "Aufgaben, die jetzt zur Bearbeitung verfügbar sind",
+ "dueProjects": "Projekte, die innerhalb von 24 Stunden fällig sind",
+ "overdueProjects": "Projekte, deren Fälligkeitsdatum überschritten ist"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram nicht konfiguriert:",
+ "message": "Um Telegram-Benachrichtigungen zu erhalten, konfigurieren Sie bitte Ihren Telegram-Bot im Telegram-Tab."
+ }
+ },
+ "test": {
+ "title": "Testbenachrichtigungen",
+ "description": "Senden Sie eine Testbenachrichtigung, um zu sehen, wie sie in der App und auf aktivierten Kanälen (Telegram, usw.) erscheint.",
+ "send": "Test senden",
+ "sending": "Wird gesendet..."
+ },
+ "info": {
+ "title": "Hinweis:",
+ "message": "E-Mail- und Push-Benachrichtigungen kommen bald. In-App- und Telegram-Benachrichtigungen sind derzeit verfügbar."
+ }
}
}
diff --git a/public/locales/el/translation.json b/public/locales/el/translation.json
index 00ad0d8..ec7de97 100644
--- a/public/locales/el/translation.json
+++ b/public/locales/el/translation.json
@@ -199,7 +199,8 @@
"security": "Ασφάλεια",
"productivity": "Παραγωγικότητα",
"telegram": "Telegram",
- "ai": "Χαρακτηριστικά A.I."
+ "ai": "Χαρακτηριστικά A.I.",
+ "notifications": "Ειδοποιήσεις"
},
"security": "Ρυθμίσεις Ασφάλειας",
"changePassword": "Αλλαγή Κωδικού",
@@ -217,7 +218,6 @@
"passwordChangeSuccess": "Ο κωδικός αλλάχτηκε επιτυχώς!",
"changingPassword": "Αλλαγή κωδικού...",
"accountSettings": "Λογαριασμός & Προτιμήσεις",
- "aiProductivityFeatures": "Χαρακτηριστικά A.I. & Παραγωγικότητας",
"botSetup": "Ρύθμιση Bot",
"settings": "Ρυθμίσεις Προφίλ",
"light": "Φωτεινό",
@@ -273,7 +273,9 @@
"avatarUploadSuccess": "Η φωτογραφία ανέβηκε με επιτυχία!",
"avatarRemoveSuccess": "Η φωτογραφία αφαιρέθηκε με επιτυχία!",
"avatarUploadFailed": "Αποτυχία ανεβάσματος φωτογραφίας",
- "avatarRemoveFailed": "Αποτυχία αφαίρεσης φωτογραφίας"
+ "avatarRemoveFailed": "Αποτυχία αφαίρεσης φωτογραφίας",
+ "notificationsDescription": "Επιλέξτε πώς θέλετε να ειδοποιείστε για σημαντικά γεγονότα.",
+ "aiFeatures": "Λειτουργίες AI"
},
"errors": {
"required": "Αυτό το πεδίο είναι υποχρεωτικό",
@@ -362,7 +364,8 @@
"overdue": "Εκπρόθεσμο",
"planned": "Προγραμματισμένο",
"open": "Άνοιγμα",
- "completed": "Ολοκληρώθηκε"
+ "completed": "Ολοκληρώθηκε",
+ "noCompletedTasksToday": "Καμία ολοκληρωμένη εργασία σήμερα."
},
"timeline": {
"activityTimeline": "Χρονοδιάγραμμα Δραστηριότητας",
@@ -442,7 +445,28 @@
"active_desc": "Ενεργή εργασία που πραγματοποιείται"
},
"showMetrics": "Εμφάνιση μετρήσεων",
- "hideMetrics": "Απόκρυψη μετρήσεων"
+ "hideMetrics": "Απόκρυψη μετρήσεων",
+ "progress": "Πρόοδος",
+ "taskMomentum": "Ορμή εργασιών",
+ "activeTasks": "Ενεργές εργασίες",
+ "dueSchedule": "Πρόγραμμα λήξεων",
+ "next14Days": "Επόμενες 14 ημέρες",
+ "noUpcomingDue": "Δεν υπάρχουν προθεσμίες τις επόμενες 14 ημέρες.",
+ "peakDay": "Κορυφή",
+ "none": "Κανένα",
+ "next3days": "Επόμενες 3 ημέρες",
+ "nextWeek": "Επόμενες 7 ημέρες",
+ "recentCompletion": "Πρόσφατη ολοκλήρωση",
+ "last7And30": "Τελευταίες 7 & 30 ημέρες",
+ "weeklyPace": "Εβδομαδιαίος ρυθμός",
+ "prevWeekCompleted": "{{count}} προηγούμενη εβδομάδα",
+ "vsPrevWeek": "vs προηγούμενη εβδομάδα",
+ "monthlyCompletion": "Ολοκληρώσεις 30 ημερών",
+ "last30Days": "Τελευταίες 30 ημέρες",
+ "nextUp": "Επόμενη καλύτερη ενέργεια",
+ "focusTask": "Πιο σημαντική εργασία",
+ "focusHint": "Μετακινεί αυτήν την εργασία σε εξέλιξη και σήμερα",
+ "noNextAction": "Όλα καθαρά—καμία εκκρεμής εργασία."
},
"notes": {
"loading": "Φόρτωση σημειώσεων...",
@@ -463,7 +487,15 @@
"toggleDropdownMenu": "Εναλλαγή αναπτυσσόμενου μενού",
"projectInitials": "Αρχικά έργου",
"share": "Κοινή χρήση",
- "sharedProject": "Μοιράστηκε με την ομάδα"
+ "sharedProject": "Μοιράστηκε με την ομάδα",
+ "noDueDate": "Χωρίς προθεσμία",
+ "dueToday": "Λήγει σήμερα",
+ "dueIn": "Λήγει σε {{count}} {{unit}}",
+ "overdue": "Έληξε πριν {{count}} {{unit}}",
+ "day": "ημέρα",
+ "days": "ημέρες",
+ "sharedUser": "Κοινόχρηστος χρήστης",
+ "moreSharedUsers": "+{{count}} περισσότεροι χρήστες"
},
"sort": {
"due_date": "Ημερομηνία Λήξης",
@@ -751,7 +783,9 @@
"activity": "Δραστηριότητα",
"lastUpdatedAt": "Τελευταία ενημέρωση στις",
"statusUpdated": "Η κατάσταση ενημερώθηκε με επιτυχία",
- "statusUpdateError": "Αποτυχία ενημέρωσης κατάστασης"
+ "statusUpdateError": "Αποτυχία ενημέρωσης κατάστασης",
+ "updatedAt": "Ενημερώθηκε στις",
+ "upcoming": "επερχόμενο"
},
"dateFormats": {
"long": "EEEE, d MMMM yyyy",
@@ -1269,5 +1303,46 @@
"validationErrors": "Σφάλματα επικύρωσης:",
"versionIncompatible": "Μη συμβατή έκδοση",
"backupVersion": "Έκδοση αντιγράφου ασφαλείας"
+ },
+ "notifications": {
+ "table": {
+ "type": "Τύπος Ειδοποίησης"
+ },
+ "channels": {
+ "inApp": "Εντός της εφαρμογής",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Εργασίες που λήγουν",
+ "overdueTasks": "Εργασίες που έχουν καθυστερήσει",
+ "deferUntil": "Αναβολή έως",
+ "dueProjects": "Έργα που λήγουν",
+ "overdueProjects": "Έργα που έχουν καθυστερήσει"
+ },
+ "descriptions": {
+ "dueTasks": "Εργασίες που λήγουν εντός 24 ωρών",
+ "overdueTasks": "Εργασίες που έχουν περάσει την προθεσμία τους",
+ "deferUntil": "Εργασίες που είναι πλέον διαθέσιμες για εργασία",
+ "dueProjects": "Έργα που λήγουν εντός 24 ωρών",
+ "overdueProjects": "Έργα που έχουν περάσει την προθεσμία τους"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Μη Ρυθμισμένο:",
+ "message": "Για να λάβετε ειδοποιήσεις Telegram, παρακαλώ ρυθμίστε το bot σας στο Telegram στην καρτέλα Telegram."
+ }
+ },
+ "test": {
+ "title": "Δοκιμαστικές Ειδοποιήσεις",
+ "description": "Στείλτε μια δοκιμαστική ειδοποίηση για να δείτε πώς εμφανίζεται στην εφαρμογή και σε ενεργοποιημένα κανάλια (Telegram, κ.λπ.)",
+ "send": "Στείλτε Δοκιμή",
+ "sending": "Αποστολή..."
+ },
+ "info": {
+ "title": "Σημείωση:",
+ "message": "Οι ειδοποιήσεις μέσω Email και Push έρχονται σύντομα. Οι ειδοποιήσεις εντός της εφαρμογής και μέσω Telegram είναι διαθέσιμες αυτή τη στιγμή."
+ }
}
}
diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json
index aef8a66..f8336ec 100644
--- a/public/locales/en/translation.json
+++ b/public/locales/en/translation.json
@@ -148,7 +148,8 @@
"noProject": "No project",
"unknownProject": "Unknown project",
"tasks": "tasks",
- "showingItems": "Showing {{current}} of {{total}} tasks"
+ "showingItems": "Showing {{current}} of {{total}} tasks",
+ "noCompletedTasksToday": "No completed tasks today."
},
"timeline": {
"activityTimeline": "Activity Timeline",
@@ -315,11 +316,7 @@
"skipNextAction": "Skip for now",
"nextActionHint": "Think of the smallest, most concrete step you can take right now to move this project forward.",
"tabs": {
- "general": "General",
- "security": "Security",
- "productivity": "Productivity",
- "telegram": "Telegram",
- "ai": "AI Features"
+ "notifications": "Notification Preferences"
},
"security": "Security Settings",
"changePassword": "Change Password",
@@ -337,7 +334,6 @@
"passwordChangeSuccess": "Password changed successfully!",
"changingPassword": "Changing password...",
"accountSettings": "Account & Preferences",
- "aiProductivityFeatures": "AI & Productivity Features",
"botSetup": "Bot Setup",
"passwordChangeNote": "Password changes will be saved when you click \"Save Changes\" at the bottom of the form.",
"passwordChangeOptional": "Leave password fields empty to update other settings without changing your password.",
@@ -350,7 +346,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Choose how you want to be notified about important events.",
+ "aiFeatures": "AI Features"
},
"productivity": {
"stalledProjects": "Stalled Projects",
@@ -778,6 +776,7 @@
"attachmentsComingSoon": "Attachments feature coming soon",
"activity": "Activity",
"lastUpdatedAt": "Last updated at",
+ "updatedAt": "Updated at",
"status": {
"notStarted": "Not started",
"inProgress": "In progress",
@@ -791,7 +790,8 @@
"deferUntil": "Defer Until",
"noDeferUntil": "No defer until",
"deferUntilUpdated": "Defer until updated successfully",
- "deferUntilUpdateError": "Failed to update defer until"
+ "deferUntilUpdateError": "Failed to update defer until",
+ "upcoming": "upcoming"
},
"subtasks": {
"placeholder": "Add a subtask..."
@@ -830,7 +830,28 @@
"completed_desc": "Finished and done"
},
"showMetrics": "Show metrics",
- "hideMetrics": "Hide metrics"
+ "hideMetrics": "Hide metrics",
+ "progress": "Progress",
+ "taskMomentum": "Task momentum",
+ "activeTasks": "Active tasks",
+ "dueSchedule": "Due schedule",
+ "next14Days": "Next 14 days",
+ "noUpcomingDue": "No due dates in the next 14 days.",
+ "peakDay": "Peak",
+ "none": "None",
+ "next3days": "Next 3 days",
+ "nextWeek": "Next 7 days",
+ "recentCompletion": "Recent completion",
+ "last7And30": "Last 7 & 30 days",
+ "weeklyPace": "Weekly pace",
+ "prevWeekCompleted": "{{count}} prior week",
+ "vsPrevWeek": "vs prev week",
+ "monthlyCompletion": "30-day completions",
+ "last30Days": "Last 30 days",
+ "nextUp": "Next best action",
+ "focusTask": "Most impactful task",
+ "focusHint": "Shifts this task to in progress and today",
+ "noNextAction": "All clear—no outstanding tasks."
},
"projectItem": {
"edit": "Edit",
@@ -840,7 +861,15 @@
"completion": "Completion",
"completionPercentage": "{{percentage}}% complete",
"toggleDropdownMenu": "Toggle dropdown menu",
- "projectInitials": "Project initials"
+ "projectInitials": "Project initials",
+ "noDueDate": "No due date",
+ "dueToday": "Due today",
+ "dueIn": "Due in {{count}} {{unit}}",
+ "overdue": "Overdue {{count}} {{unit}} ago",
+ "day": "day",
+ "days": "days",
+ "sharedUser": "Shared user",
+ "moreSharedUsers": "+{{count}} more users"
},
"areas": {
"title": "Areas",
@@ -1250,5 +1279,46 @@
"validationErrors": "Validation errors:",
"versionIncompatible": "Version Incompatible",
"backupVersion": "Backup version"
+ },
+ "notifications": {
+ "table": {
+ "type": "Notification Type"
+ },
+ "channels": {
+ "inApp": "In-app",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Due Tasks",
+ "overdueTasks": "Overdue Tasks",
+ "deferUntil": "Defer Until",
+ "dueProjects": "Due Projects",
+ "overdueProjects": "Overdue Projects"
+ },
+ "descriptions": {
+ "dueTasks": "Tasks that are due within 24 hours",
+ "overdueTasks": "Tasks that have passed their due date",
+ "deferUntil": "Tasks that are now available to work on",
+ "dueProjects": "Projects that are due within 24 hours",
+ "overdueProjects": "Projects that have passed their due date"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Not Configured:",
+ "message": "To receive Telegram notifications, please configure your Telegram bot in the Telegram tab."
+ }
+ },
+ "test": {
+ "title": "Test Notifications",
+ "description": "Send a test notification to see how it appears in-app and on enabled channels (Telegram, etc.)",
+ "send": "Send Test",
+ "sending": "Sending..."
+ },
+ "info": {
+ "title": "Note:",
+ "message": "Email and Push notifications are coming soon. In-app and Telegram notifications are currently available."
+ }
}
}
diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json
index 701b68f..469398d 100644
--- a/public/locales/es/translation.json
+++ b/public/locales/es/translation.json
@@ -162,7 +162,8 @@
"security": "Seguridad",
"productivity": "Productividad",
"telegram": "Telegram",
- "ai": "Funciones IA"
+ "ai": "Funciones IA",
+ "notifications": "Preferencias de Notificación"
},
"security": "Configuración de Seguridad",
"changePassword": "Cambiar Contraseña",
@@ -180,7 +181,6 @@
"passwordChangeSuccess": "¡Contraseña cambiada exitosamente!",
"changingPassword": "Cambiando contraseña...",
"accountSettings": "Cuenta y Preferencias",
- "aiProductivityFeatures": "Funciones de IA y Productividad",
"botSetup": "Configuración del Bot",
"pollingNote": "El sondeo verifica periódicamente nuevos mensajes de Telegram y los agrega a tu bandeja de entrada.",
"pollingDescription": "El sondeo verifica periódicamente nuevos mensajes de Telegram y los agrega a tu bandeja de entrada.",
@@ -273,7 +273,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Elige cómo deseas ser notificado sobre eventos importantes.",
+ "aiFeatures": "Funciones de IA"
},
"errors": {
"required": "Este campo es obligatorio",
@@ -362,7 +364,8 @@
"tasks": "tareas",
"showingItems": "Mostrando {{current}} de {{total}} tareas",
"open": "Abrir",
- "completed": "Completado"
+ "completed": "Completado",
+ "noCompletedTasksToday": "No hay tareas completadas hoy."
},
"timeline": {
"activityTimeline": "Línea de Tiempo de Actividad",
@@ -442,7 +445,28 @@
"active_desc": "Trabajo activo en curso"
},
"showMetrics": "Mostrar métricas",
- "hideMetrics": "Ocultar métricas"
+ "hideMetrics": "Ocultar métricas",
+ "progress": "Progreso",
+ "taskMomentum": "Impulso de tareas",
+ "activeTasks": "Tareas activas",
+ "dueSchedule": "Cronograma de vencimientos",
+ "next14Days": "Próximos 14 días",
+ "noUpcomingDue": "No hay vencimientos en los próximos 14 días.",
+ "peakDay": "Pico",
+ "none": "Ninguno",
+ "next3days": "Próximos 3 días",
+ "nextWeek": "Próximos 7 días",
+ "recentCompletion": "Finalización reciente",
+ "last7And30": "Últimos 7 y 30 días",
+ "weeklyPace": "Ritmo semanal",
+ "prevWeekCompleted": "{{count}} semana anterior",
+ "vsPrevWeek": "vs semana anterior",
+ "monthlyCompletion": "Finalizaciones de 30 días",
+ "last30Days": "Últimos 30 días",
+ "nextUp": "Siguiente mejor acción",
+ "focusTask": "Tarea más impactante",
+ "focusHint": "Mueve esta tarea a en progreso y hoy",
+ "noNextAction": "Todo despejado: no hay tareas pendientes."
},
"projectItem": {
"edit": "Editar",
@@ -452,7 +476,15 @@
"toggleDropdownMenu": "Alternar menú desplegable",
"projectInitials": "Iniciales del proyecto",
"share": "Compartir",
- "sharedProject": "Compartido con el equipo"
+ "sharedProject": "Compartido con el equipo",
+ "noDueDate": "Sin fecha de vencimiento",
+ "dueToday": "Vence hoy",
+ "dueIn": "Vence en {{count}} {{unit}}",
+ "overdue": "Vencido hace {{count}} {{unit}}",
+ "day": "día",
+ "days": "días",
+ "sharedUser": "Usuario compartido",
+ "moreSharedUsers": "+{{count}} usuarios más"
},
"sort": {
"due_date": "Fecha de Vencimiento",
@@ -760,7 +792,9 @@
"activity": "Actividad",
"lastUpdatedAt": "Última actualización en",
"statusUpdated": "Estado actualizado con éxito",
- "statusUpdateError": "Error al actualizar el estado"
+ "statusUpdateError": "Error al actualizar el estado",
+ "updatedAt": "Actualizado en",
+ "upcoming": "próximo"
},
"dateIndicators": {
"today": "HOY",
@@ -1266,5 +1300,46 @@
"size": "Tamaño",
"contents": "Contenido",
"actions": "Acciones"
+ },
+ "notifications": {
+ "table": {
+ "type": "Tipo de Notificación"
+ },
+ "channels": {
+ "inApp": "En la aplicación",
+ "email": "Correo Electrónico",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Tareas Vencidas",
+ "overdueTasks": "Tareas Atrasadas",
+ "deferUntil": "Aplazar Hasta",
+ "dueProjects": "Proyectos Vencidos",
+ "overdueProjects": "Proyectos Atrasados"
+ },
+ "descriptions": {
+ "dueTasks": "Tareas que vencen en 24 horas",
+ "overdueTasks": "Tareas que han pasado su fecha de vencimiento",
+ "deferUntil": "Tareas que ahora están disponibles para trabajar",
+ "dueProjects": "Proyectos que vencen en 24 horas",
+ "overdueProjects": "Proyectos que han pasado su fecha de vencimiento"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram No Configurado:",
+ "message": "Para recibir notificaciones de Telegram, por favor configura tu bot de Telegram en la pestaña de Telegram."
+ }
+ },
+ "test": {
+ "title": "Notificaciones de Prueba",
+ "description": "Envía una notificación de prueba para ver cómo aparece en la aplicación y en los canales habilitados (Telegram, etc.)",
+ "send": "Enviar prueba",
+ "sending": "Enviando..."
+ },
+ "info": {
+ "title": "Nota:",
+ "message": "Las notificaciones por correo electrónico y Push llegarán pronto. Las notificaciones en la aplicación y de Telegram están disponibles actualmente."
+ }
}
}
diff --git a/public/locales/fi/translation.json b/public/locales/fi/translation.json
index e2bc84c..ecc6f92 100644
--- a/public/locales/fi/translation.json
+++ b/public/locales/fi/translation.json
@@ -149,7 +149,8 @@
"overdue": "Erääntynyt",
"planned": "Suunniteltu",
"open": "Avaa",
- "completed": "Valmis"
+ "completed": "Valmis",
+ "noCompletedTasksToday": "Ei suoritettuja tehtäviä tänään."
},
"timeline": {
"activityTimeline": "Toiminta-aikajana",
@@ -315,7 +316,8 @@
"security": "Turvallisuus",
"productivity": "Tuottavuus",
"telegram": "Telegram",
- "ai": "AI-ominaisuudet"
+ "ai": "AI-ominaisuudet",
+ "notifications": "Ilmoitusasetukset"
},
"security": "Turvallisuusasetukset",
"changePassword": "Vaihda salasana",
@@ -333,7 +335,6 @@
"passwordChangeSuccess": "Salasana vaihdettu onnistuneesti!",
"changingPassword": "Salasanan vaihtaminen...",
"accountSettings": "Tili & Asetukset",
- "aiProductivityFeatures": "AI & Tuottavuusominaisuudet",
"botSetup": "Botti-asetukset",
"passwordChangeNote": "Salasanan muutokset tallennetaan, kun napsautat \"Tallenna muutokset\" lomakkeen alareunassa.",
"passwordChangeOptional": "Jätä salasanakentät tyhjiksi päivittääksesi muita asetuksia ilman salasanan vaihtamista.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Valitse, miten haluat saada ilmoituksia tärkeistä tapahtumista.",
+ "aiFeatures": "AI-ominaisuudet"
},
"productivity": {
"stalledProjects": "Jumiutuneet projektit",
@@ -797,7 +800,9 @@
"activity": "Toiminta",
"lastUpdatedAt": "Viimeksi päivitetty",
"statusUpdated": "Tila päivitetty onnistuneesti",
- "statusUpdateError": "Tilapäivitys epäonnistui"
+ "statusUpdateError": "Tilapäivitys epäonnistui",
+ "updatedAt": "Päivitetty",
+ "upcoming": "tulossa"
},
"projects": {
"loading": "Ladataan projekteja...",
@@ -833,7 +838,28 @@
"active_desc": "Aktiivista työtä tapahtuu"
},
"showMetrics": "Näytä mittarit",
- "hideMetrics": "Piilota mittarit"
+ "hideMetrics": "Piilota mittarit",
+ "progress": "Edistyminen",
+ "taskMomentum": "Tehtävien vauhti",
+ "activeTasks": "Aktiiviset tehtävät",
+ "dueSchedule": "Eräpäiväaikataulu",
+ "next14Days": "Seuraavat 14 päivää",
+ "noUpcomingDue": "Ei määräaikoja seuraavan 14 päivän aikana.",
+ "peakDay": "Huippu",
+ "none": "Ei mitään",
+ "next3days": "Seuraavat 3 päivää",
+ "nextWeek": "Seuraavat 7 päivää",
+ "recentCompletion": "Viimeaikaiset suoritukset",
+ "last7And30": "Viimeiset 7 ja 30 päivää",
+ "weeklyPace": "Viikkovauhti",
+ "prevWeekCompleted": "{{count}} edellinen viikko",
+ "vsPrevWeek": "vs edellinen viikko",
+ "monthlyCompletion": "30 päivän suoritukset",
+ "last30Days": "Viimeiset 30 päivää",
+ "nextUp": "Seuraava paras toiminto",
+ "focusTask": "Vaikuttavin tehtävä",
+ "focusHint": "Siirtää tehtävän tilaan käynnissä ja tänään",
+ "noNextAction": "Kaikki kunnossa - ei avoimia tehtäviä."
},
"projectItem": {
"edit": "Muokkaa",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Vaihda avattavaa valikkoa",
"projectInitials": "Projektin lyhenteet",
"share": "Jaa",
- "sharedProject": "Jaettu tiimille"
+ "sharedProject": "Jaettu tiimille",
+ "noDueDate": "Ei määräaikaa",
+ "dueToday": "Erääntyy tänään",
+ "dueIn": "Erääntyy {{count}} {{unit}} kuluttua",
+ "overdue": "Myöhässä {{count}} {{unit}}",
+ "day": "päivä",
+ "days": "päivää",
+ "sharedUser": "Jaettu käyttäjä",
+ "moreSharedUsers": "+{{count}} lisää käyttäjää"
},
"areas": {
"title": "Alueet",
@@ -1265,5 +1299,46 @@
"validationErrors": "Validointivirheet:",
"versionIncompatible": "Versio yhteensopimaton",
"backupVersion": "Varmuuskopion versio"
+ },
+ "notifications": {
+ "table": {
+ "type": "Ilmoituksen tyyppi"
+ },
+ "channels": {
+ "inApp": "Sovelluksessa",
+ "email": "Sähköposti",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Erääntyneet tehtävät",
+ "overdueTasks": "Myöhästyneet tehtävät",
+ "deferUntil": "Viivästytä kunnes",
+ "dueProjects": "Erääntyneet projektit",
+ "overdueProjects": "Myöhästyneet projektit"
+ },
+ "descriptions": {
+ "dueTasks": "Tehtävät, jotka erääntyvät 24 tunnin sisällä",
+ "overdueTasks": "Tehtävät, joiden eräpäivä on mennyt",
+ "deferUntil": "Tehtävät, jotka ovat nyt saatavilla työstettäväksi",
+ "dueProjects": "Projektit, jotka erääntyvät 24 tunnin sisällä",
+ "overdueProjects": "Projektit, joiden eräpäivä on mennyt"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram ei ole konfiguroitu:",
+ "message": "Saadaksesi Telegram-ilmoituksia, konfiguroi Telegram-bottisi Telegram-välilehdellä."
+ }
+ },
+ "test": {
+ "title": "Testi-ilmoitukset",
+ "description": "Lähetä testiviesti nähdäksesi, miltä se näyttää sovelluksessa ja käytössä olevilla kanavilla (Telegram, jne.)",
+ "send": "Lähetä testi",
+ "sending": "Lähetetään..."
+ },
+ "info": {
+ "title": "Huom:",
+ "message": "Sähköposti- ja Push-ilmoitukset ovat tulossa pian. Sovelluksen sisäiset ja Telegram-ilmoitukset ovat tällä hetkellä saatavilla."
+ }
}
}
diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json
index 68bc369..4cb0fa7 100644
--- a/public/locales/fr/translation.json
+++ b/public/locales/fr/translation.json
@@ -149,7 +149,8 @@
"tasks": "tâches",
"showingItems": "Affichage de {{current}} sur {{total}} tâches",
"open": "Ouvrir",
- "completed": "Terminé"
+ "completed": "Terminé",
+ "noCompletedTasksToday": "Aucune tâche terminée aujourd'hui."
},
"timeline": {
"activityTimeline": "Chronologie d'Activité",
@@ -308,7 +309,8 @@
"security": "Sécurité",
"productivity": "Productivité",
"telegram": "Telegram",
- "ai": "Fonctionnalités IA"
+ "ai": "Fonctionnalités IA",
+ "notifications": "Préférences de Notification"
},
"security": "Paramètres de sécurité",
"changePassword": "Changer le mot de passe",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Mot de passe changé avec succès !",
"changingPassword": "Changement de mot de passe...",
"accountSettings": "Compte & Préférences",
- "aiProductivityFeatures": "Fonctionnalités d'IA & de Productivité",
"botSetup": "Configuration du Bot",
"passwordChangeNote": "Les modifications de mot de passe seront enregistrées lorsque vous cliquerez sur \"Enregistrer les modifications\" en bas du formulaire.",
"passwordChangeOptional": "Laissez les champs de mot de passe vides pour mettre à jour d'autres paramètres sans changer votre mot de passe.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Choisissez comment vous souhaitez être informé des événements importants.",
+ "aiFeatures": "Fonctionnalités d'IA"
},
"productivity": {
"stalledProjects": "Projets Bloqués",
@@ -797,7 +800,9 @@
"activity": "Activité",
"lastUpdatedAt": "Dernière mise à jour à",
"statusUpdated": "Statut mis à jour avec succès",
- "statusUpdateError": "Échec de la mise à jour du statut"
+ "statusUpdateError": "Échec de la mise à jour du statut",
+ "updatedAt": "Mis à jour à",
+ "upcoming": "à venir"
},
"projects": {
"loading": "Chargement des projets...",
@@ -833,7 +838,28 @@
"active_desc": "Travail actif en cours"
},
"showMetrics": "Afficher les métriques",
- "hideMetrics": "Masquer les métriques"
+ "hideMetrics": "Masquer les métriques",
+ "progress": "Progrès",
+ "taskMomentum": "Dynamique des tâches",
+ "activeTasks": "Tâches actives",
+ "dueSchedule": "Calendrier d'échéances",
+ "next14Days": "Prochains 14 jours",
+ "noUpcomingDue": "Aucune échéance dans les 14 prochains jours.",
+ "peakDay": "Pic",
+ "none": "Aucun",
+ "next3days": "Prochains 3 jours",
+ "nextWeek": "Prochains 7 jours",
+ "recentCompletion": "Achèvement récent",
+ "last7And30": "Derniers 7 & 30 jours",
+ "weeklyPace": "Rythme hebdomadaire",
+ "prevWeekCompleted": "{{count}} semaine précédente",
+ "vsPrevWeek": "vs semaine précédente",
+ "monthlyCompletion": "Achèvements sur 30 jours",
+ "last30Days": "Derniers 30 jours",
+ "nextUp": "Meilleure action suivante",
+ "focusTask": "Tâche la plus impactante",
+ "focusHint": "Déplace cette tâche vers en cours et aujourd'hui",
+ "noNextAction": "Tout est clair - aucune tâche en attente."
},
"projectItem": {
"edit": "Modifier",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Basculer le menu déroulant",
"projectInitials": "Initiales du projet",
"share": "Partager",
- "sharedProject": "Partagé avec l'équipe"
+ "sharedProject": "Partagé avec l'équipe",
+ "noDueDate": "Pas de date d'échéance",
+ "dueToday": "Échéance aujourd'hui",
+ "dueIn": "Échéance dans {{count}} {{unit}}",
+ "overdue": "En retard de {{count}} {{unit}}",
+ "day": "jour",
+ "days": "jours",
+ "sharedUser": "Utilisateur partagé",
+ "moreSharedUsers": "+{{count}} utilisateurs de plus"
},
"areas": {
"title": "Zones",
@@ -1265,5 +1299,46 @@
"validationErrors": "Erreurs de validation :",
"versionIncompatible": "Version incompatible",
"backupVersion": "Version de la sauvegarde"
+ },
+ "notifications": {
+ "table": {
+ "type": "Type de Notification"
+ },
+ "channels": {
+ "inApp": "Dans l'application",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Tâches Échues",
+ "overdueTasks": "Tâches En Retard",
+ "deferUntil": "Différer Jusqu'à",
+ "dueProjects": "Projets Échus",
+ "overdueProjects": "Projets En Retard"
+ },
+ "descriptions": {
+ "dueTasks": "Tâches qui doivent être effectuées dans les 24 heures",
+ "overdueTasks": "Tâches dont la date limite est dépassée",
+ "deferUntil": "Tâches qui sont maintenant disponibles pour travailler",
+ "dueProjects": "Projets qui doivent être réalisés dans les 24 heures",
+ "overdueProjects": "Projets dont la date limite est dépassée"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Non Configuré :",
+ "message": "Pour recevoir des notifications Telegram, veuillez configurer votre bot Telegram dans l'onglet Telegram."
+ }
+ },
+ "test": {
+ "title": "Tester les Notifications",
+ "description": "Envoyer une notification de test pour voir comment elle apparaît dans l'application et sur les canaux activés (Telegram, etc.)",
+ "send": "Envoyer un test",
+ "sending": "Envoi en cours..."
+ },
+ "info": {
+ "title": "Remarque :",
+ "message": "Les notifications par e-mail et push arrivent bientôt. Les notifications dans l'application et sur Telegram sont actuellement disponibles."
+ }
}
}
diff --git a/public/locales/id/translation.json b/public/locales/id/translation.json
index e1633e0..4e6ac42 100644
--- a/public/locales/id/translation.json
+++ b/public/locales/id/translation.json
@@ -149,7 +149,8 @@
"overdue": "Terlambat",
"planned": "Direncanakan",
"open": "Buka",
- "completed": "Selesai"
+ "completed": "Selesai",
+ "noCompletedTasksToday": "Tidak ada tugas yang diselesaikan hari ini."
},
"timeline": {
"activityTimeline": "Garis Waktu Aktivitas",
@@ -308,7 +309,8 @@
"security": "Keamanan",
"productivity": "Produktivitas",
"telegram": "Telegram",
- "ai": "Fitur AI"
+ "ai": "Fitur AI",
+ "notifications": "Preferensi Notifikasi"
},
"security": "Pengaturan Keamanan",
"changePassword": "Ubah Kata Sandi",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Kata sandi berhasil diubah!",
"changingPassword": "Mengubah kata sandi...",
"accountSettings": "Akun & Preferensi",
- "aiProductivityFeatures": "Fitur AI & Produktivitas",
"botSetup": "Pengaturan Bot",
"passwordChangeNote": "Perubahan kata sandi akan disimpan ketika Anda mengklik \"Simpan Perubahan\" di bagian bawah formulir.",
"passwordChangeOptional": "Biarkan kolom kata sandi kosong untuk memperbarui pengaturan lain tanpa mengubah kata sandi Anda.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Pilih bagaimana Anda ingin diberi tahu tentang peristiwa penting.",
+ "aiFeatures": "Fitur AI"
},
"productivity": {
"stalledProjects": "Proyek Terhenti",
@@ -797,7 +800,9 @@
"activity": "Aktivitas",
"lastUpdatedAt": "Terakhir diperbarui pada",
"statusUpdated": "Status berhasil diperbarui",
- "statusUpdateError": "Gagal memperbarui status"
+ "statusUpdateError": "Gagal memperbarui status",
+ "updatedAt": "Diperbarui pada",
+ "upcoming": "mendatang"
},
"projects": {
"loading": "Memuat proyek...",
@@ -833,7 +838,28 @@
"active_desc": "Pekerjaan aktif sedang berlangsung"
},
"showMetrics": "Tampilkan metrik",
- "hideMetrics": "Sembunyikan metrik"
+ "hideMetrics": "Sembunyikan metrik",
+ "progress": "Kemajuan",
+ "taskMomentum": "Momentum tugas",
+ "activeTasks": "Tugas aktif",
+ "dueSchedule": "Jadwal jatuh tempo",
+ "next14Days": "14 hari ke depan",
+ "noUpcomingDue": "Tidak ada tanggal jatuh tempo dalam 14 hari ke depan.",
+ "peakDay": "Puncak",
+ "none": "Tidak ada",
+ "next3days": "3 hari ke depan",
+ "nextWeek": "7 hari ke depan",
+ "recentCompletion": "Penyelesaian terkini",
+ "last7And30": "7 & 30 hari terakhir",
+ "weeklyPace": "Kecepatan mingguan",
+ "prevWeekCompleted": "{{count}} minggu sebelumnya",
+ "vsPrevWeek": "vs minggu sebelumnya",
+ "monthlyCompletion": "Penyelesaian 30 hari",
+ "last30Days": "30 hari terakhir",
+ "nextUp": "Tindakan terbaik selanjutnya",
+ "focusTask": "Tugas paling berdampak",
+ "focusHint": "Memindahkan tugas ini ke sedang berlangsung dan hari ini",
+ "noNextAction": "Semua bersih—tidak ada tugas tertunda."
},
"projectItem": {
"edit": "Sunting",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Alihkan menu dropdown",
"projectInitials": "Inisial proyek",
"share": "Bagikan",
- "sharedProject": "Dibagikan dengan tim"
+ "sharedProject": "Dibagikan dengan tim",
+ "noDueDate": "Tidak ada tanggal jatuh tempo",
+ "dueToday": "Jatuh tempo hari ini",
+ "dueIn": "Jatuh tempo dalam {{count}} {{unit}}",
+ "overdue": "Terlambat {{count}} {{unit}}",
+ "day": "hari",
+ "days": "hari",
+ "sharedUser": "Pengguna bersama",
+ "moreSharedUsers": "+{{count}} pengguna lagi"
},
"areas": {
"title": "Area",
@@ -1265,5 +1299,46 @@
"validationErrors": "Kesalahan validasi:",
"versionIncompatible": "Versi Tidak Kompatibel",
"backupVersion": "Versi cadangan"
+ },
+ "notifications": {
+ "table": {
+ "type": "Jenis Notifikasi"
+ },
+ "channels": {
+ "inApp": "Dalam aplikasi",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Tugas Jatuh Tempo",
+ "overdueTasks": "Tugas Terlambat",
+ "deferUntil": "Tunda Hingga",
+ "dueProjects": "Proyek Jatuh Tempo",
+ "overdueProjects": "Proyek Terlambat"
+ },
+ "descriptions": {
+ "dueTasks": "Tugas yang jatuh tempo dalam 24 jam",
+ "overdueTasks": "Tugas yang telah melewati tanggal jatuh tempo",
+ "deferUntil": "Tugas yang sekarang tersedia untuk dikerjakan",
+ "dueProjects": "Proyek yang jatuh tempo dalam 24 jam",
+ "overdueProjects": "Proyek yang telah melewati tanggal jatuh tempo"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Tidak Dikonfigurasi:",
+ "message": "Untuk menerima notifikasi Telegram, silakan konfigurasikan bot Telegram Anda di tab Telegram."
+ }
+ },
+ "test": {
+ "title": "Notifikasi Uji",
+ "description": "Kirim notifikasi percobaan untuk melihat bagaimana tampilannya di dalam aplikasi dan di saluran yang diaktifkan (Telegram, dll.)",
+ "send": "Kirim Percobaan",
+ "sending": "Mengirim..."
+ },
+ "info": {
+ "title": "Catatan:",
+ "message": "Notifikasi Email dan Push akan segera hadir. Notifikasi di dalam aplikasi dan Telegram saat ini tersedia."
+ }
}
}
diff --git a/public/locales/it/translation.json b/public/locales/it/translation.json
index 5213144..21c91b9 100644
--- a/public/locales/it/translation.json
+++ b/public/locales/it/translation.json
@@ -149,7 +149,8 @@
"overdue": "Scaduto",
"planned": "Pianificato",
"open": "Apri",
- "completed": "Completato"
+ "completed": "Completato",
+ "noCompletedTasksToday": "Nessuna attività completata oggi."
},
"timeline": {
"activityTimeline": "Timeline delle Attività",
@@ -297,7 +298,8 @@
"security": "Sicurezza",
"productivity": "Produttività",
"telegram": "Telegram",
- "ai": "Funzioni AI"
+ "ai": "Funzioni AI",
+ "notifications": "Preferenze di Notifica"
},
"security": "Impostazioni Sicurezza",
"changePassword": "Cambia Password",
@@ -315,7 +317,6 @@
"passwordChangeSuccess": "Password cambiata con successo!",
"changingPassword": "Cambio password...",
"accountSettings": "Account e Preferenze",
- "aiProductivityFeatures": "Funzioni AI e Produttività",
"botSetup": "Configurazione Bot",
"passwordChangeNote": "Le modifiche alla password verranno salvate quando clicchi \"Salva Modifiche\" in fondo al modulo.",
"passwordChangeOptional": "Lascia vuoti i campi password per aggiornare altre impostazioni senza cambiare la password.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Scegli come desideri essere avvisato riguardo eventi importanti.",
+ "aiFeatures": "Funzionalità AI"
},
"productivity": {
"stalledProjects": "Progetti Bloccati",
@@ -797,7 +800,9 @@
"activity": "Attività",
"lastUpdatedAt": "Ultimo aggiornamento il",
"statusUpdated": "Stato aggiornato con successo",
- "statusUpdateError": "Aggiornamento dello stato non riuscito"
+ "statusUpdateError": "Aggiornamento dello stato non riuscito",
+ "updatedAt": "Aggiornato il",
+ "upcoming": "imminente"
},
"projects": {
"loading": "Caricamento progetti...",
@@ -833,7 +838,28 @@
"active_desc": "Lavoro attivo in corso"
},
"showMetrics": "Mostra metriche",
- "hideMetrics": "Nascondi metriche"
+ "hideMetrics": "Nascondi metriche",
+ "progress": "Progresso",
+ "taskMomentum": "Slancio delle attività",
+ "activeTasks": "Attività attive",
+ "dueSchedule": "Programma delle scadenze",
+ "next14Days": "Prossimi 14 giorni",
+ "noUpcomingDue": "Nessuna scadenza nei prossimi 14 giorni.",
+ "peakDay": "Picco",
+ "none": "Nessuno",
+ "next3days": "Prossimi 3 giorni",
+ "nextWeek": "Prossimi 7 giorni",
+ "recentCompletion": "Completamento recente",
+ "last7And30": "Ultimi 7 e 30 giorni",
+ "weeklyPace": "Ritmo settimanale",
+ "prevWeekCompleted": "{{count}} settimana precedente",
+ "vsPrevWeek": "vs settimana precedente",
+ "monthlyCompletion": "Completamenti di 30 giorni",
+ "last30Days": "Ultimi 30 giorni",
+ "nextUp": "Prossima azione migliore",
+ "focusTask": "Attività più impattante",
+ "focusHint": "Sposta questa attività su in corso e oggi",
+ "noNextAction": "Tutto a posto—nessuna attività in sospeso."
},
"projectItem": {
"edit": "Modifica",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Attiva/disattiva menu a discesa",
"projectInitials": "Iniziali progetto",
"share": "Condividi",
- "sharedProject": "Condiviso con il team"
+ "sharedProject": "Condiviso con il team",
+ "noDueDate": "Nessuna scadenza",
+ "dueToday": "Scade oggi",
+ "dueIn": "Scade tra {{count}} {{unit}}",
+ "overdue": "Scaduto {{count}} {{unit}} fa",
+ "day": "giorno",
+ "days": "giorni",
+ "sharedUser": "Utente condiviso",
+ "moreSharedUsers": "+{{count}} altri utenti"
},
"areas": {
"title": "Aree",
@@ -1265,5 +1299,46 @@
"validationErrors": "Errori di convalida:",
"versionIncompatible": "Versione incompatibile",
"backupVersion": "Versione del backup"
+ },
+ "notifications": {
+ "table": {
+ "type": "Tipo di Notifica"
+ },
+ "channels": {
+ "inApp": "In-app",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Compiti Scaduti",
+ "overdueTasks": "Compiti In Ritardo",
+ "deferUntil": "Rimanda Fino a",
+ "dueProjects": "Progetti Scaduti",
+ "overdueProjects": "Progetti In Ritardo"
+ },
+ "descriptions": {
+ "dueTasks": "Compiti che scadono entro 24 ore",
+ "overdueTasks": "Compiti che hanno superato la loro data di scadenza",
+ "deferUntil": "Compiti che sono ora disponibili per lavorare",
+ "dueProjects": "Progetti che scadono entro 24 ore",
+ "overdueProjects": "Progetti che hanno superato la loro data di scadenza"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Non Configurato:",
+ "message": "Per ricevere notifiche Telegram, per favore configura il tuo bot Telegram nella scheda Telegram."
+ }
+ },
+ "test": {
+ "title": "Test delle Notifiche",
+ "description": "Invia una notifica di prova per vedere come appare nell'app e sui canali abilitati (Telegram, ecc.)",
+ "send": "Invia Test",
+ "sending": "Invio in corso..."
+ },
+ "info": {
+ "title": "Nota:",
+ "message": "Le notifiche via Email e Push arriveranno presto. Le notifiche in-app e su Telegram sono attualmente disponibili."
+ }
}
}
diff --git a/public/locales/jp/translation.json b/public/locales/jp/translation.json
index 056eee0..44a6df7 100644
--- a/public/locales/jp/translation.json
+++ b/public/locales/jp/translation.json
@@ -149,7 +149,8 @@
"overdue": "期限切れ",
"planned": "計画中",
"open": "開く",
- "completed": "完了"
+ "completed": "完了",
+ "noCompletedTasksToday": "本日完了したタスクはありません。"
},
"timeline": {
"activityTimeline": "アクティビティタイムライン",
@@ -222,7 +223,8 @@
"security": "セキュリティ",
"productivity": "生産性",
"telegram": "Telegram",
- "ai": "AI機能"
+ "ai": "AI機能",
+ "notifications": "通知設定"
},
"security": "セキュリティ設定",
"changePassword": "パスワード変更",
@@ -240,7 +242,6 @@
"passwordChangeSuccess": "パスワードが正常に変更されました!",
"changingPassword": "パスワードを変更中...",
"accountSettings": "アカウント設定",
- "aiProductivityFeatures": "AI & 生産性機能",
"botSetup": "ボット設定",
"successMessage": "プロフィールが正常に更新されました!",
"settings": "プロフィール設定",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "重要なイベントについて通知を受け取る方法を選択してください。",
+ "aiFeatures": "AI機能"
},
"nextTask": {
"suggestion": "進行中のものがないので、こちらから始めてみませんか",
@@ -607,7 +610,28 @@
"active_desc": "アクティブな作業が行われています"
},
"showMetrics": "メトリクスを表示",
- "hideMetrics": "メトリクスを非表示"
+ "hideMetrics": "メトリクスを非表示",
+ "progress": "進捗",
+ "taskMomentum": "タスクの勢い",
+ "activeTasks": "アクティブなタスク",
+ "dueSchedule": "期限スケジュール",
+ "next14Days": "今後14日間",
+ "noUpcomingDue": "今後14日間に期限はありません。",
+ "peakDay": "ピーク",
+ "none": "なし",
+ "next3days": "今後3日間",
+ "nextWeek": "今後7日間",
+ "recentCompletion": "最近の完了",
+ "last7And30": "過去7日と30日",
+ "weeklyPace": "週間ペース",
+ "prevWeekCompleted": "{{count}} 前週",
+ "vsPrevWeek": "対前週",
+ "monthlyCompletion": "30日間の完了",
+ "last30Days": "過去30日",
+ "nextUp": "次の最善の行動",
+ "focusTask": "最も影響力のあるタスク",
+ "focusHint": "このタスクを進行中と今日に移動",
+ "noNextAction": "すべて完了—未処理のタスクはありません。"
},
"projectItem": {
"edit": "編集",
@@ -617,7 +641,15 @@
"toggleDropdownMenu": "ドロップダウンメニューを切り替え",
"projectInitials": "プロジェクトの頭文字",
"share": "共有",
- "sharedProject": "チームと共有"
+ "sharedProject": "チームと共有",
+ "noDueDate": "期限なし",
+ "dueToday": "今日期限",
+ "dueIn": "{{count}} {{unit}}後に期限",
+ "overdue": "{{count}} {{unit}}前に期限切れ",
+ "day": "日",
+ "days": "日",
+ "sharedUser": "共有ユーザー",
+ "moreSharedUsers": "+{{count}}人のユーザー"
},
"areas": {
"title": "エリア",
@@ -865,7 +897,9 @@
"activity": "アクティビティ",
"lastUpdatedAt": "最終更新日時",
"statusUpdated": "ステータスが正常に更新されました",
- "statusUpdateError": "ステータスの更新に失敗しました"
+ "statusUpdateError": "ステータスの更新に失敗しました",
+ "updatedAt": "更新日時",
+ "upcoming": "今後"
},
"calendar": {
"month": "月",
@@ -1265,5 +1299,46 @@
"validationErrors": "検証エラー:",
"versionIncompatible": "バージョンが互換性がありません",
"backupVersion": "バックアップバージョン"
+ },
+ "notifications": {
+ "table": {
+ "type": "通知タイプ"
+ },
+ "channels": {
+ "inApp": "アプリ内",
+ "email": "メール",
+ "push": "プッシュ",
+ "telegram": "テレグラム"
+ },
+ "types": {
+ "dueTasks": "期限内のタスク",
+ "overdueTasks": "期限切れのタスク",
+ "deferUntil": "延期するまで",
+ "dueProjects": "期限内のプロジェクト",
+ "overdueProjects": "期限切れのプロジェクト"
+ },
+ "descriptions": {
+ "dueTasks": "24時間以内に期限が来るタスク",
+ "overdueTasks": "期限を過ぎたタスク",
+ "deferUntil": "作業可能になったタスク",
+ "dueProjects": "24時間以内に期限が来るプロジェクト",
+ "overdueProjects": "期限を過ぎたプロジェクト"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "テレグラムが設定されていません:",
+ "message": "テレグラム通知を受け取るには、テレグラムタブでテレグラムボットを設定してください。"
+ }
+ },
+ "test": {
+ "title": "通知テスト",
+ "description": "テスト通知を送信して、アプリ内および有効なチャネル(Telegramなど)での表示を確認します。",
+ "send": "テストを送信",
+ "sending": "送信中..."
+ },
+ "info": {
+ "title": "注意:",
+ "message": "メールおよびプッシュ通知は近日中に提供予定です。アプリ内およびTelegram通知は現在利用可能です。"
+ }
}
}
diff --git a/public/locales/ko/translation.json b/public/locales/ko/translation.json
index 0607e31..bd372a7 100644
--- a/public/locales/ko/translation.json
+++ b/public/locales/ko/translation.json
@@ -149,7 +149,8 @@
"overdue": "연체",
"planned": "계획됨",
"open": "열기",
- "completed": "완료됨"
+ "completed": "완료됨",
+ "noCompletedTasksToday": "오늘 완료된 작업이 없습니다."
},
"timeline": {
"activityTimeline": "활동 타임라인",
@@ -308,7 +309,8 @@
"security": "보안",
"productivity": "생산성",
"telegram": "텔레그램",
- "ai": "AI 기능"
+ "ai": "AI 기능",
+ "notifications": "알림 설정"
},
"security": "보안 설정",
"changePassword": "비밀번호 변경",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "비밀번호가 성공적으로 변경되었습니다!",
"changingPassword": "비밀번호를 변경하는 중...",
"accountSettings": "계정 및 기본 설정",
- "aiProductivityFeatures": "AI 및 생산성 기능",
"botSetup": "봇 설정",
"passwordChangeNote": "비밀번호 변경 사항은 양식 하단의 \"변경 사항 저장\"을 클릭할 때 저장됩니다.",
"passwordChangeOptional": "비밀번호 필드를 비워 두면 비밀번호를 변경하지 않고 다른 설정을 업데이트할 수 있습니다.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "중요한 이벤트에 대한 알림 방식을 선택하세요.",
+ "aiFeatures": "AI 기능"
},
"productivity": {
"stalledProjects": "정체된 프로젝트",
@@ -797,7 +800,9 @@
"activity": "활동",
"lastUpdatedAt": "마지막 업데이트 시각",
"statusUpdated": "상태가 성공적으로 업데이트되었습니다",
- "statusUpdateError": "상태 업데이트에 실패했습니다"
+ "statusUpdateError": "상태 업데이트에 실패했습니다",
+ "updatedAt": "업데이트 날짜",
+ "upcoming": "예정"
},
"projects": {
"loading": "프로젝트 로딩 중...",
@@ -833,7 +838,28 @@
"active_desc": "활동 중인 작업"
},
"showMetrics": "메트릭 표시",
- "hideMetrics": "메트릭 숨기기"
+ "hideMetrics": "메트릭 숨기기",
+ "progress": "진행률",
+ "taskMomentum": "작업 추진력",
+ "activeTasks": "활성 작업",
+ "dueSchedule": "마감 일정",
+ "next14Days": "다음 14일",
+ "noUpcomingDue": "다음 14일 이내 마감일이 없습니다.",
+ "peakDay": "최고",
+ "none": "없음",
+ "next3days": "다음 3일",
+ "nextWeek": "다음 7일",
+ "recentCompletion": "최근 완료",
+ "last7And30": "최근 7일 및 30일",
+ "weeklyPace": "주간 속도",
+ "prevWeekCompleted": "{{count}} 이전 주",
+ "vsPrevWeek": "vs 이전 주",
+ "monthlyCompletion": "30일 완료",
+ "last30Days": "최근 30일",
+ "nextUp": "다음 최선의 조치",
+ "focusTask": "가장 영향력 있는 작업",
+ "focusHint": "이 작업을 진행 중 및 오늘로 이동",
+ "noNextAction": "모두 완료 - 미완료 작업 없음."
},
"projectItem": {
"edit": "편집",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "드롭다운 메뉴 전환",
"projectInitials": "프로젝트 약어",
"share": "공유",
- "sharedProject": "팀과 공유됨"
+ "sharedProject": "팀과 공유됨",
+ "noDueDate": "마감일 없음",
+ "dueToday": "오늘 마감",
+ "dueIn": "{{count}} {{unit}} 후 마감",
+ "overdue": "{{count}} {{unit}} 전 만료",
+ "day": "일",
+ "days": "일",
+ "sharedUser": "공유 사용자",
+ "moreSharedUsers": "+{{count}}명 더 보기"
},
"areas": {
"title": "영역",
@@ -1265,5 +1299,46 @@
"validationErrors": "유효성 검사 오류:",
"versionIncompatible": "버전 호환성 없음",
"backupVersion": "백업 버전"
+ },
+ "notifications": {
+ "table": {
+ "type": "알림 유형"
+ },
+ "channels": {
+ "inApp": "앱 내",
+ "email": "이메일",
+ "push": "푸시",
+ "telegram": "텔레그램"
+ },
+ "types": {
+ "dueTasks": "기한이 있는 작업",
+ "overdueTasks": "연체된 작업",
+ "deferUntil": "연기할 때까지",
+ "dueProjects": "기한이 있는 프로젝트",
+ "overdueProjects": "연체된 프로젝트"
+ },
+ "descriptions": {
+ "dueTasks": "24시간 이내에 기한이 도래하는 작업",
+ "overdueTasks": "기한이 지난 작업",
+ "deferUntil": "현재 작업할 수 있는 작업",
+ "dueProjects": "24시간 이내에 기한이 도래하는 프로젝트",
+ "overdueProjects": "기한이 지난 프로젝트"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "텔레그램 미설정:",
+ "message": "텔레그램 알림을 받으려면 텔레그램 탭에서 텔레그램 봇을 설정하세요."
+ }
+ },
+ "test": {
+ "title": "테스트 알림",
+ "description": "테스트 알림을 보내어 앱 내에서 및 활성화된 채널(텔레그램 등)에서 어떻게 표시되는지 확인하세요.",
+ "send": "테스트 보내기",
+ "sending": "전송 중..."
+ },
+ "info": {
+ "title": "참고:",
+ "message": "이메일 및 푸시 알림이 곧 제공됩니다. 현재 앱 내 및 텔레그램 알림이 가능합니다."
+ }
}
}
diff --git a/public/locales/nl/translation.json b/public/locales/nl/translation.json
index e94ce6a..73d22d0 100644
--- a/public/locales/nl/translation.json
+++ b/public/locales/nl/translation.json
@@ -149,7 +149,8 @@
"overdue": "Te laat",
"planned": "Gepland",
"open": "Open",
- "completed": "Voltooid"
+ "completed": "Voltooid",
+ "noCompletedTasksToday": "Geen voltooide taken vandaag."
},
"timeline": {
"activityTimeline": "Activiteit Tijdlijn",
@@ -308,7 +309,8 @@
"security": "Beveiliging",
"productivity": "Productiviteit",
"telegram": "Telegram",
- "ai": "AI-functies"
+ "ai": "AI-functies",
+ "notifications": "Meldingsvoorkeuren"
},
"security": "Beveiligingsinstellingen",
"changePassword": "Wachtwoord wijzigen",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Wachtwoord succesvol gewijzigd!",
"changingPassword": "Wachtwoord aan het wijzigen...",
"accountSettings": "Account & Voorkeuren",
- "aiProductivityFeatures": "AI & Productiviteitsfuncties",
"botSetup": "Bot Instellingen",
"passwordChangeNote": "Wachtwoordwijzigingen worden opgeslagen wanneer je op \"Wijzigingen Opslaan\" onderaan het formulier klikt.",
"passwordChangeOptional": "Laat de wachtwoordvelden leeg om andere instellingen bij te werken zonder je wachtwoord te wijzigen.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Kies hoe u op de hoogte wilt worden gesteld van belangrijke gebeurtenissen.",
+ "aiFeatures": "AI-functies"
},
"productivity": {
"stalledProjects": "Stagnerende Projecten",
@@ -797,7 +800,9 @@
"activity": "Activiteit",
"lastUpdatedAt": "Laatst bijgewerkt op",
"statusUpdated": "Status succesvol bijgewerkt",
- "statusUpdateError": "Status bijwerken mislukt"
+ "statusUpdateError": "Status bijwerken mislukt",
+ "updatedAt": "Bijgewerkt op",
+ "upcoming": "komend"
},
"projects": {
"loading": "Projecten laden...",
@@ -833,7 +838,28 @@
"active_desc": "Actief werk aan de gang"
},
"showMetrics": "Toon statistieken",
- "hideMetrics": "Verberg statistieken"
+ "hideMetrics": "Verberg statistieken",
+ "progress": "Voortgang",
+ "taskMomentum": "Taakmomentum",
+ "activeTasks": "Actieve taken",
+ "dueSchedule": "Deadlineschema",
+ "next14Days": "Komende 14 dagen",
+ "noUpcomingDue": "Geen deadlines in de komende 14 dagen.",
+ "peakDay": "Piek",
+ "none": "Geen",
+ "next3days": "Komende 3 dagen",
+ "nextWeek": "Komende 7 dagen",
+ "recentCompletion": "Recente voltooiing",
+ "last7And30": "Laatste 7 en 30 dagen",
+ "weeklyPace": "Wekelijks tempo",
+ "prevWeekCompleted": "{{count}} vorige week",
+ "vsPrevWeek": "vs vorige week",
+ "monthlyCompletion": "30-daagse voltooiingen",
+ "last30Days": "Laatste 30 dagen",
+ "nextUp": "Volgende beste actie",
+ "focusTask": "Meest impactvolle taak",
+ "focusHint": "Verplaatst deze taak naar lopend en vandaag",
+ "noNextAction": "Alles klaar - geen openstaande taken."
},
"projectItem": {
"edit": "Bewerken",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Schakel dropdownmenu in",
"projectInitials": "Projectinitialen",
"share": "Delen",
- "sharedProject": "Gedeeld met team"
+ "sharedProject": "Gedeeld met team",
+ "noDueDate": "Geen deadline",
+ "dueToday": "Vandaag verlopen",
+ "dueIn": "Verloopt over {{count}} {{unit}}",
+ "overdue": "{{count}} {{unit}} te laat",
+ "day": "dag",
+ "days": "dagen",
+ "sharedUser": "Gedeelde gebruiker",
+ "moreSharedUsers": "+{{count}} meer gebruikers"
},
"areas": {
"title": "Gebieden",
@@ -1265,5 +1299,46 @@
"validationErrors": "Validatiefouten:",
"versionIncompatible": "Versie incompatibel",
"backupVersion": "Backupversie"
+ },
+ "notifications": {
+ "table": {
+ "type": "Meldingstype"
+ },
+ "channels": {
+ "inApp": "In-app",
+ "email": "E-mail",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Vervaldagen Taken",
+ "overdueTasks": "Te Laat Taken",
+ "deferUntil": "Uitstellen Tot",
+ "dueProjects": "Vervaldagen Projecten",
+ "overdueProjects": "Te Laat Projecten"
+ },
+ "descriptions": {
+ "dueTasks": "Taken die binnen 24 uur vervallen",
+ "overdueTasks": "Taken die hun vervaldatum hebben overschreden",
+ "deferUntil": "Taken die nu beschikbaar zijn om aan te werken",
+ "dueProjects": "Projecten die binnen 24 uur vervallen",
+ "overdueProjects": "Projecten die hun vervaldatum hebben overschreden"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Niet Geconfigureerd:",
+ "message": "Om Telegram-meldingen te ontvangen, configureer uw Telegram-bot in het Telegram-tabblad."
+ }
+ },
+ "test": {
+ "title": "Testmeldingen",
+ "description": "Stuur een testmelding om te zien hoe deze in de app en op ingeschakelde kanalen (Telegram, enz.) verschijnt",
+ "send": "Verzend Test",
+ "sending": "Verzenden..."
+ },
+ "info": {
+ "title": "Opmerking:",
+ "message": "E-mail- en pushmeldingen komen binnenkort. In-app en Telegram-meldingen zijn momenteel beschikbaar."
+ }
}
}
diff --git a/public/locales/no/translation.json b/public/locales/no/translation.json
index 623c740..6418a89 100644
--- a/public/locales/no/translation.json
+++ b/public/locales/no/translation.json
@@ -149,7 +149,8 @@
"overdue": "Forsinket",
"planned": "Planlagt",
"open": "Åpne",
- "completed": "Fullført"
+ "completed": "Fullført",
+ "noCompletedTasksToday": "Ingen fullførte oppgaver i dag."
},
"timeline": {
"activityTimeline": "Aktivitetslinje",
@@ -315,7 +316,8 @@
"security": "Sikkerhet",
"productivity": "Produktivitet",
"telegram": "Telegram",
- "ai": "AI-funksjoner"
+ "ai": "AI-funksjoner",
+ "notifications": "Varslingsinnstillinger"
},
"security": "Sikkerhetsinnstillinger",
"changePassword": "Endre passord",
@@ -333,7 +335,6 @@
"passwordChangeSuccess": "Passordet ble endret med suksess!",
"changingPassword": "Endrer passord...",
"accountSettings": "Konto & Innstillinger",
- "aiProductivityFeatures": "AI & Produktivitetsfunksjoner",
"botSetup": "Botoppsett",
"passwordChangeNote": "Endringer i passordet vil bli lagret når du klikker på \"Lagre endringer\" nederst i skjemaet.",
"passwordChangeOptional": "La passordfeltene stå tomme for å oppdatere andre innstillinger uten å endre passordet ditt.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Velg hvordan du vil bli varslet om viktige hendelser.",
+ "aiFeatures": "AI-funksjoner"
},
"productivity": {
"stalledProjects": "Stagnerte prosjekter",
@@ -797,7 +800,9 @@
"activity": "Aktivitet",
"lastUpdatedAt": "Sist oppdatert kl",
"statusUpdated": "Status oppdatert med suksess",
- "statusUpdateError": "Feil ved oppdatering av status"
+ "statusUpdateError": "Feil ved oppdatering av status",
+ "updatedAt": "Oppdatert kl",
+ "upcoming": "kommende"
},
"projects": {
"loading": "Laster prosjekter...",
@@ -833,7 +838,28 @@
"active_desc": "Aktivt arbeid pågår"
},
"showMetrics": "Vis målinger",
- "hideMetrics": "Skjul målinger"
+ "hideMetrics": "Skjul målinger",
+ "progress": "Fremdrift",
+ "taskMomentum": "Oppgavemomentum",
+ "activeTasks": "Aktive oppgaver",
+ "dueSchedule": "Forfallsoversikt",
+ "next14Days": "Neste 14 dager",
+ "noUpcomingDue": "Ingen frister de neste 14 dagene.",
+ "peakDay": "Topp",
+ "none": "Ingen",
+ "next3days": "Neste 3 dager",
+ "nextWeek": "Neste 7 dager",
+ "recentCompletion": "Nylig fullføring",
+ "last7And30": "Siste 7 og 30 dager",
+ "weeklyPace": "Ukentlig tempo",
+ "prevWeekCompleted": "{{count}} forrige uke",
+ "vsPrevWeek": "vs forrige uke",
+ "monthlyCompletion": "30-dagers fullføringer",
+ "last30Days": "Siste 30 dager",
+ "nextUp": "Neste beste handling",
+ "focusTask": "Mest innflytelsesrike oppgave",
+ "focusHint": "Flytter denne oppgaven til pågående og i dag",
+ "noNextAction": "Alt klart - ingen utestående oppgaver."
},
"projectItem": {
"edit": "Rediger",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Veksle nedtrekksmeny",
"projectInitials": "Prosjektinitialer",
"share": "Del",
- "sharedProject": "Delt med teamet"
+ "sharedProject": "Delt med teamet",
+ "noDueDate": "Ingen frist",
+ "dueToday": "Forfaller i dag",
+ "dueIn": "Forfaller om {{count}} {{unit}}",
+ "overdue": "Forfalt for {{count}} {{unit}} siden",
+ "day": "dag",
+ "days": "dager",
+ "sharedUser": "Delt bruker",
+ "moreSharedUsers": "+{{count}} flere brukere"
},
"areas": {
"title": "Områder",
@@ -1265,5 +1299,46 @@
"validationErrors": "Valideringsfeil:",
"versionIncompatible": "Versjon inkompatibel",
"backupVersion": "Sikkerhetskopiversjon"
+ },
+ "notifications": {
+ "table": {
+ "type": "Varslingstype"
+ },
+ "channels": {
+ "inApp": "I appen",
+ "email": "E-post",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Forfalte oppgaver",
+ "overdueTasks": "Overforfalte oppgaver",
+ "deferUntil": "Utsett til",
+ "dueProjects": "Forfalte prosjekter",
+ "overdueProjects": "Overforfalte prosjekter"
+ },
+ "descriptions": {
+ "dueTasks": "Oppgaver som forfaller innen 24 timer",
+ "overdueTasks": "Oppgaver som har overskredet forfallsdato",
+ "deferUntil": "Oppgaver som nå er tilgjengelige for arbeid",
+ "dueProjects": "Prosjekter som forfaller innen 24 timer",
+ "overdueProjects": "Prosjekter som har overskredet forfallsdato"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram ikke konfigurert:",
+ "message": "For å motta Telegram-varsler, vennligst konfigurer Telegram-boten din i Telegram-fanen."
+ }
+ },
+ "test": {
+ "title": "Testvarsler",
+ "description": "Send en testvarsling for å se hvordan den vises i appen og på aktiverte kanaler (Telegram, osv.)",
+ "send": "Send test",
+ "sending": "Sender..."
+ },
+ "info": {
+ "title": "Merk:",
+ "message": "E-post og Push-varsler kommer snart. Varsler i appen og Telegram er for øyeblikket tilgjengelige."
+ }
}
}
diff --git a/public/locales/pl/translation.json b/public/locales/pl/translation.json
index 09c9b40..70066ea 100644
--- a/public/locales/pl/translation.json
+++ b/public/locales/pl/translation.json
@@ -149,7 +149,8 @@
"overdue": "Przeterminowane",
"planned": "Zaplanowane",
"open": "Otwórz",
- "completed": "Zakończone"
+ "completed": "Zakończone",
+ "noCompletedTasksToday": "Brak ukończonych zadań dzisiaj."
},
"timeline": {
"activityTimeline": "Oś czasu aktywności",
@@ -315,7 +316,8 @@
"security": "Bezpieczeństwo",
"productivity": "Produktywność",
"telegram": "Telegram",
- "ai": "Funkcje AI"
+ "ai": "Funkcje AI",
+ "notifications": "Preferencje powiadomień"
},
"security": "Ustawienia Bezpieczeństwa",
"changePassword": "Zmień Hasło",
@@ -333,7 +335,6 @@
"passwordChangeSuccess": "Hasło zmienione pomyślnie!",
"changingPassword": "Zmiana hasła...",
"accountSettings": "Ustawienia konta i preferencje",
- "aiProductivityFeatures": "Funkcje AI i produktywności",
"botSetup": "Konfiguracja bota",
"passwordChangeNote": "Zmiany hasła zostaną zapisane po kliknięciu \"Zapisz zmiany\" na dole formularza.",
"passwordChangeOptional": "Pozostaw puste pola hasła, aby zaktualizować inne ustawienia bez zmiany hasła.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Wybierz, jak chcesz być informowany o ważnych wydarzeniach.",
+ "aiFeatures": "Funkcje AI"
},
"productivity": {
"stalledProjects": "Zatrzymane projekty",
@@ -797,7 +800,9 @@
"activity": "Aktywność",
"lastUpdatedAt": "Ostatnia aktualizacja o",
"statusUpdated": "Status zaktualizowany pomyślnie",
- "statusUpdateError": "Nie udało się zaktualizować statusu"
+ "statusUpdateError": "Nie udało się zaktualizować statusu",
+ "updatedAt": "Zaktualizowano o",
+ "upcoming": "nadchodzący"
},
"projects": {
"loading": "Ładowanie projektów...",
@@ -833,7 +838,28 @@
"active_desc": "Aktywna praca w toku"
},
"showMetrics": "Pokaż metryki",
- "hideMetrics": "Ukryj metryki"
+ "hideMetrics": "Ukryj metryki",
+ "progress": "Postęp",
+ "taskMomentum": "Tempo zadań",
+ "activeTasks": "Aktywne zadania",
+ "dueSchedule": "Harmonogram terminów",
+ "next14Days": "Następne 14 dni",
+ "noUpcomingDue": "Brak terminów w ciągu następnych 14 dni.",
+ "peakDay": "Szczyt",
+ "none": "Brak",
+ "next3days": "Następne 3 dni",
+ "nextWeek": "Następne 7 dni",
+ "recentCompletion": "Ostatnie ukończenia",
+ "last7And30": "Ostatnie 7 i 30 dni",
+ "weeklyPace": "Tempo tygodniowe",
+ "prevWeekCompleted": "{{count}} poprzedni tydzień",
+ "vsPrevWeek": "vs poprzedni tydzień",
+ "monthlyCompletion": "Ukończenia z 30 dni",
+ "last30Days": "Ostatnie 30 dni",
+ "nextUp": "Następne najlepsze działanie",
+ "focusTask": "Najbardziej wpływowe zadanie",
+ "focusHint": "Przenosi to zadanie do w toku i dzisiaj",
+ "noNextAction": "Wszystko jasne - brak zaległych zadań."
},
"projectItem": {
"edit": "Edytuj",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Przełącz menu rozwijane",
"projectInitials": "Inicjały projektu",
"share": "Udostępnij",
- "sharedProject": "Udostępnione zespołowi"
+ "sharedProject": "Udostępnione zespołowi",
+ "noDueDate": "Brak terminu",
+ "dueToday": "Upływa dzisiaj",
+ "dueIn": "Upływa za {{count}} {{unit}}",
+ "overdue": "Opóźnione o {{count}} {{unit}}",
+ "day": "dzień",
+ "days": "dni",
+ "sharedUser": "Udostępniony użytkownik",
+ "moreSharedUsers": "+{{count}} więcej użytkowników"
},
"areas": {
"title": "Obszary",
@@ -1265,5 +1299,46 @@
"clickToUpload": "Kliknij, aby przeszukać pliki",
"restoreBackup": "Przywróć kopię zapasową",
"importing": "Importowanie..."
+ },
+ "notifications": {
+ "table": {
+ "type": "Typ powiadomienia"
+ },
+ "channels": {
+ "inApp": "W aplikacji",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Zadania do wykonania",
+ "overdueTasks": "Zadania przeterminowane",
+ "deferUntil": "Odłóż do",
+ "dueProjects": "Projekty do wykonania",
+ "overdueProjects": "Projekty przeterminowane"
+ },
+ "descriptions": {
+ "dueTasks": "Zadania, które muszą być wykonane w ciągu 24 godzin",
+ "overdueTasks": "Zadania, których termin minął",
+ "deferUntil": "Zadania, które są teraz dostępne do pracy",
+ "dueProjects": "Projekty, które muszą być wykonane w ciągu 24 godzin",
+ "overdueProjects": "Projekty, których termin minął"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram nie skonfigurowany:",
+ "message": "Aby otrzymywać powiadomienia z Telegramu, skonfiguruj swojego bota Telegram w zakładce Telegram."
+ }
+ },
+ "test": {
+ "title": "Test powiadomień",
+ "description": "Wyślij powiadomienie testowe, aby zobaczyć, jak wygląda w aplikacji i na włączonych kanałach (Telegram itp.)",
+ "send": "Wyślij test",
+ "sending": "Wysyłanie..."
+ },
+ "info": {
+ "title": "Uwaga:",
+ "message": "Powiadomienia e-mailowe i push będą dostępne wkrótce. Powiadomienia w aplikacji i na Telegramie są obecnie dostępne."
+ }
}
}
diff --git a/public/locales/pt/translation.json b/public/locales/pt/translation.json
index 6017622..9cfc1da 100644
--- a/public/locales/pt/translation.json
+++ b/public/locales/pt/translation.json
@@ -149,7 +149,8 @@
"overdue": "Atrasado",
"planned": "Planejado",
"open": "Abrir",
- "completed": "Concluído"
+ "completed": "Concluído",
+ "noCompletedTasksToday": "Nenhuma tarefa concluída hoje."
},
"timeline": {
"activityTimeline": "Linha do Tempo de Atividades",
@@ -308,7 +309,8 @@
"security": "Segurança",
"productivity": "Produtividade",
"telegram": "Telegram",
- "ai": "Recursos de IA"
+ "ai": "Recursos de IA",
+ "notifications": "Preferências de Notificação"
},
"security": "Configurações de Segurança",
"changePassword": "Alterar Senha",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Senha alterada com sucesso!",
"changingPassword": "Alterando a senha...",
"accountSettings": "Conta e Preferências",
- "aiProductivityFeatures": "Recursos de IA e Produtividade",
"botSetup": "Configuração do Bot",
"passwordChangeNote": "As alterações de senha serão salvas quando você clicar em \"Salvar Alterações\" na parte inferior do formulário.",
"passwordChangeOptional": "Deixe os campos de senha vazios para atualizar outras configurações sem alterar sua senha.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Escolha como deseja ser notificado sobre eventos importantes.",
+ "aiFeatures": "Recursos de IA"
},
"productivity": {
"stalledProjects": "Projetos Parados",
@@ -797,7 +800,9 @@
"activity": "Atividade",
"lastUpdatedAt": "Última atualização em",
"statusUpdated": "Status atualizado com sucesso",
- "statusUpdateError": "Falha ao atualizar o status"
+ "statusUpdateError": "Falha ao atualizar o status",
+ "updatedAt": "Atualizado em",
+ "upcoming": "próximo"
},
"projects": {
"loading": "Carregando projetos...",
@@ -833,7 +838,28 @@
"active_desc": "Trabalho ativo em andamento"
},
"showMetrics": "Mostrar métricas",
- "hideMetrics": "Ocultar métricas"
+ "hideMetrics": "Ocultar métricas",
+ "progress": "Progresso",
+ "taskMomentum": "Momento das tarefas",
+ "activeTasks": "Tarefas ativas",
+ "dueSchedule": "Cronograma de prazos",
+ "next14Days": "Próximos 14 dias",
+ "noUpcomingDue": "Sem prazos nos próximos 14 dias.",
+ "peakDay": "Pico",
+ "none": "Nenhum",
+ "next3days": "Próximos 3 dias",
+ "nextWeek": "Próximos 7 dias",
+ "recentCompletion": "Conclusão recente",
+ "last7And30": "Últimos 7 e 30 dias",
+ "weeklyPace": "Ritmo semanal",
+ "prevWeekCompleted": "{{count}} semana anterior",
+ "vsPrevWeek": "vs semana anterior",
+ "monthlyCompletion": "Conclusões de 30 dias",
+ "last30Days": "Últimos 30 dias",
+ "nextUp": "Próxima melhor ação",
+ "focusTask": "Tarefa mais impactante",
+ "focusHint": "Move esta tarefa para em andamento e hoje",
+ "noNextAction": "Tudo limpo - sem tarefas pendentes."
},
"projectItem": {
"edit": "Editar",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Alternar menu suspenso",
"projectInitials": "Iniciais do projeto",
"share": "Compartilhar",
- "sharedProject": "Compartilhado com a equipe"
+ "sharedProject": "Compartilhado com a equipe",
+ "noDueDate": "Sem prazo",
+ "dueToday": "Vence hoje",
+ "dueIn": "Vence em {{count}} {{unit}}",
+ "overdue": "Vencido há {{count}} {{unit}}",
+ "day": "dia",
+ "days": "dias",
+ "sharedUser": "Usuário compartilhado",
+ "moreSharedUsers": "+{{count}} usuários a mais"
},
"areas": {
"title": "Áreas",
@@ -1265,5 +1299,46 @@
"validationErrors": "Erros de validação:",
"versionIncompatible": "Versão Incompatível",
"backupVersion": "Versão do backup"
+ },
+ "notifications": {
+ "table": {
+ "type": "Tipo de Notificação"
+ },
+ "channels": {
+ "inApp": "No aplicativo",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Tarefas Pendentes",
+ "overdueTasks": "Tarefas Atrasadas",
+ "deferUntil": "Adiar Até",
+ "dueProjects": "Projetos Pendentes",
+ "overdueProjects": "Projetos Atrasados"
+ },
+ "descriptions": {
+ "dueTasks": "Tarefas que vencem em 24 horas",
+ "overdueTasks": "Tarefas que passaram da data de vencimento",
+ "deferUntil": "Tarefas que agora estão disponíveis para trabalhar",
+ "dueProjects": "Projetos que vencem em 24 horas",
+ "overdueProjects": "Projetos que passaram da data de vencimento"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Não Configurado:",
+ "message": "Para receber notificações do Telegram, configure seu bot do Telegram na aba do Telegram."
+ }
+ },
+ "test": {
+ "title": "Testar Notificações",
+ "description": "Envie uma notificação de teste para ver como ela aparece no aplicativo e nos canais habilitados (Telegram, etc.)",
+ "send": "Enviar Teste",
+ "sending": "Enviando..."
+ },
+ "info": {
+ "title": "Nota:",
+ "message": "Notificações por Email e Push estarão disponíveis em breve. Notificações no aplicativo e no Telegram estão atualmente disponíveis."
+ }
}
}
diff --git a/public/locales/ro/translation.json b/public/locales/ro/translation.json
index ea5b017..2ea7c4e 100644
--- a/public/locales/ro/translation.json
+++ b/public/locales/ro/translation.json
@@ -149,7 +149,8 @@
"overdue": "Întârziat",
"planned": "Planificat",
"open": "Deschide",
- "completed": "Finalizat"
+ "completed": "Finalizat",
+ "noCompletedTasksToday": "Nicio sarcină finalizată astăzi."
},
"timeline": {
"activityTimeline": "Cronologia activităților",
@@ -308,7 +309,8 @@
"security": "Securitate",
"productivity": "Productivitate",
"telegram": "Telegram",
- "ai": "Funcții AI"
+ "ai": "Funcții AI",
+ "notifications": "Preferințe de Notificare"
},
"security": "Setări de Securitate",
"changePassword": "Schimbă Parola",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Parola a fost schimbată cu succes!",
"changingPassword": "Se schimbă parola...",
"accountSettings": "Cont și Preferințe",
- "aiProductivityFeatures": "Funcții AI și de Productivitate",
"botSetup": "Configurare Bot",
"passwordChangeNote": "Schimbările de parolă vor fi salvate când faceți clic pe \"Salvați modificările\" la baza formularului.",
"passwordChangeOptional": "Lăsați câmpurile pentru parolă goale pentru a actualiza alte setări fără a schimba parola.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Alege cum dorești să fii notificat despre evenimente importante.",
+ "aiFeatures": "Funcții AI"
},
"productivity": {
"stalledProjects": "Proiecte Blocate",
@@ -797,7 +800,9 @@
"activity": "Activitate",
"lastUpdatedAt": "Ultima actualizare la",
"statusUpdated": "Starea a fost actualizată cu succes",
- "statusUpdateError": "Actualizarea stării a eșuat"
+ "statusUpdateError": "Actualizarea stării a eșuat",
+ "updatedAt": "Actualizat la",
+ "upcoming": "viitor"
},
"projects": {
"loading": "Se încarcă proiectele...",
@@ -833,7 +838,28 @@
"active_desc": "Lucrări active în desfășurare"
},
"showMetrics": "Arată metrici",
- "hideMetrics": "Ascunde metrici"
+ "hideMetrics": "Ascunde metrici",
+ "progress": "Progres",
+ "taskMomentum": "Dinamica sarcinilor",
+ "activeTasks": "Sarcini active",
+ "dueSchedule": "Program termene",
+ "next14Days": "Următoarele 14 zile",
+ "noUpcomingDue": "Niciun termen în următoarele 14 zile.",
+ "peakDay": "Vârf",
+ "none": "Niciuna",
+ "next3days": "Următoarele 3 zile",
+ "nextWeek": "Următoarele 7 zile",
+ "recentCompletion": "Finalizare recentă",
+ "last7And30": "Ultimele 7 & 30 zile",
+ "weeklyPace": "Ritm săptămânal",
+ "prevWeekCompleted": "{{count}} săptămâna anterioară",
+ "vsPrevWeek": "vs săptămâna anterioară",
+ "monthlyCompletion": "Finalizări pe 30 zile",
+ "last30Days": "Ultimele 30 zile",
+ "nextUp": "Următoarea cea mai bună acțiune",
+ "focusTask": "Sarcina cu cel mai mare impact",
+ "focusHint": "Mută această sarcină la în progres și astăzi",
+ "noNextAction": "Totul în regulă - nicio sarcină în așteptare."
},
"projectItem": {
"edit": "Editează",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Comută meniul derulant",
"projectInitials": "Inițialele proiectului",
"share": "Partajează",
- "sharedProject": "Partajat cu echipa"
+ "sharedProject": "Partajat cu echipa",
+ "noDueDate": "Fără termen limită",
+ "dueToday": "Scade astăzi",
+ "dueIn": "Scade în {{count}} {{unit}}",
+ "overdue": "Expirat cu {{count}} {{unit}} în urmă",
+ "day": "zi",
+ "days": "zile",
+ "sharedUser": "Utilizator partajat",
+ "moreSharedUsers": "+{{count}} utilizatori în plus"
},
"areas": {
"title": "Arii",
@@ -1265,5 +1299,46 @@
"clickToUpload": "Click pentru a naviga la fișiere",
"restoreBackup": "Restaurare Backup",
"importing": "Importare..."
+ },
+ "notifications": {
+ "table": {
+ "type": "Tip de Notificare"
+ },
+ "channels": {
+ "inApp": "În aplicație",
+ "email": "Email",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Sarcini Scadente",
+ "overdueTasks": "Sarcini Întârziate",
+ "deferUntil": "Amână Până La",
+ "dueProjects": "Proiecte Scadente",
+ "overdueProjects": "Proiecte Întârziate"
+ },
+ "descriptions": {
+ "dueTasks": "Sarcini care sunt scadente în următoarele 24 de ore",
+ "overdueTasks": "Sarcini care au depășit data limită",
+ "deferUntil": "Sarcini care sunt acum disponibile pentru a fi lucrate",
+ "dueProjects": "Proiecte care sunt scadente în următoarele 24 de ore",
+ "overdueProjects": "Proiecte care au depășit data limită"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Neconfigurat:",
+ "message": "Pentru a primi notificări pe Telegram, te rugăm să configurezi botul tău Telegram în tab-ul Telegram."
+ }
+ },
+ "test": {
+ "title": "Test Notificări",
+ "description": "Trimite o notificare de test pentru a vedea cum apare în aplicație și pe canalele activate (Telegram, etc.)",
+ "send": "Trimite Test",
+ "sending": "Se trimite..."
+ },
+ "info": {
+ "title": "Notă:",
+ "message": "Notificările prin Email și Push vor fi disponibile în curând. Notificările în aplicație și pe Telegram sunt disponibile în prezent."
+ }
}
}
diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json
index 3d9f272..ac3f314 100644
--- a/public/locales/ru/translation.json
+++ b/public/locales/ru/translation.json
@@ -149,7 +149,8 @@
"overdue": "Просрочено",
"planned": "Запланировано",
"open": "Открыть",
- "completed": "Завершено"
+ "completed": "Завершено",
+ "noCompletedTasksToday": "Сегодня нет завершенных задач."
},
"timeline": {
"activityTimeline": "Хронология активности",
@@ -308,7 +309,8 @@
"security": "Безопасность",
"productivity": "Продуктивность",
"telegram": "Телеграм",
- "ai": "Функции ИИ"
+ "ai": "Функции ИИ",
+ "notifications": "Настройки уведомлений"
},
"security": "Настройки безопасности",
"changePassword": "Сменить пароль",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Пароль успешно изменен!",
"changingPassword": "Изменение пароля...",
"accountSettings": "Учетная запись и предпочтения",
- "aiProductivityFeatures": "Искусственный интеллект и функции продуктивности",
"botSetup": "Настройка бота",
"passwordChangeNote": "Изменения пароля будут сохранены, когда вы нажмете \"Сохранить изменения\" внизу формы.",
"passwordChangeOptional": "Оставьте поля пароля пустыми, чтобы обновить другие настройки без изменения пароля.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Выберите, как вы хотите получать уведомления о важных событиях.",
+ "aiFeatures": "Функции ИИ"
},
"productivity": {
"stalledProjects": "Приостановленные проекты",
@@ -797,7 +800,9 @@
"activity": "Активность",
"lastUpdatedAt": "Последнее обновление в",
"statusUpdated": "Статус успешно обновлён",
- "statusUpdateError": "Не удалось обновить статус"
+ "statusUpdateError": "Не удалось обновить статус",
+ "updatedAt": "Обновлено в",
+ "upcoming": "предстоящие"
},
"projects": {
"loading": "Загрузка проектов...",
@@ -833,7 +838,28 @@
"active_desc": "Активная работа ведется"
},
"showMetrics": "Показать метрики",
- "hideMetrics": "Скрыть метрики"
+ "hideMetrics": "Скрыть метрики",
+ "progress": "Прогресс",
+ "taskMomentum": "Импульс задач",
+ "activeTasks": "Активные задачи",
+ "dueSchedule": "График сроков",
+ "next14Days": "Следующие 14 дней",
+ "noUpcomingDue": "Нет сроков в ближайшие 14 дней.",
+ "peakDay": "Пик",
+ "none": "Нет",
+ "next3days": "Следующие 3 дня",
+ "nextWeek": "Следующие 7 дней",
+ "recentCompletion": "Недавнее завершение",
+ "last7And30": "Последние 7 и 30 дней",
+ "weeklyPace": "Недельный темп",
+ "prevWeekCompleted": "{{count}} предыдущая неделя",
+ "vsPrevWeek": "vs предыдущая неделя",
+ "monthlyCompletion": "Завершения за 30 дней",
+ "last30Days": "Последние 30 дней",
+ "nextUp": "Следующее лучшее действие",
+ "focusTask": "Наиболее важная задача",
+ "focusHint": "Переносит задачу в „Выполняется\" и „Сегодня\"",
+ "noNextAction": "Все выполнено - нет невыполненных задач."
},
"projectItem": {
"edit": "Редактировать",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Переключить выпадающее меню",
"projectInitials": "Инициалы проекта",
"share": "Поделиться",
- "sharedProject": "Поделено с командой"
+ "sharedProject": "Поделено с командой",
+ "noDueDate": "Нет срока",
+ "dueToday": "Срок сегодня",
+ "dueIn": "Срок через {{count}} {{unit}}",
+ "overdue": "Просрочено на {{count}} {{unit}}",
+ "day": "день",
+ "days": "дней",
+ "sharedUser": "Общий пользователь",
+ "moreSharedUsers": "+{{count}} пользователей"
},
"areas": {
"title": "Области",
@@ -1265,5 +1299,46 @@
"validationErrors": "Ошибки валидации:",
"versionIncompatible": "Версия несовместима",
"backupVersion": "Версия резервной копии"
+ },
+ "notifications": {
+ "table": {
+ "type": "Тип уведомления"
+ },
+ "channels": {
+ "inApp": "В приложении",
+ "email": "Электронная почта",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Сроки задач",
+ "overdueTasks": "Просроченные задачи",
+ "deferUntil": "Отложить до",
+ "dueProjects": "Сроки проектов",
+ "overdueProjects": "Просроченные проекты"
+ },
+ "descriptions": {
+ "dueTasks": "Задачи, срок выполнения которых истекает в течение 24 часов",
+ "overdueTasks": "Задачи, срок выполнения которых истек",
+ "deferUntil": "Задачи, которые теперь доступны для работы",
+ "dueProjects": "Проекты, срок выполнения которых истекает в течение 24 часов",
+ "overdueProjects": "Проекты, срок выполнения которых истек"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram не настроен:",
+ "message": "Чтобы получать уведомления в Telegram, пожалуйста, настройте своего Telegram-бота на вкладке Telegram."
+ }
+ },
+ "test": {
+ "title": "Тестовые уведомления",
+ "description": "Отправьте тестовое уведомление, чтобы увидеть, как оно отображается в приложении и на включенных каналах (Telegram и др.)",
+ "send": "Отправить тест",
+ "sending": "Отправка..."
+ },
+ "info": {
+ "title": "Примечание:",
+ "message": "Уведомления по электронной почте и Push скоро будут доступны. Уведомления в приложении и Telegram в настоящее время доступны."
+ }
}
}
diff --git a/public/locales/sl/translation.json b/public/locales/sl/translation.json
index c7e1c59..a5531bc 100644
--- a/public/locales/sl/translation.json
+++ b/public/locales/sl/translation.json
@@ -149,7 +149,8 @@
"overdue": "Zapadlo",
"planned": "Načrtovano",
"open": "Odpri",
- "completed": "Dokončano"
+ "completed": "Dokončano",
+ "noCompletedTasksToday": "Danes ni zaključenih nalog."
},
"timeline": {
"activityTimeline": "Časovnica aktivnosti",
@@ -315,7 +316,8 @@
"security": "Varnost",
"productivity": "Produktivnost",
"telegram": "Telegram",
- "ai": "AI Funkcije"
+ "ai": "AI Funkcije",
+ "notifications": "Nastavitve obvestil"
},
"security": "Nastavitve varnosti",
"changePassword": "Spremeni geslo",
@@ -333,7 +335,6 @@
"passwordChangeSuccess": "Geslo je bilo uspešno spremenjeno!",
"changingPassword": "Spreminjanje gesla...",
"accountSettings": "Račun in nastavitve",
- "aiProductivityFeatures": "AI in funkcije produktivnosti",
"botSetup": "Nastavitev bota",
"passwordChangeNote": "Spremembe gesla bodo shranjene, ko kliknete \"Shrani spremembe\" na dnu obrazca.",
"passwordChangeOptional": "Pustite polja za geslo prazna, da posodobite druge nastavitve brez spreminjanja gesla.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Izberite, kako želite biti obveščeni o pomembnih dogodkih.",
+ "aiFeatures": "Funkcije AI"
},
"productivity": {
"stalledProjects": "Zastali projekti",
@@ -797,7 +800,9 @@
"activity": "Dejavnost",
"lastUpdatedAt": "Zadnja posodobitev ob",
"statusUpdated": "Status uspešno posodobljen",
- "statusUpdateError": "Posodobitev statusa ni uspela"
+ "statusUpdateError": "Posodobitev statusa ni uspela",
+ "updatedAt": "Posodobljeno ob",
+ "upcoming": "prihajajoč"
},
"projects": {
"loading": "Nalagam projekte...",
@@ -833,7 +838,28 @@
"active_desc": "Aktivno delo poteka"
},
"showMetrics": "Prikaži metrike",
- "hideMetrics": "Skrij metrike"
+ "hideMetrics": "Skrij metrike",
+ "progress": "Napredek",
+ "taskMomentum": "Zagon nalog",
+ "activeTasks": "Aktivne naloge",
+ "dueSchedule": "Urnik rokov",
+ "next14Days": "Naslednjih 14 dni",
+ "noUpcomingDue": "Ni rokov v naslednjih 14 dneh.",
+ "peakDay": "Vrh",
+ "none": "Brez",
+ "next3days": "Naslednjih 3 dni",
+ "nextWeek": "Naslednjih 7 dni",
+ "recentCompletion": "Nedavno zaključeno",
+ "last7And30": "Zadnjih 7 in 30 dni",
+ "weeklyPace": "Tedenski tempo",
+ "prevWeekCompleted": "{{count}} prejšnji teden",
+ "vsPrevWeek": "vs prejšnji teden",
+ "monthlyCompletion": "30-dnevna zaključevanja",
+ "last30Days": "Zadnjih 30 dni",
+ "nextUp": "Naslednje najboljše dejanje",
+ "focusTask": "Najbolj vplivna naloga",
+ "focusHint": "Premakne to nalogo v v teku in danes",
+ "noNextAction": "Vse jasno - ni neizpolnjenih nalog."
},
"projectItem": {
"edit": "Uredi",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Preklopi spustni meni",
"projectInitials": "Inicialke projekta",
"share": "Deli",
- "sharedProject": "Deli z ekipo"
+ "sharedProject": "Deli z ekipo",
+ "noDueDate": "Ni roka",
+ "dueToday": "Zapade danes",
+ "dueIn": "Zapade čez {{count}} {{unit}}",
+ "overdue": "Zamujeno {{count}} {{unit}}",
+ "day": "dan",
+ "days": "dni",
+ "sharedUser": "Deljeni uporabnik",
+ "moreSharedUsers": "+{{count}} več uporabnikov"
},
"areas": {
"title": "Območja",
@@ -1265,5 +1299,46 @@
"validationErrors": "Napake pri preverjanju:",
"versionIncompatible": "Različica ni združljiva",
"backupVersion": "Različica varnostne kopije"
+ },
+ "notifications": {
+ "table": {
+ "type": "Vrsta obvestila"
+ },
+ "channels": {
+ "inApp": "V aplikaciji",
+ "email": "E-pošta",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Naloge, ki zapadejo",
+ "overdueTasks": "Zamujene naloge",
+ "deferUntil": "Odloži do",
+ "dueProjects": "Projekti, ki zapadejo",
+ "overdueProjects": "Zamujeni projekti"
+ },
+ "descriptions": {
+ "dueTasks": "Naloge, ki zapadejo v 24 urah",
+ "overdueTasks": "Naloge, ki so prešle rok",
+ "deferUntil": "Naloge, ki so zdaj na voljo za delo",
+ "dueProjects": "Projekti, ki zapadejo v 24 urah",
+ "overdueProjects": "Projekti, ki so prešli rok"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram ni konfiguriran:",
+ "message": "Da bi prejemali obvestila preko Telegrama, prosimo, konfigurirajte svoj Telegram bot na zavihku Telegram."
+ }
+ },
+ "test": {
+ "title": "Testna obvestila",
+ "description": "Pošlji testno obvestilo, da vidiš, kako se prikazuje v aplikaciji in na omogočenih kanalih (Telegram itd.)",
+ "send": "Pošlji test",
+ "sending": "Pošiljanje..."
+ },
+ "info": {
+ "title": "Opomba:",
+ "message": "Obvestila po e-pošti in potisna obvestila kmalu prihajajo. Obvestila v aplikaciji in na Telegramu so trenutno na voljo."
+ }
}
}
diff --git a/public/locales/sv/translation.json b/public/locales/sv/translation.json
index 077fd36..bbc2118 100644
--- a/public/locales/sv/translation.json
+++ b/public/locales/sv/translation.json
@@ -149,7 +149,8 @@
"overdue": "Förfallen",
"planned": "Planerad",
"open": "Öppna",
- "completed": "Avslutad"
+ "completed": "Avslutad",
+ "noCompletedTasksToday": "Inga slutförda uppgifter idag."
},
"timeline": {
"activityTimeline": "Aktivitetslinje",
@@ -315,7 +316,8 @@
"security": "Säkerhet",
"productivity": "Produktivitet",
"telegram": "Telegram",
- "ai": "AI-funktioner"
+ "ai": "AI-funktioner",
+ "notifications": "Notifikationsinställningar"
},
"security": "Säkerhetsinställningar",
"changePassword": "Ändra lösenord",
@@ -333,7 +335,6 @@
"passwordChangeSuccess": "Lösenordet har ändrats!",
"changingPassword": "Ändrar lösenord...",
"accountSettings": "Konto & Inställningar",
- "aiProductivityFeatures": "AI & Produktivitetsfunktioner",
"botSetup": "Bot-inställningar",
"passwordChangeNote": "Ändringar av lösenordet sparas när du klickar på \"Spara ändringar\" längst ner i formuläret.",
"passwordChangeOptional": "Lämna lösenordsfälten tomma för att uppdatera andra inställningar utan att ändra ditt lösenord.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Välj hur du vill bli meddelad om viktiga händelser.",
+ "aiFeatures": "AI-funktioner"
},
"productivity": {
"stalledProjects": "Stagnerade projekt",
@@ -797,7 +800,9 @@
"activity": "Aktivitet",
"lastUpdatedAt": "Senast uppdaterad kl",
"statusUpdated": "Status uppdaterad framgångsrikt",
- "statusUpdateError": "Misslyckades med att uppdatera status"
+ "statusUpdateError": "Misslyckades med att uppdatera status",
+ "updatedAt": "Uppdaterad den",
+ "upcoming": "kommande"
},
"projects": {
"loading": "Laddar projekt...",
@@ -833,7 +838,28 @@
"active_desc": "Aktivt arbete pågår"
},
"showMetrics": "Visa mätvärden",
- "hideMetrics": "Dölj mätvärden"
+ "hideMetrics": "Dölj mätvärden",
+ "progress": "Framsteg",
+ "taskMomentum": "Uppgiftsmomentum",
+ "activeTasks": "Aktiva uppgifter",
+ "dueSchedule": "Förfallschema",
+ "next14Days": "Nästa 14 dagar",
+ "noUpcomingDue": "Inga deadlines de närmaste 14 dagarna.",
+ "peakDay": "Topp",
+ "none": "Ingen",
+ "next3days": "Nästa 3 dagar",
+ "nextWeek": "Nästa 7 dagar",
+ "recentCompletion": "Senaste slutförande",
+ "last7And30": "Senaste 7 och 30 dagarna",
+ "weeklyPace": "Veckovis takt",
+ "prevWeekCompleted": "{{count}} föregående vecka",
+ "vsPrevWeek": "vs föregående vecka",
+ "monthlyCompletion": "30-dagars slutföranden",
+ "last30Days": "Senaste 30 dagarna",
+ "nextUp": "Nästa bästa åtgärd",
+ "focusTask": "Mest påverkande uppgift",
+ "focusHint": "Flyttar denna uppgift till pågående och idag",
+ "noNextAction": "Allt klart - inga utestående uppgifter."
},
"projectItem": {
"edit": "Ändra",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Toggla rullgardinsmeny",
"projectInitials": "Projektinitialer",
"share": "Dela",
- "sharedProject": "Delad med teamet"
+ "sharedProject": "Delad med teamet",
+ "noDueDate": "Ingen deadline",
+ "dueToday": "Förfaller idag",
+ "dueIn": "Förfaller om {{count}} {{unit}}",
+ "overdue": "Försenat med {{count}} {{unit}}",
+ "day": "dag",
+ "days": "dagar",
+ "sharedUser": "Delad användare",
+ "moreSharedUsers": "+{{count}} fler användare"
},
"areas": {
"title": "Områden",
@@ -1265,5 +1299,46 @@
"validationErrors": "Valideringsfel:",
"versionIncompatible": "Version inkompatibel",
"backupVersion": "Backupversion"
+ },
+ "notifications": {
+ "table": {
+ "type": "Notifikationstyp"
+ },
+ "channels": {
+ "inApp": "I appen",
+ "email": "E-post",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Förfallna uppgifter",
+ "overdueTasks": "Överfallna uppgifter",
+ "deferUntil": "Skjut upp till",
+ "dueProjects": "Förfallna projekt",
+ "overdueProjects": "Överfallna projekt"
+ },
+ "descriptions": {
+ "dueTasks": "Uppgifter som förfaller inom 24 timmar",
+ "overdueTasks": "Uppgifter som har passerat sitt förfallodatum",
+ "deferUntil": "Uppgifter som nu är tillgängliga att arbeta med",
+ "dueProjects": "Projekt som förfaller inom 24 timmar",
+ "overdueProjects": "Projekt som har passerat sitt förfallodatum"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram inte konfigurerat:",
+ "message": "För att ta emot Telegram-notifikationer, vänligen konfigurera din Telegram-bot i Telegram-fliken."
+ }
+ },
+ "test": {
+ "title": "Testnotifikationer",
+ "description": "Skicka en testnotifikation för att se hur den visas i appen och på aktiverade kanaler (Telegram, etc.)",
+ "send": "Skicka test",
+ "sending": "Skickar..."
+ },
+ "info": {
+ "title": "Notera:",
+ "message": "E-post och push-notifikationer kommer snart. In-app och Telegram-notifikationer är för närvarande tillgängliga."
+ }
}
}
diff --git a/public/locales/tr/translation.json b/public/locales/tr/translation.json
index 4a9757d..60d46a8 100644
--- a/public/locales/tr/translation.json
+++ b/public/locales/tr/translation.json
@@ -149,7 +149,8 @@
"overdue": "Gecikmiş",
"planned": "Planlanmış",
"open": "Aç",
- "completed": "Tamamlandı"
+ "completed": "Tamamlandı",
+ "noCompletedTasksToday": "Bugün tamamlanan görev yok."
},
"timeline": {
"activityTimeline": "Etkinlik Zaman Çizelgesi",
@@ -308,7 +309,8 @@
"security": "Güvenlik",
"productivity": "Verimlilik",
"telegram": "Telegram",
- "ai": "Yapay Zeka Özellikleri"
+ "ai": "Yapay Zeka Özellikleri",
+ "notifications": "Bildirim Tercihleri"
},
"security": "Güvenlik Ayarları",
"changePassword": "Şifre Değiştir",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Şifre başarıyla değiştirildi!",
"changingPassword": "Şifre değiştiriliyor...",
"accountSettings": "Hesap & Tercihler",
- "aiProductivityFeatures": "Yapay Zeka & Verimlilik Özellikleri",
"botSetup": "Bot Ayarları",
"passwordChangeNote": "\"Değişiklikleri Kaydet\" butonuna tıkladığınızda şifre değişiklikleri kaydedilecektir.",
"passwordChangeOptional": "Şifre alanlarını boş bırakın, böylece şifrenizi değiştirmeden diğer ayarları güncelleyebilirsiniz.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Önemli olaylar hakkında nasıl bildirim almak istediğinizi seçin.",
+ "aiFeatures": "AI Özellikleri"
},
"productivity": {
"stalledProjects": "Duraklayan Projeler",
@@ -797,7 +800,9 @@
"activity": "Etkinlik",
"lastUpdatedAt": "Son güncelleme zamanı",
"statusUpdated": "Durum başarıyla güncellendi",
- "statusUpdateError": "Durum güncellenemedi"
+ "statusUpdateError": "Durum güncellenemedi",
+ "updatedAt": "Güncellenme zamanı",
+ "upcoming": "yaklaşan"
},
"projects": {
"loading": "Projeler yükleniyor...",
@@ -833,7 +838,28 @@
"active_desc": "Aktif çalışma sürüyor"
},
"showMetrics": "Metrikleri göster",
- "hideMetrics": "Metrikleri gizle"
+ "hideMetrics": "Metrikleri gizle",
+ "progress": "İlerleme",
+ "taskMomentum": "Görev momentumu",
+ "activeTasks": "Aktif görevler",
+ "dueSchedule": "Vade takvimi",
+ "next14Days": "Sonraki 14 gün",
+ "noUpcomingDue": "Sonraki 14 günde vade yok.",
+ "peakDay": "Zirve",
+ "none": "Yok",
+ "next3days": "Sonraki 3 gün",
+ "nextWeek": "Sonraki 7 gün",
+ "recentCompletion": "Son tamamlanma",
+ "last7And30": "Son 7 ve 30 gün",
+ "weeklyPace": "Haftalık tempo",
+ "prevWeekCompleted": "{{count}} önceki hafta",
+ "vsPrevWeek": "vs önceki hafta",
+ "monthlyCompletion": "30 günlük tamamlanmalar",
+ "last30Days": "Son 30 gün",
+ "nextUp": "Sonraki en iyi eylem",
+ "focusTask": "En etkili görev",
+ "focusHint": "Bu görevi devam ediyor ve bugün'e taşır",
+ "noNextAction": "Her şey açık - bekleyen görev yok."
},
"projectItem": {
"edit": "Düzenle",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Açılır menüyü aç/kapa",
"projectInitials": "Proje kısaltmaları",
"share": "Paylaş",
- "sharedProject": "Takımla paylaşıldı"
+ "sharedProject": "Takımla paylaşıldı",
+ "noDueDate": "Son tarih yok",
+ "dueToday": "Bugün sona eriyor",
+ "dueIn": "{{count}} {{unit}} içinde sona eriyor",
+ "overdue": "{{count}} {{unit}} önce süresi doldu",
+ "day": "gün",
+ "days": "gün",
+ "sharedUser": "Paylaşılan kullanıcı",
+ "moreSharedUsers": "+{{count}} kullanıcı daha"
},
"areas": {
"title": "Alanlar",
@@ -1265,5 +1299,46 @@
"validationErrors": "Doğrulama hataları:",
"versionIncompatible": "Sürüm Uyuşmaz",
"backupVersion": "Yedek sürümü"
+ },
+ "notifications": {
+ "table": {
+ "type": "Bildirim Türü"
+ },
+ "channels": {
+ "inApp": "Uygulama İçi",
+ "email": "E-posta",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Vadesi Gelen Görevler",
+ "overdueTasks": "Vadesi Geçmiş Görevler",
+ "deferUntil": "Ertele",
+ "dueProjects": "Vadesi Gelen Projeler",
+ "overdueProjects": "Vadesi Geçmiş Projeler"
+ },
+ "descriptions": {
+ "dueTasks": "24 saat içinde vadesi gelen görevler",
+ "overdueTasks": "Vade tarihini geçmiş görevler",
+ "deferUntil": "Şu anda çalışılabilir olan görevler",
+ "dueProjects": "24 saat içinde vadesi gelen projeler",
+ "overdueProjects": "Vade tarihini geçmiş projeler"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Yapılandırılmamış:",
+ "message": "Telegram bildirimleri almak için lütfen Telegram sekmesinde Telegram botunuzu yapılandırın."
+ }
+ },
+ "test": {
+ "title": "Test Bildirimleri",
+ "description": "Test bildirimini göndererek uygulamada ve etkin kanallarda (Telegram, vb.) nasıl göründüğünü görün.",
+ "send": "Test Gönder",
+ "sending": "Gönderiliyor..."
+ },
+ "info": {
+ "title": "Not:",
+ "message": "E-posta ve Push bildirimleri yakında geliyor. Uygulama içi ve Telegram bildirimleri şu anda mevcuttur."
+ }
}
}
diff --git a/public/locales/ua/translation.json b/public/locales/ua/translation.json
index d8f087f..26af610 100644
--- a/public/locales/ua/translation.json
+++ b/public/locales/ua/translation.json
@@ -149,7 +149,8 @@
"overdue": "Прострочено",
"planned": "Заплановано",
"open": "Відкрити",
- "completed": "Завершено"
+ "completed": "Завершено",
+ "noCompletedTasksToday": "Сьогодні немає завершених завдань."
},
"timeline": {
"activityTimeline": "Хронологія Активності",
@@ -229,7 +230,28 @@
"active_desc": "Активна робота триває"
},
"showMetrics": "Показати метрики",
- "hideMetrics": "Сховати метрики"
+ "hideMetrics": "Сховати метрики",
+ "progress": "Прогрес",
+ "taskMomentum": "Імпульс завдань",
+ "activeTasks": "Активні завдання",
+ "dueSchedule": "Графік термінів",
+ "next14Days": "Наступні 14 днів",
+ "noUpcomingDue": "Немає термінів у найближчі 14 днів.",
+ "peakDay": "Пік",
+ "none": "Немає",
+ "next3days": "Наступні 3 дні",
+ "nextWeek": "Наступні 7 днів",
+ "recentCompletion": "Нещодавнє завершення",
+ "last7And30": "Останні 7 і 30 днів",
+ "weeklyPace": "Тижневий темп",
+ "prevWeekCompleted": "{{count}} попередній тиждень",
+ "vsPrevWeek": "vs попередній тиждень",
+ "monthlyCompletion": "Завершення за 30 днів",
+ "last30Days": "Останні 30 днів",
+ "nextUp": "Наступна найкраща дія",
+ "focusTask": "Найвпливовіше завдання",
+ "focusHint": "Переміщує це завдання до „Виконується\" та „Сьогодні\"",
+ "noNextAction": "Все готово - немає невиконаних завдань."
},
"projectItem": {
"edit": "Редагувати",
@@ -239,7 +261,15 @@
"toggleDropdownMenu": "Перемкнути випадаюче меню",
"projectInitials": "Ініціали проекту",
"share": "Поділитися",
- "sharedProject": "Поділено з командою"
+ "sharedProject": "Поділено з командою",
+ "noDueDate": "Немає терміну",
+ "dueToday": "Термін сьогодні",
+ "dueIn": "Термін через {{count}} {{unit}}",
+ "overdue": "Прострочено на {{count}} {{unit}}",
+ "day": "день",
+ "days": "днів",
+ "sharedUser": "Спільний користувач",
+ "moreSharedUsers": "+{{count}} користувачів"
},
"forms": {
"noteTitle": "Заголовок нотатки",
@@ -544,7 +574,8 @@
"security": "Безпека",
"productivity": "Продуктивність",
"telegram": "Telegram",
- "ai": "ШІ Функції"
+ "ai": "ШІ Функції",
+ "notifications": "Налаштування сповіщень"
},
"security": "Налаштування безпеки",
"changePassword": "Змінити пароль",
@@ -562,7 +593,6 @@
"passwordChangeSuccess": "Пароль успішно змінено!",
"changingPassword": "Зміна паролю...",
"accountSettings": "Обліковий запис та налаштування",
- "aiProductivityFeatures": "ШІ та функції продуктивності",
"botSetup": "Налаштування бота",
"successMessage": "Профіль успішно оновлено!",
"settings": "Налаштування профілю",
@@ -650,7 +680,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Виберіть, як ви хочете отримувати сповіщення про важливі події.",
+ "aiFeatures": "Функції ШІ"
},
"task": {
"suggestions": {
@@ -774,7 +806,9 @@
"activity": "Активність",
"lastUpdatedAt": "Останнє оновлення",
"statusUpdated": "Статус успішно оновлено",
- "statusUpdateError": "Не вдалося оновити статус"
+ "statusUpdateError": "Не вдалося оновити статус",
+ "updatedAt": "Оновлено о",
+ "upcoming": "майбутні"
},
"calendar": {
"month": "Місяць",
@@ -1265,5 +1299,46 @@
"validationErrors": "Помилки валідації:",
"versionIncompatible": "Несумісна версія",
"backupVersion": "Версія резервної копії"
+ },
+ "notifications": {
+ "table": {
+ "type": "Тип сповіщення"
+ },
+ "channels": {
+ "inApp": "В додатку",
+ "email": "Електронна пошта",
+ "push": "Push",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Завдання, що підлягають виконанню",
+ "overdueTasks": "Прострочені завдання",
+ "deferUntil": "Відкласти до",
+ "dueProjects": "Проекти, що підлягають виконанню",
+ "overdueProjects": "Прострочені проекти"
+ },
+ "descriptions": {
+ "dueTasks": "Завдання, термін виконання яких спливає протягом 24 годин",
+ "overdueTasks": "Завдання, термін виконання яких минув",
+ "deferUntil": "Завдання, які тепер доступні для виконання",
+ "dueProjects": "Проекти, термін виконання яких спливає протягом 24 годин",
+ "overdueProjects": "Проекти, термін виконання яких минув"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram не налаштовано:",
+ "message": "Щоб отримувати сповіщення в Telegram, будь ласка, налаштуйте свого Telegram бота у вкладці Telegram."
+ }
+ },
+ "test": {
+ "title": "Тестові сповіщення",
+ "description": "Надішліть тестове сповіщення, щоб побачити, як воно виглядає в додатку та на активованих каналах (Telegram тощо)",
+ "send": "Надіслати тест",
+ "sending": "Надсилається..."
+ },
+ "info": {
+ "title": "Примітка:",
+ "message": "Сповіщення електронною поштою та Push скоро з'являться. Сповіщення в додатку та Telegram наразі доступні."
+ }
}
}
diff --git a/public/locales/vi/translation.json b/public/locales/vi/translation.json
index e389a28..ed96cfe 100644
--- a/public/locales/vi/translation.json
+++ b/public/locales/vi/translation.json
@@ -149,7 +149,8 @@
"overdue": "Quá hạn",
"planned": "Đã lên kế hoạch",
"open": "Mở",
- "completed": "Đã hoàn thành"
+ "completed": "Đã hoàn thành",
+ "noCompletedTasksToday": "Không có nhiệm vụ hoàn thành hôm nay."
},
"timeline": {
"activityTimeline": "Dòng Thời Gian Hoạt Động",
@@ -308,7 +309,8 @@
"security": "Bảo mật",
"productivity": "Năng suất",
"telegram": "Telegram",
- "ai": "Tính năng AI"
+ "ai": "Tính năng AI",
+ "notifications": "Tùy Chọn Thông Báo"
},
"security": "Cài đặt bảo mật",
"changePassword": "Đổi mật khẩu",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "Đổi mật khẩu thành công!",
"changingPassword": "Đang đổi mật khẩu...",
"accountSettings": "Tài khoản & Tùy chọn",
- "aiProductivityFeatures": "Tính năng AI & Năng suất",
"botSetup": "Cài đặt Bot",
"passwordChangeNote": "Các thay đổi mật khẩu sẽ được lưu khi bạn nhấn \"Lưu thay đổi\" ở dưới cùng của biểu mẫu.",
"passwordChangeOptional": "Để trống các trường mật khẩu để cập nhật các cài đặt khác mà không thay đổi mật khẩu của bạn.",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "Chọn cách bạn muốn nhận thông báo về các sự kiện quan trọng.",
+ "aiFeatures": "Tính năng AI"
},
"productivity": {
"stalledProjects": "Dự án Đang Tạm Dừng",
@@ -797,7 +800,9 @@
"activity": "Hoạt động",
"lastUpdatedAt": "Cập nhật lần cuối vào",
"statusUpdated": "Cập nhật trạng thái thành công",
- "statusUpdateError": "Cập nhật trạng thái thất bại"
+ "statusUpdateError": "Cập nhật trạng thái thất bại",
+ "updatedAt": "Cập nhật lúc",
+ "upcoming": "sắp tới"
},
"projects": {
"loading": "Đang tải dự án...",
@@ -833,7 +838,28 @@
"active_desc": "Công việc đang diễn ra"
},
"showMetrics": "Hiển thị số liệu",
- "hideMetrics": "Ẩn số liệu"
+ "hideMetrics": "Ẩn số liệu",
+ "progress": "Tiến độ",
+ "taskMomentum": "Đà nhiệm vụ",
+ "activeTasks": "Nhiệm vụ đang hoạt động",
+ "dueSchedule": "Lịch hạn",
+ "next14Days": "14 ngày tới",
+ "noUpcomingDue": "Không có hạn trong 14 ngày tới.",
+ "peakDay": "Đỉnh",
+ "none": "Không có",
+ "next3days": "3 ngày tới",
+ "nextWeek": "7 ngày tới",
+ "recentCompletion": "Hoàn thành gần đây",
+ "last7And30": "7 & 30 ngày qua",
+ "weeklyPace": "Tốc độ hàng tuần",
+ "prevWeekCompleted": "{{count}} tuần trước",
+ "vsPrevWeek": "vs tuần trước",
+ "monthlyCompletion": "Hoàn thành trong 30 ngày",
+ "last30Days": "30 ngày qua",
+ "nextUp": "Hành động tốt nhất tiếp theo",
+ "focusTask": "Nhiệm vụ có tác động lớn nhất",
+ "focusHint": "Chuyển nhiệm vụ này sang đang thực hiện và hôm nay",
+ "noNextAction": "Tất cả rõ ràng—không có nhiệm vụ nào chưa hoàn thành."
},
"projectItem": {
"edit": "Chỉnh sửa",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "Chuyển đổi menu thả xuống",
"projectInitials": "Chữ cái đầu của dự án",
"share": "Chia sẻ",
- "sharedProject": "Đã chia sẻ với nhóm"
+ "sharedProject": "Đã chia sẻ với nhóm",
+ "noDueDate": "Không có hạn",
+ "dueToday": "Hạn hôm nay",
+ "dueIn": "Hạn trong {{count}} {{unit}}",
+ "overdue": "Quá hạn {{count}} {{unit}}",
+ "day": "ngày",
+ "days": "ngày",
+ "sharedUser": "Người dùng chia sẻ",
+ "moreSharedUsers": "+{{count}} người dùng khác"
},
"areas": {
"title": "Khu vực",
@@ -1265,5 +1299,46 @@
"validationErrors": "Lỗi xác thực:",
"versionIncompatible": "Phiên bản không tương thích",
"backupVersion": "Phiên bản bản sao lưu"
+ },
+ "notifications": {
+ "table": {
+ "type": "Loại Thông Báo"
+ },
+ "channels": {
+ "inApp": "Trong Ứng Dụng",
+ "email": "Email",
+ "push": "Thông Báo Đẩy",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "Công Việc Đến Hạn",
+ "overdueTasks": "Công Việc Quá Hạn",
+ "deferUntil": "Hoãn Đến",
+ "dueProjects": "Dự Án Đến Hạn",
+ "overdueProjects": "Dự Án Quá Hạn"
+ },
+ "descriptions": {
+ "dueTasks": "Công việc đến hạn trong vòng 24 giờ",
+ "overdueTasks": "Công việc đã qua hạn",
+ "deferUntil": "Công việc hiện có sẵn để làm",
+ "dueProjects": "Dự án đến hạn trong vòng 24 giờ",
+ "overdueProjects": "Dự án đã qua hạn"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram Chưa Được Cấu Hình:",
+ "message": "Để nhận thông báo Telegram, vui lòng cấu hình bot Telegram của bạn trong tab Telegram."
+ }
+ },
+ "test": {
+ "title": "Thông Báo Kiểm Tra",
+ "description": "Gửi một thông báo thử nghiệm để xem nó xuất hiện trong ứng dụng và trên các kênh đã bật (Telegram, v.v.)",
+ "send": "Gửi Thử",
+ "sending": "Đang gửi..."
+ },
+ "info": {
+ "title": "Lưu ý:",
+ "message": "Thông báo Email và Push sẽ sớm có. Thông báo trong ứng dụng và Telegram hiện đang có sẵn."
+ }
}
}
diff --git a/public/locales/zh/translation.json b/public/locales/zh/translation.json
index 8ec1cef..1b7c4bb 100644
--- a/public/locales/zh/translation.json
+++ b/public/locales/zh/translation.json
@@ -149,7 +149,8 @@
"overdue": "逾期",
"planned": "计划中",
"open": "打开",
- "completed": "已完成"
+ "completed": "已完成",
+ "noCompletedTasksToday": "今天没有完成的任务。"
},
"timeline": {
"activityTimeline": "活动时间线",
@@ -308,7 +309,8 @@
"security": "安全",
"productivity": "生产力",
"telegram": "电报",
- "ai": "人工智能功能"
+ "ai": "人工智能功能",
+ "notifications": "通知偏好设置"
},
"security": "安全设置",
"changePassword": "更改密码",
@@ -326,7 +328,6 @@
"passwordChangeSuccess": "密码更改成功!",
"changingPassword": "正在更改密码...",
"accountSettings": "账户与偏好设置",
- "aiProductivityFeatures": "人工智能与生产力功能",
"botSetup": "机器人设置",
"passwordChangeNote": "密码更改将在您点击表单底部的“保存更改”时保存。",
"passwordChangeOptional": "留空密码字段以更新其他设置,而不更改您的密码。",
@@ -351,7 +352,9 @@
"avatarUploadSuccess": "Avatar uploaded successfully!",
"avatarRemoveSuccess": "Avatar removed successfully!",
"avatarUploadFailed": "Failed to upload avatar",
- "avatarRemoveFailed": "Failed to remove avatar"
+ "avatarRemoveFailed": "Failed to remove avatar",
+ "notificationsDescription": "选择您希望如何接收重要事件的通知。",
+ "aiFeatures": "AI 功能"
},
"productivity": {
"stalledProjects": "停滞项目",
@@ -797,7 +800,9 @@
"activity": "活动",
"lastUpdatedAt": "最后更新于",
"statusUpdated": "状态更新成功",
- "statusUpdateError": "更新状态失败"
+ "statusUpdateError": "更新状态失败",
+ "updatedAt": "更新时间",
+ "upcoming": "即将到来"
},
"projects": {
"loading": "加载项目中...",
@@ -833,7 +838,28 @@
"active_desc": "正在进行的工作"
},
"showMetrics": "显示指标",
- "hideMetrics": "隐藏指标"
+ "hideMetrics": "隐藏指标",
+ "progress": "进度",
+ "taskMomentum": "任务动力",
+ "activeTasks": "活动任务",
+ "dueSchedule": "截止日程",
+ "next14Days": "接下来14天",
+ "noUpcomingDue": "接下来14天没有截止日期。",
+ "peakDay": "峰值",
+ "none": "无",
+ "next3days": "接下来3天",
+ "nextWeek": "接下来7天",
+ "recentCompletion": "最近完成",
+ "last7And30": "过去7天和30天",
+ "weeklyPace": "每周速度",
+ "prevWeekCompleted": "{{count}} 上周",
+ "vsPrevWeek": "vs 上周",
+ "monthlyCompletion": "30天完成",
+ "last30Days": "过去30天",
+ "nextUp": "下一个最佳行动",
+ "focusTask": "最具影响力的任务",
+ "focusHint": "将此任务移至进行中和今天",
+ "noNextAction": "一切正常——没有未完成的任务。"
},
"projectItem": {
"edit": "编辑",
@@ -843,7 +869,15 @@
"toggleDropdownMenu": "切换下拉菜单",
"projectInitials": "项目首字母",
"share": "分享",
- "sharedProject": "与团队共享"
+ "sharedProject": "与团队共享",
+ "noDueDate": "无截止日期",
+ "dueToday": "今天到期",
+ "dueIn": "{{count}} {{unit}}后到期",
+ "overdue": "逾期 {{count}} {{unit}}",
+ "day": "天",
+ "days": "天",
+ "sharedUser": "共享用户",
+ "moreSharedUsers": "+{{count}}个用户"
},
"areas": {
"title": "区域",
@@ -1265,5 +1299,46 @@
"validationErrors": "验证错误:",
"versionIncompatible": "版本不兼容",
"backupVersion": "备份版本"
+ },
+ "notifications": {
+ "table": {
+ "type": "通知类型"
+ },
+ "channels": {
+ "inApp": "应用内",
+ "email": "电子邮件",
+ "push": "推送",
+ "telegram": "Telegram"
+ },
+ "types": {
+ "dueTasks": "到期任务",
+ "overdueTasks": "逾期任务",
+ "deferUntil": "推迟至",
+ "dueProjects": "到期项目",
+ "overdueProjects": "逾期项目"
+ },
+ "descriptions": {
+ "dueTasks": "在24小时内到期的任务",
+ "overdueTasks": "已过截止日期的任务",
+ "deferUntil": "现在可以开始处理的任务",
+ "dueProjects": "在24小时内到期的项目",
+ "overdueProjects": "已过截止日期的项目"
+ },
+ "telegram": {
+ "notConfigured": {
+ "title": "Telegram 未配置:",
+ "message": "要接收 Telegram 通知,请在 Telegram 选项卡中配置您的 Telegram 机器人。"
+ }
+ },
+ "test": {
+ "title": "测试通知",
+ "description": "发送测试通知以查看它在应用内和启用的频道(Telegram 等)中的显示效果",
+ "send": "发送测试",
+ "sending": "发送中..."
+ },
+ "info": {
+ "title": "注意:",
+ "message": "电子邮件和推送通知即将推出。应用内和 Telegram 通知目前可用。"
+ }
}
}