diff --git a/locale/cs/LC_MESSAGES/timetracker.mo b/locale/cs/LC_MESSAGES/timetracker.mo index f86b7ee..806f585 100644 Binary files a/locale/cs/LC_MESSAGES/timetracker.mo and b/locale/cs/LC_MESSAGES/timetracker.mo differ diff --git a/locale/cs/LC_MESSAGES/timetracker.po b/locale/cs/LC_MESSAGES/timetracker.po index 98d7483..831af35 100644 --- a/locale/cs/LC_MESSAGES/timetracker.po +++ b/locale/cs/LC_MESSAGES/timetracker.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-05 09:08+0200\n" +"POT-Creation-Date: 2026-08-05 18:15+0200\n" "PO-Revision-Date: 2024-05-15 12:00+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: Czech\n" @@ -119,8 +119,8 @@ msgstr "" "\n" "--- Seznam hlavních projektů ---" -#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1880 -#: sl/SL_Menu.py:1944 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1964 +#: sl/SL_Menu.py:2028 msgid "closed" msgstr "uzavřeno" @@ -162,7 +162,7 @@ msgstr "Zadejte nový název pro '{name}': " msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "Hlavní projekt '{old_name}' byl úspěšně přejmenován na '{new_name}'." -#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1917 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:2001 #, python-brace-format msgid "Error: Could not rename. The new name '{new_name}' might already exist." msgstr "Chyba: Nelze přejmenovat. Nový název '{new_name}' již možná existuje." @@ -455,22 +455,22 @@ msgstr "Nebyly nalezeny žádné hlavní projekty. Nelze vypsat úkoly." msgid "Select the main project whose tasks you want to list:" msgstr "Vyberte hlavní projekt, jehož úkoly chcete vypsat:" -#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1941 +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:2025 #, python-brace-format msgid "Tasks for '{name}':" msgstr "Úkoly pro '{name}':" -#: TimeTrackerCLI.py:308 sl/SL_Menu.py:745 sl/SL_Menu.py:895 +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:785 sl/SL_Menu.py:977 msgid "Due" msgstr "Termín" -#: TimeTrackerCLI.py:309 sl/SL_Menu.py:596 sl/SL_Menu.py:616 sl/SL_Menu.py:682 -#: sl/SL_Menu.py:768 sl/SL_Menu.py:1077 sl/SL_Menu.py:2238 sl/SL_Menu.py:2409 +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:636 sl/SL_Menu.py:656 sl/SL_Menu.py:722 +#: sl/SL_Menu.py:808 sl/SL_Menu.py:1161 sl/SL_Menu.py:2322 sl/SL_Menu.py:2493 msgid "Today" msgstr "Dnes" -#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1950 -#: sl/SL_Menu.py:2642 +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:2034 +#: sl/SL_Menu.py:2726 #, python-brace-format msgid "No tasks found for '{name}'." msgstr "Pro '{name}' nebyly nalezeny žádné úkoly." @@ -509,7 +509,7 @@ msgstr "Vyberte úkol z '{name}' k přejmenování:" msgid "Enter the number of the task: " msgstr "Zadejte číslo úkolu: " -#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1993 +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:2077 #, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "Úkol '{old_name}' byl přejmenován na '{new_name}'." @@ -546,7 +546,7 @@ msgid "Task '{task_name}' in '{main_name}' has been closed." msgstr "Úloha '{task_name}' v '{main_name}' byla uzavřena." #: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 -#: sl/SL_Menu.py:1579 sl/SL_Menu.py:1624 sl/SL_Menu.py:1670 +#: sl/SL_Menu.py:1663 sl/SL_Menu.py:1708 sl/SL_Menu.py:1754 msgid "Error: Main project or task not found." msgstr "Chyba: Hlavní projekt nebo úkol nebyl nalezen." @@ -682,7 +682,7 @@ msgstr "" msgid " Task: {name}" msgstr " Úkol: {name}" -#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1752 +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1836 #, python-brace-format msgid "No tasks found inactive for more than {weeks} weeks." msgstr "Žádné úkoly nebyly nalezeny neaktivní déle než {weeks} týdnů." @@ -695,7 +695,7 @@ msgstr "" "\n" "--- Seznam všech uzavřených úkolů ---" -#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1777 sl/SL_Menu.py:1800 +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1861 sl/SL_Menu.py:1884 msgid "No closed tasks found." msgstr "Nebyly nalezeny žádné uzavřené úkoly." @@ -754,9 +754,9 @@ msgstr "" "\n" "--- Upravit úkol ---" -#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1547 sl/SL_Menu.py:1592 -#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1683 sl/SL_Menu.py:1832 sl/SL_Menu.py:1963 -#: sl/SL_Menu.py:2122 sl/SL_Menu.py:2315 +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1631 sl/SL_Menu.py:1676 +#: sl/SL_Menu.py:1721 sl/SL_Menu.py:1767 sl/SL_Menu.py:1916 sl/SL_Menu.py:2047 +#: sl/SL_Menu.py:2206 sl/SL_Menu.py:2399 msgid "No open projects found." msgstr "Nebyly nalezeny žádné otevřené projekty." @@ -807,7 +807,7 @@ msgstr "" "Je tento úkol dokončen? (aktuální:{current}, y/n, pro zachování stiskněte " "Enter):" -#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2475 +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2559 msgid "Task updated successfully." msgstr "Úloha byla úspěšně aktualizována." @@ -905,7 +905,7 @@ msgstr "Ponechte prázdné pro zrušení." msgid "New Path: " msgstr "Nová cesta: " -#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1334 +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1418 #, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Chyba: Adresář '{dir}' neexistuje." @@ -918,11 +918,11 @@ msgstr "Umístění úložiště aktualizováno." msgid "Do you want to move the existing data to the new location? (y/n): " msgstr "Chcete přesunout stávající data do nového umístění? (a/n): " -#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1344 +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1428 msgid "Data moved successfully." msgstr "Data byla úspěšně přesunuta." -#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1346 +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1430 #, python-brace-format msgid "Error moving data: {error}" msgstr "Chyba při přesunu dat: {error}" @@ -1033,7 +1033,7 @@ msgstr "Zadejte počáteční datum (RRRR-MM-DD): " msgid "Enter the end date (YYYY-MM-DD): " msgstr "Zadejte koncové datum (RRRR-MM-DD): " -#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2593 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2677 msgid "Error: The start date cannot be after the end date." msgstr "Chyba: Počáteční datum nemůže být po koncovém datu." @@ -1045,8 +1045,8 @@ msgstr "" "\n" "--- Podrobná zpráva o úkolu ---" -#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1883 -#: sl/SL_Menu.py:1930 sl/SL_Menu.py:2070 sl/SL_Menu.py:2611 sl/SL_Menu.py:2670 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1967 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2154 sl/SL_Menu.py:2695 sl/SL_Menu.py:2754 msgid "No projects found." msgstr "Nebyly nalezeny žádné projekty." @@ -1191,12 +1191,12 @@ msgstr "" msgid "Select a task from '{name}':" msgstr "Vyberte úkol z '{name}':" -#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2526 +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2610 #, python-brace-format msgid "Work started on '{task_name}' in project '{main_name}'." msgstr "Zahájena práce na '{task_name}' v projektu '{main_name}'." -#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2530 +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2614 msgid "Error starting work." msgstr "Chyba při zahájení práce." @@ -1232,7 +1232,7 @@ msgstr " Zahájeno v: {date}" msgid " Duration: {duration}" msgstr " Trvání: {duration}" -#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:559 sl/SL_Menu.py:2552 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:870 sl/SL_Menu.py:2636 msgid "No active work session." msgstr "Žádná aktivní pracovní relace." @@ -1244,11 +1244,11 @@ msgstr "" "\n" "--- Zastavit práci ---" -#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:504 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:594 msgid "Work session stopped successfully." msgstr "Pracovní relace byla úspěšně zastavena." -#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:506 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:596 msgid "No active work session to stop." msgstr "Žádná aktivní pracovní relace k zastavení." @@ -1264,410 +1264,424 @@ msgstr "" msgid "Exiting application. Goodbye!" msgstr "Ukončuji aplikaci. Na shledanou!" -#: sl/SL_Menu.py:399 +#: sl/SL_Menu.py:278 sl/SL_Menu.py:989 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 +msgid "Priority" +msgstr "Priorita" + +#: sl/SL_Menu.py:450 +#, python-brace-format +msgid "Version {version}" +msgstr "Verze {version}" + +#: sl/SL_Menu.py:455 update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "Je k dispozici nová verze ({version})." + +#: sl/SL_Menu.py:457 +msgid "Restart and install the update" +msgstr "Restartovat a nainstalovat aktualizaci" + +#: sl/SL_Menu.py:458 +msgid "Downloading and installing update..." +msgstr "Stahuji a instaluji aktualizaci..." + +#: sl/SL_Menu.py:489 msgid "New" msgstr "Nové" -#: sl/SL_Menu.py:400 +#: sl/SL_Menu.py:490 msgid "New Project" msgstr "Nový projekt" -#: sl/SL_Menu.py:403 +#: sl/SL_Menu.py:493 msgid "New Task" msgstr "Nový úkol" -#: sl/SL_Menu.py:408 +#: sl/SL_Menu.py:498 msgid "Project & Task Management" msgstr "Správa projektů a úkolů" -#: sl/SL_Menu.py:409 sl/SL_Menu.py:1117 +#: sl/SL_Menu.py:499 sl/SL_Menu.py:1201 msgid "Main Project Management" msgstr "Hlavní správa projektů" -#: sl/SL_Menu.py:410 sl/SL_Menu.py:1133 sl/SL_Menu.py:1528 +#: sl/SL_Menu.py:500 sl/SL_Menu.py:1217 sl/SL_Menu.py:1612 msgid "Add Project" msgstr "Přidat projekt" -#: sl/SL_Menu.py:413 sl/SL_Menu.py:1136 sl/SL_Menu.py:1876 +#: sl/SL_Menu.py:503 sl/SL_Menu.py:1220 sl/SL_Menu.py:1960 msgid "List Projects" msgstr "Vypsat projekty" -#: sl/SL_Menu.py:416 sl/SL_Menu.py:1139 sl/SL_Menu.py:1891 +#: sl/SL_Menu.py:506 sl/SL_Menu.py:1223 sl/SL_Menu.py:1975 msgid "Rename Project" msgstr "Přejmenovat projekt" -#: sl/SL_Menu.py:419 sl/SL_Menu.py:1142 sl/SL_Menu.py:2006 sl/SL_Menu.py:2019 +#: sl/SL_Menu.py:509 sl/SL_Menu.py:1226 sl/SL_Menu.py:2090 sl/SL_Menu.py:2103 msgid "Close Project" msgstr "Zavřít projekt" -#: sl/SL_Menu.py:422 sl/SL_Menu.py:1145 sl/SL_Menu.py:2036 sl/SL_Menu.py:2049 +#: sl/SL_Menu.py:512 sl/SL_Menu.py:1229 sl/SL_Menu.py:2120 sl/SL_Menu.py:2133 msgid "Re-open Project" msgstr "Znovu otevřít projekt" -#: sl/SL_Menu.py:425 sl/SL_Menu.py:1148 sl/SL_Menu.py:2066 sl/SL_Menu.py:2080 +#: sl/SL_Menu.py:515 sl/SL_Menu.py:1232 sl/SL_Menu.py:2150 sl/SL_Menu.py:2164 msgid "Delete Project" msgstr "Smazat projekt" -#: sl/SL_Menu.py:428 sl/SL_Menu.py:1151 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:518 sl/SL_Menu.py:1235 sl/SL_Menu.py:2181 msgid "List Inactive Projects" msgstr "Seznam neaktivních projektů" -#: sl/SL_Menu.py:431 sl/SL_Menu.py:1154 +#: sl/SL_Menu.py:521 sl/SL_Menu.py:1238 msgid "Demote Project to Task" msgstr "Degradovat projekt na úkol" -#: sl/SL_Menu.py:434 sl/SL_Menu.py:1157 sl/SL_Menu.py:2159 +#: sl/SL_Menu.py:524 sl/SL_Menu.py:1241 sl/SL_Menu.py:2243 msgid "List Completed Projects" msgstr "Vypsat dokončené projekty" -#: sl/SL_Menu.py:438 sl/SL_Menu.py:1119 sl/SL_Menu.py:1170 +#: sl/SL_Menu.py:528 sl/SL_Menu.py:1203 sl/SL_Menu.py:1254 msgid "Task Management" msgstr "Správa úkolů" -#: sl/SL_Menu.py:439 sl/SL_Menu.py:1172 sl/SL_Menu.py:2177 sl/SL_Menu.py:2208 -#: sl/SL_Menu.py:2283 +#: sl/SL_Menu.py:529 sl/SL_Menu.py:1256 sl/SL_Menu.py:2261 sl/SL_Menu.py:2292 +#: sl/SL_Menu.py:2367 msgid "Add Task" msgstr "Přidat úkol" -#: sl/SL_Menu.py:442 sl/SL_Menu.py:1175 sl/SL_Menu.py:1926 +#: sl/SL_Menu.py:532 sl/SL_Menu.py:1259 sl/SL_Menu.py:2010 msgid "List Tasks" msgstr "Vypsat úkoly" -#: sl/SL_Menu.py:445 sl/SL_Menu.py:1178 sl/SL_Menu.py:1959 +#: sl/SL_Menu.py:535 sl/SL_Menu.py:1262 sl/SL_Menu.py:2043 msgid "Rename Task" msgstr "Přejmenovat úkol" -#: sl/SL_Menu.py:448 sl/SL_Menu.py:1181 sl/SL_Menu.py:1543 sl/SL_Menu.py:1569 -#: sl/SL_Menu.py:1748 +#: sl/SL_Menu.py:538 sl/SL_Menu.py:1265 sl/SL_Menu.py:1627 sl/SL_Menu.py:1653 +#: sl/SL_Menu.py:1832 msgid "Close Task" msgstr "Uzavřít úkol" -#: sl/SL_Menu.py:451 sl/SL_Menu.py:1184 sl/SL_Menu.py:1588 sl/SL_Menu.py:1614 +#: sl/SL_Menu.py:541 sl/SL_Menu.py:1268 sl/SL_Menu.py:1672 sl/SL_Menu.py:1698 msgid "Re-open Task" msgstr "Znovu otevřít úkol" -#: sl/SL_Menu.py:454 sl/SL_Menu.py:1187 sl/SL_Menu.py:1633 sl/SL_Menu.py:1660 +#: sl/SL_Menu.py:544 sl/SL_Menu.py:1271 sl/SL_Menu.py:1717 sl/SL_Menu.py:1744 msgid "Delete Task" msgstr "Smazat úkol" -#: sl/SL_Menu.py:457 sl/SL_Menu.py:1190 sl/SL_Menu.py:1679 sl/SL_Menu.py:1715 +#: sl/SL_Menu.py:547 sl/SL_Menu.py:1274 sl/SL_Menu.py:1763 sl/SL_Menu.py:1799 msgid "Move Task" msgstr "Přesunout úkol" -#: sl/SL_Menu.py:460 sl/SL_Menu.py:1193 sl/SL_Menu.py:1734 +#: sl/SL_Menu.py:550 sl/SL_Menu.py:1277 sl/SL_Menu.py:1818 msgid "List Inactive Tasks" msgstr "Vypsat neaktivní úkoly" -#: sl/SL_Menu.py:463 sl/SL_Menu.py:1196 sl/SL_Menu.py:1761 +#: sl/SL_Menu.py:553 sl/SL_Menu.py:1280 sl/SL_Menu.py:1845 msgid "List All Closed Tasks" msgstr "Vypsat všechny uzavřené úkoly" -#: sl/SL_Menu.py:466 sl/SL_Menu.py:675 sl/SL_Menu.py:761 sl/SL_Menu.py:929 -#: sl/SL_Menu.py:1199 sl/SL_Menu.py:2311 sl/SL_Menu.py:2331 sl/SL_Menu.py:2366 +#: sl/SL_Menu.py:556 sl/SL_Menu.py:715 sl/SL_Menu.py:801 sl/SL_Menu.py:1011 +#: sl/SL_Menu.py:1283 sl/SL_Menu.py:2395 sl/SL_Menu.py:2415 sl/SL_Menu.py:2450 msgid "Edit Task" msgstr "Upravit úkol" -#: sl/SL_Menu.py:469 sl/SL_Menu.py:1202 sl/SL_Menu.py:1786 +#: sl/SL_Menu.py:559 sl/SL_Menu.py:1286 sl/SL_Menu.py:1870 msgid "Delete All Closed Tasks" msgstr "Smazat všechny uzavřené úkoly" -#: sl/SL_Menu.py:472 sl/SL_Menu.py:1205 sl/SL_Menu.py:1828 +#: sl/SL_Menu.py:562 sl/SL_Menu.py:1289 sl/SL_Menu.py:1912 msgid "Promote Task to Project" msgstr "Povýšit úkol na projekt" -#: sl/SL_Menu.py:477 +#: sl/SL_Menu.py:567 msgid "Today View" msgstr "Dnes Zobrazit" -#: sl/SL_Menu.py:482 sl/SL_Menu.py:591 +#: sl/SL_Menu.py:572 sl/SL_Menu.py:631 msgid "Task Planning" msgstr "Plánování úkolů" -#: sl/SL_Menu.py:487 sl/SL_Menu.py:962 +#: sl/SL_Menu.py:577 sl/SL_Menu.py:1046 msgid "E-Mail Task Assignment" msgstr "Zadání úkolu E-" -#: sl/SL_Menu.py:492 sl/SL_Menu.py:671 sl/SL_Menu.py:757 sl/SL_Menu.py:925 +#: sl/SL_Menu.py:582 sl/SL_Menu.py:711 sl/SL_Menu.py:797 sl/SL_Menu.py:1007 msgid "Start work on task" msgstr "Začít práci na úkolu" -#: sl/SL_Menu.py:497 +#: sl/SL_Menu.py:587 msgid "Show current work" msgstr "Zobrazit aktuální práci" -#: sl/SL_Menu.py:502 +#: sl/SL_Menu.py:592 msgid "Stop current work" msgstr "Zastavit aktuální práci" -#: sl/SL_Menu.py:510 sl/SL_Menu.py:1218 +#: sl/SL_Menu.py:600 sl/SL_Menu.py:1302 msgid "Reporting" msgstr "Reportování" -#: sl/SL_Menu.py:511 sl/SL_Menu.py:1221 +#: sl/SL_Menu.py:601 sl/SL_Menu.py:1305 msgid "Daily Report (Today)" msgstr "Denní zpráva (dnes)" -#: sl/SL_Menu.py:516 sl/SL_Menu.py:1227 sl/SL_Menu.py:2561 +#: sl/SL_Menu.py:606 sl/SL_Menu.py:1311 sl/SL_Menu.py:2645 msgid "Daily Report (Specific Day)" msgstr "Denní zpráva (konkrétní den)" -#: sl/SL_Menu.py:519 sl/SL_Menu.py:1230 sl/SL_Menu.py:2580 +#: sl/SL_Menu.py:609 sl/SL_Menu.py:1314 sl/SL_Menu.py:2664 msgid "Date Range Report" msgstr "Zpráva za období" -#: sl/SL_Menu.py:522 sl/SL_Menu.py:1233 sl/SL_Menu.py:2607 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:612 sl/SL_Menu.py:1317 sl/SL_Menu.py:2691 sl/SL_Menu.py:2722 msgid "Detailed Task Report" msgstr "Podrobná zpráva o úkolu" -#: sl/SL_Menu.py:525 sl/SL_Menu.py:1236 sl/SL_Menu.py:2666 +#: sl/SL_Menu.py:615 sl/SL_Menu.py:1320 sl/SL_Menu.py:2750 msgid "Detailed Project Report" msgstr "Podrobná zpráva o projektu" -#: sl/SL_Menu.py:528 sl/SL_Menu.py:1239 sl/SL_Menu.py:2693 +#: sl/SL_Menu.py:618 sl/SL_Menu.py:1323 sl/SL_Menu.py:2777 msgid "Detailed Daily Report" msgstr "Podrobná denní zpráva" -#: sl/SL_Menu.py:533 sl/SL_Menu.py:1256 +#: sl/SL_Menu.py:623 sl/SL_Menu.py:1340 msgid "Settings" msgstr "Nastavení" -#: sl/SL_Menu.py:557 sl/SL_Menu.py:2539 -msgid "Current Active Work" -msgstr "Aktuální aktivní práce" - -#: sl/SL_Menu.py:562 sl/SL_Menu.py:695 sl/SL_Menu.py:781 sl/SL_Menu.py:936 -#: sl/SL_Menu.py:2411 -msgid "Done" -msgstr "Hotovo" - -#: sl/SL_Menu.py:576 -msgid "Edit current task" -msgstr "Upravit aktuální úkol" - -#: sl/SL_Menu.py:584 -msgid "Exit" -msgstr "Konec" - -#: sl/SL_Menu.py:597 sl/SL_Menu.py:617 +#: sl/SL_Menu.py:637 sl/SL_Menu.py:657 msgid "Tomorrow" msgstr "Zítra" -#: sl/SL_Menu.py:598 sl/SL_Menu.py:618 +#: sl/SL_Menu.py:638 sl/SL_Menu.py:658 msgid "Weekly overview" msgstr "Týdenní přehled" -#: sl/SL_Menu.py:599 sl/SL_Menu.py:619 +#: sl/SL_Menu.py:639 sl/SL_Menu.py:659 msgid "Overdue tasks" msgstr "Zpožděné úkoly" -#: sl/SL_Menu.py:600 sl/SL_Menu.py:620 +#: sl/SL_Menu.py:640 sl/SL_Menu.py:660 msgid "Unplanned tasks" msgstr "Neplánované úkoly" -#: sl/SL_Menu.py:601 +#: sl/SL_Menu.py:641 msgid "All" msgstr "Vše" -#: sl/SL_Menu.py:608 +#: sl/SL_Menu.py:648 msgid "Filter" msgstr "Filtr" -#: sl/SL_Menu.py:627 +#: sl/SL_Menu.py:667 msgid "Tasks" msgstr "Úkoly" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Friday" msgstr "Pátek" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Monday" msgstr "Pondělí" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Saturday" msgstr "Sobota" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Sunday" msgstr "Neděle" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Thursday" msgstr "Čtvrtek" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Tuesday" msgstr "Úterý" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Wednesday" msgstr "Středa" -#: sl/SL_Menu.py:796 +#: sl/SL_Menu.py:735 sl/SL_Menu.py:821 sl/SL_Menu.py:873 sl/SL_Menu.py:1018 +#: sl/SL_Menu.py:2495 +msgid "Done" +msgstr "Hotovo" + +#: sl/SL_Menu.py:836 msgid "No tasks found." msgstr "Nebyly nalezeny žádné úkoly." -#: sl/SL_Menu.py:798 sl/SL_Menu.py:955 sl/SL_Menu.py:1106 sl/SL_Menu.py:1163 -#: sl/SL_Menu.py:1211 sl/SL_Menu.py:1515 sl/SL_Menu.py:1548 sl/SL_Menu.py:1559 -#: sl/SL_Menu.py:1593 sl/SL_Menu.py:1604 sl/SL_Menu.py:1638 sl/SL_Menu.py:1649 -#: sl/SL_Menu.py:1684 sl/SL_Menu.py:1695 sl/SL_Menu.py:1703 sl/SL_Menu.py:1754 -#: sl/SL_Menu.py:1779 sl/SL_Menu.py:1801 sl/SL_Menu.py:1833 sl/SL_Menu.py:1844 -#: sl/SL_Menu.py:1884 sl/SL_Menu.py:1896 sl/SL_Menu.py:1931 sl/SL_Menu.py:1952 -#: sl/SL_Menu.py:1964 sl/SL_Menu.py:1975 sl/SL_Menu.py:2011 sl/SL_Menu.py:2041 -#: sl/SL_Menu.py:2071 sl/SL_Menu.py:2111 sl/SL_Menu.py:2123 sl/SL_Menu.py:2170 -#: sl/SL_Menu.py:2182 sl/SL_Menu.py:2316 sl/SL_Menu.py:2335 sl/SL_Menu.py:2348 -#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2500 sl/SL_Menu.py:2510 sl/SL_Menu.py:2554 -#: sl/SL_Menu.py:2573 sl/SL_Menu.py:2600 sl/SL_Menu.py:2612 sl/SL_Menu.py:2624 -#: sl/SL_Menu.py:2643 sl/SL_Menu.py:2659 sl/SL_Menu.py:2671 sl/SL_Menu.py:2686 -#: sl/SL_Menu.py:2705 sl/SL_Menu.py:2746 sl/SL_Menu.py:2761 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:1190 sl/SL_Menu.py:1208 sl/SL_Menu.py:1247 +#: sl/SL_Menu.py:1295 sl/SL_Menu.py:1329 sl/SL_Menu.py:1599 sl/SL_Menu.py:1632 +#: sl/SL_Menu.py:1643 sl/SL_Menu.py:1677 sl/SL_Menu.py:1688 sl/SL_Menu.py:1722 +#: sl/SL_Menu.py:1733 sl/SL_Menu.py:1768 sl/SL_Menu.py:1779 sl/SL_Menu.py:1787 +#: sl/SL_Menu.py:1838 sl/SL_Menu.py:1863 sl/SL_Menu.py:1885 sl/SL_Menu.py:1917 +#: sl/SL_Menu.py:1928 sl/SL_Menu.py:1968 sl/SL_Menu.py:1980 sl/SL_Menu.py:2015 +#: sl/SL_Menu.py:2036 sl/SL_Menu.py:2048 sl/SL_Menu.py:2059 sl/SL_Menu.py:2095 +#: sl/SL_Menu.py:2125 sl/SL_Menu.py:2155 sl/SL_Menu.py:2195 sl/SL_Menu.py:2207 +#: sl/SL_Menu.py:2254 sl/SL_Menu.py:2266 sl/SL_Menu.py:2400 sl/SL_Menu.py:2419 +#: sl/SL_Menu.py:2432 sl/SL_Menu.py:2447 sl/SL_Menu.py:2584 sl/SL_Menu.py:2594 +#: sl/SL_Menu.py:2638 sl/SL_Menu.py:2657 sl/SL_Menu.py:2684 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2708 sl/SL_Menu.py:2727 sl/SL_Menu.py:2743 sl/SL_Menu.py:2755 +#: sl/SL_Menu.py:2770 sl/SL_Menu.py:2789 sl/SL_Menu.py:2830 sl/SL_Menu.py:2845 msgid "Back" msgstr "Zpět" -#: sl/SL_Menu.py:805 +#: sl/SL_Menu.py:849 msgid "Today's Tasks" msgstr "Dnešní úkoly" -#: sl/SL_Menu.py:826 +#: sl/SL_Menu.py:868 sl/SL_Menu.py:2623 +msgid "Current Active Work" +msgstr "Aktuální aktivní práce" + +#: sl/SL_Menu.py:887 +msgid "Edit current task" +msgstr "Upravit aktuální úkol" + +#: sl/SL_Menu.py:908 msgid "Show only open tasks" msgstr "Zobrazit pouze otevřené úkoly" -#: sl/SL_Menu.py:838 +#: sl/SL_Menu.py:920 msgid "Sort by priority" msgstr "Řadit podle priority" -#: sl/SL_Menu.py:907 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 -msgid "Priority" -msgstr "Priorita" - -#: sl/SL_Menu.py:910 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 +#: sl/SL_Menu.py:992 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 msgid "0 (lowest) to 9 (highest)" msgstr "0 (nejnižší) až 9 (nejvyšší)" -#: sl/SL_Menu.py:951 +#: sl/SL_Menu.py:1033 msgid "No open tasks for today." msgstr "Žádné otevřené úkoly na dnešek." -#: sl/SL_Menu.py:953 +#: sl/SL_Menu.py:1035 msgid "No tasks for today." msgstr "Žádné úkoly na dnešek." -#: sl/SL_Menu.py:968 +#: sl/SL_Menu.py:1039 +msgid "Exit" +msgstr "Konec" + +#: sl/SL_Menu.py:1052 msgid "Fetching emails..." msgstr "Načítání e-mailů..." -#: sl/SL_Menu.py:971 +#: sl/SL_Menu.py:1055 #, python-brace-format msgid "Error fetching emails: {error}" msgstr "Chyba při načítání e-mailů: {error}" -#: sl/SL_Menu.py:974 +#: sl/SL_Menu.py:1058 #, python-brace-format msgid "{count} new tasks created from emails." msgstr "{count} nových úkolů vytvořených z e-mailů." -#: sl/SL_Menu.py:976 +#: sl/SL_Menu.py:1060 msgid "No new emails found." msgstr "Nebyly nalezeny žádné nové e-maily." -#: sl/SL_Menu.py:1001 +#: sl/SL_Menu.py:1085 #, python-brace-format msgid "{remaining} of {total} emails still to process" msgstr "{remaining} z {total} e-mailů zbývá zpracovat" -#: sl/SL_Menu.py:1005 +#: sl/SL_Menu.py:1089 msgid "No unassigned email tasks available." msgstr "Nejsou k dispozici žádné nepřiřazené e-mailové úkoly." -#: sl/SL_Menu.py:1017 +#: sl/SL_Menu.py:1101 msgid "Assign Project" msgstr "Přiřadit projekt" -#: sl/SL_Menu.py:1028 +#: sl/SL_Menu.py:1112 msgid "Are you sure you want to delete this task?" msgstr "Opravdu chcete smazat tento úkol?" -#: sl/SL_Menu.py:1031 +#: sl/SL_Menu.py:1115 msgid "Yes, delete" msgstr "Ano, smazat" -#: sl/SL_Menu.py:1036 +#: sl/SL_Menu.py:1120 msgid "No, cancel" msgstr "Ne, zrušit" -#: sl/SL_Menu.py:1043 +#: sl/SL_Menu.py:1127 msgid "Delete" msgstr "Smazat" -#: sl/SL_Menu.py:1047 +#: sl/SL_Menu.py:1131 msgid "Edit Details" msgstr "Upravit podrobnosti" -#: sl/SL_Menu.py:1055 sl/SL_Menu.py:2395 +#: sl/SL_Menu.py:1139 sl/SL_Menu.py:2479 msgid "Task Name" msgstr "Název úkolu" -#: sl/SL_Menu.py:1064 sl/SL_Menu.py:2399 +#: sl/SL_Menu.py:1148 sl/SL_Menu.py:2483 msgid "Due Date" msgstr "Termín" -#: sl/SL_Menu.py:1072 sl/SL_Menu.py:2403 +#: sl/SL_Menu.py:1156 sl/SL_Menu.py:2487 msgid "Clear" msgstr "Vymazat" -#: sl/SL_Menu.py:1079 sl/SL_Menu.py:2271 sl/SL_Menu.py:2444 +#: sl/SL_Menu.py:1163 sl/SL_Menu.py:2355 sl/SL_Menu.py:2528 msgid "Notes (Markdown)" msgstr "Poznámky (označení)" -#: sl/SL_Menu.py:1098 +#: sl/SL_Menu.py:1182 msgid "Task details updated successfully." msgstr "Podrobnosti úkolu byly úspěšně aktualizovány." -#: sl/SL_Menu.py:1104 +#: sl/SL_Menu.py:1188 msgid "Error updating task details." msgstr "Při aktualizaci podrobností úkolu došlo k chybě." -#: sl/SL_Menu.py:1115 sl/SL_Menu.py:1131 +#: sl/SL_Menu.py:1199 sl/SL_Menu.py:1215 msgid "Project Management" msgstr "Správa projektů" -#: sl/SL_Menu.py:1124 sl/SL_Menu.py:1245 -msgid "Back to Main Menu" -msgstr "Zpět do hlavního menu" - -#: sl/SL_Menu.py:1259 +#: sl/SL_Menu.py:1343 msgid "Change Language" msgstr "Změnit jazyk" -#: sl/SL_Menu.py:1277 +#: sl/SL_Menu.py:1361 msgid "Select Language" msgstr "Vybrat jazyk" -#: sl/SL_Menu.py:1278 sl/SL_Menu.py:1318 sl/SL_Menu.py:1359 sl/SL_Menu.py:1372 -#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1426 sl/SL_Menu.py:1449 sl/SL_Menu.py:1504 +#: sl/SL_Menu.py:1362 sl/SL_Menu.py:1402 sl/SL_Menu.py:1443 sl/SL_Menu.py:1456 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1510 sl/SL_Menu.py:1533 sl/SL_Menu.py:1588 msgid "Save" msgstr "Uložit" -#: sl/SL_Menu.py:1284 +#: sl/SL_Menu.py:1368 msgid "" "Language changed. Please restart the application for the changes to take " "effect." msgstr "Jazyk byl změněn. Restartujte aplikaci, aby se změny projevily." -#: sl/SL_Menu.py:1287 +#: sl/SL_Menu.py:1371 msgid "Restore Previous Version" msgstr "Obnovit předchozí verzi" -#: sl/SL_Menu.py:1290 +#: sl/SL_Menu.py:1374 msgid "The 'update' module is not available. This feature is disabled." msgstr "Modul 'aktualizace' není k dispozici. Tato funkce je zakázána." -#: sl/SL_Menu.py:1292 +#: sl/SL_Menu.py:1376 #, python-brace-format msgid "No previous version backup '{filename}' found." msgstr "Nebyla nalezena žádná záloha předchozí verze{filename}." -#: sl/SL_Menu.py:1294 +#: sl/SL_Menu.py:1378 msgid "" "This will restore the application to the previously backed-up version. The " "application will then restart. You may need to manually refresh your browser " @@ -1677,35 +1691,35 @@ msgstr "" "restartuje. Pokud se prohlížeč automaticky znovu nepřipojí, možná budete " "muset aktualizovat ručně." -#: sl/SL_Menu.py:1295 +#: sl/SL_Menu.py:1379 msgid "Restore and Restart" msgstr "Obnovit a restartovat" -#: sl/SL_Menu.py:1296 +#: sl/SL_Menu.py:1380 msgid "Restoring and restarting..." msgstr "Obnovování a restartování..." -#: sl/SL_Menu.py:1299 +#: sl/SL_Menu.py:1383 msgid "Restore complete. Please restart the application." msgstr "Obnovení dokončeno. Restartujte aplikaci." -#: sl/SL_Menu.py:1301 +#: sl/SL_Menu.py:1385 msgid "Change Data Storage Location" msgstr "Změnit umístění úložiště dat" -#: sl/SL_Menu.py:1303 +#: sl/SL_Menu.py:1387 msgid "Current data file" msgstr "Aktuální datový soubor" -#: sl/SL_Menu.py:1306 +#: sl/SL_Menu.py:1390 msgid "New Path for data file" msgstr "Nová cesta pro datový soubor" -#: sl/SL_Menu.py:1312 +#: sl/SL_Menu.py:1396 msgid "Move existing data to the new location" msgstr "Přesunout existující data do nového umístění" -#: sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:1399 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." @@ -1713,11 +1727,11 @@ msgstr "" "Pokud není zaškrtnuto, starý datový soubor zůstane a při restartu může být " "vytvořen nový prázdný v novém umístění." -#: sl/SL_Menu.py:1322 +#: sl/SL_Menu.py:1406 msgid "Please enter a new path." msgstr "Zadejte prosím novou cestu." -#: sl/SL_Menu.py:1330 +#: sl/SL_Menu.py:1414 msgid "" "Error: For security, the data file must be located within the application " "directory." @@ -1725,7 +1739,7 @@ msgstr "" "Chyba: Z důvodu zabezpečení musí být datový soubor umístěn v adresáři " "aplikace." -#: sl/SL_Menu.py:1339 +#: sl/SL_Menu.py:1423 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." @@ -1733,257 +1747,261 @@ msgstr "" "Umístění úložiště aktualizováno. Restartujte aplikaci, aby se změny " "projevily." -#: sl/SL_Menu.py:1353 +#: sl/SL_Menu.py:1437 msgid "Report Format" msgstr "Formát zprávy" -#: sl/SL_Menu.py:1358 +#: sl/SL_Menu.py:1442 msgid "Select Format" msgstr "Vyberte formát" -#: sl/SL_Menu.py:1363 +#: sl/SL_Menu.py:1447 msgid "Report format updated." msgstr "Formát zprávy byl aktualizován." -#: sl/SL_Menu.py:1366 +#: sl/SL_Menu.py:1450 msgid "Streamlit Port Settings" msgstr "Nastavení streamovaného portu" -#: sl/SL_Menu.py:1368 +#: sl/SL_Menu.py:1452 msgid "Current Streamlit Port" msgstr "Aktuální port streamovaného proudu" -#: sl/SL_Menu.py:1371 +#: sl/SL_Menu.py:1455 msgid "New Port" msgstr "Nový port" -#: sl/SL_Menu.py:1376 +#: sl/SL_Menu.py:1460 #, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "Port aktualizován na {port}. Restartujte prosím Streamlit." -#: sl/SL_Menu.py:1379 +#: sl/SL_Menu.py:1463 msgid "Email Settings" msgstr "Nastavení e-mailu" -#: sl/SL_Menu.py:1385 +#: sl/SL_Menu.py:1469 msgid "Enable email import" msgstr "Povolit import e-mailů" -#: sl/SL_Menu.py:1386 +#: sl/SL_Menu.py:1470 msgid "IMAP Server" msgstr "Server IMAP" -#: sl/SL_Menu.py:1387 +#: sl/SL_Menu.py:1471 msgid "Port" msgstr "Port" -#: sl/SL_Menu.py:1388 +#: sl/SL_Menu.py:1472 msgid "Username" msgstr "Uživatelské jméno" -#: sl/SL_Menu.py:1389 +#: sl/SL_Menu.py:1473 msgid "Password" msgstr "Heslo" -#: sl/SL_Menu.py:1390 +#: sl/SL_Menu.py:1474 msgid "Use SSL" msgstr "Použít SSL" -#: sl/SL_Menu.py:1403 +#: sl/SL_Menu.py:1487 msgid "Email settings saved." msgstr "Nastavení e-mailu bylo uloženo." -#: sl/SL_Menu.py:1406 +#: sl/SL_Menu.py:1490 msgid "Change CSS Style" msgstr "Změnit styl CSS" -#: sl/SL_Menu.py:1408 +#: sl/SL_Menu.py:1492 msgid "Current CSS file" msgstr "Aktuální soubor CSS" -#: sl/SL_Menu.py:1425 +#: sl/SL_Menu.py:1509 msgid "Select CSS File" msgstr "Vybrat soubor CSS" -#: sl/SL_Menu.py:1431 +#: sl/SL_Menu.py:1515 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." msgstr "Styl CSS byl aktualizován. Pro projevení změn restartujte aplikaci." -#: sl/SL_Menu.py:1434 +#: sl/SL_Menu.py:1518 msgid "Change View Mode" msgstr "Změnit režim zobrazení" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "App Window (Webview)" msgstr "Okno aplikace (Webview)" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "System Browser" msgstr "Systémový prohlížeč" -#: sl/SL_Menu.py:1448 +#: sl/SL_Menu.py:1532 msgid "Select View Mode" msgstr "Vyberte režim zobrazení" -#: sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1539 msgid "" "View mode updated. Please restart the application for the changes to take " "effect." msgstr "" "Režim zobrazení byl aktualizován. Pro projevení změn restartujte aplikaci." -#: sl/SL_Menu.py:1458 +#: sl/SL_Menu.py:1542 msgid "MCP Server Settings" msgstr "Nastavení serveru MCP" -#: sl/SL_Menu.py:1460 +#: sl/SL_Menu.py:1544 msgid "HTTP (Streamable HTTP)" msgstr "HTTP (Streamable HTTP)" -#: sl/SL_Menu.py:1461 +#: sl/SL_Menu.py:1545 msgid "stdio (recommended for Claude Desktop)" msgstr "stdio (doporučeno pro Claude Desktop)" -#: sl/SL_Menu.py:1475 +#: sl/SL_Menu.py:1559 msgid "Transport" msgstr "Přenos" -#: sl/SL_Menu.py:1486 +#: sl/SL_Menu.py:1570 msgid "Enable MCP server" msgstr "Povolit server MCP" -#: sl/SL_Menu.py:1489 +#: sl/SL_Menu.py:1573 msgid "" "Not used with stdio - the MCP client starts and stops the server itself." msgstr "Nepoužívá se s stdio – klient MCP server spouští a zastavuje sám." -#: sl/SL_Menu.py:1492 +#: sl/SL_Menu.py:1576 msgid "Port (HTTP only)" msgstr "Port (pouze HTTP)" -#: sl/SL_Menu.py:1499 +#: sl/SL_Menu.py:1583 msgid "" "With stdio, the app does not start the MCP server itself - the MCP client " "(e.g. Claude Desktop) launches it directly, and the port is ignored." -msgstr "Se stdio aplikace nespouští server MCP sama – klient MCP (např. Claude Desktop) jej spouští přímo a port se ignoruje." +msgstr "" +"Se stdio aplikace nespouští server MCP sama – klient MCP (např. Claude " +"Desktop) jej spouští přímo a port se ignoruje." -#: sl/SL_Menu.py:1510 +#: sl/SL_Menu.py:1594 msgid "" "MCP server settings saved. Please restart the application for the changes to " "take effect." -msgstr "Nastavení serveru MCP bylo uloženo. Restartujte aplikaci, aby se změny projevily." +msgstr "" +"Nastavení serveru MCP bylo uloženo. Restartujte aplikaci, aby se změny " +"projevily." -#: sl/SL_Menu.py:1524 +#: sl/SL_Menu.py:1608 msgid "Add New Project" msgstr "Přidat nový projekt" -#: sl/SL_Menu.py:1527 +#: sl/SL_Menu.py:1611 msgid "Name of the project" msgstr "Název projektu" -#: sl/SL_Menu.py:1531 +#: sl/SL_Menu.py:1615 #, python-brace-format msgid "Project '{name}' added." msgstr "Projekt '{name}' byl přidán." -#: sl/SL_Menu.py:1535 sl/SL_Menu.py:1581 sl/SL_Menu.py:1626 sl/SL_Menu.py:1672 -#: sl/SL_Menu.py:1727 sl/SL_Menu.py:1821 sl/SL_Menu.py:1869 sl/SL_Menu.py:1919 -#: sl/SL_Menu.py:1999 sl/SL_Menu.py:2029 sl/SL_Menu.py:2059 sl/SL_Menu.py:2090 -#: sl/SL_Menu.py:2152 sl/SL_Menu.py:2192 sl/SL_Menu.py:2304 sl/SL_Menu.py:2323 -#: sl/SL_Menu.py:2484 sl/SL_Menu.py:2532 +#: sl/SL_Menu.py:1619 sl/SL_Menu.py:1665 sl/SL_Menu.py:1710 sl/SL_Menu.py:1756 +#: sl/SL_Menu.py:1811 sl/SL_Menu.py:1905 sl/SL_Menu.py:1953 sl/SL_Menu.py:2003 +#: sl/SL_Menu.py:2083 sl/SL_Menu.py:2113 sl/SL_Menu.py:2143 sl/SL_Menu.py:2174 +#: sl/SL_Menu.py:2236 sl/SL_Menu.py:2276 sl/SL_Menu.py:2388 sl/SL_Menu.py:2407 +#: sl/SL_Menu.py:2568 sl/SL_Menu.py:2616 msgid "Cancel" msgstr "Zrušit" -#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1598 sl/SL_Menu.py:1643 sl/SL_Menu.py:1838 -#: sl/SL_Menu.py:1901 sl/SL_Menu.py:1936 sl/SL_Menu.py:1969 sl/SL_Menu.py:2018 -#: sl/SL_Menu.py:2048 sl/SL_Menu.py:2078 sl/SL_Menu.py:2505 sl/SL_Menu.py:2617 -#: sl/SL_Menu.py:2678 +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1682 sl/SL_Menu.py:1727 sl/SL_Menu.py:1922 +#: sl/SL_Menu.py:1985 sl/SL_Menu.py:2020 sl/SL_Menu.py:2053 sl/SL_Menu.py:2102 +#: sl/SL_Menu.py:2132 sl/SL_Menu.py:2162 sl/SL_Menu.py:2589 sl/SL_Menu.py:2701 +#: sl/SL_Menu.py:2762 msgid "Select Project" msgstr "Vybrat projekt" -#: sl/SL_Menu.py:1558 +#: sl/SL_Menu.py:1642 #, python-brace-format msgid "No open tasks to close in '{name}'." msgstr "Žádné otevřené úkoly k uzavření v '{name}'." -#: sl/SL_Menu.py:1565 sl/SL_Menu.py:1610 sl/SL_Menu.py:1655 sl/SL_Menu.py:1709 -#: sl/SL_Menu.py:1850 sl/SL_Menu.py:1979 sl/SL_Menu.py:2338 sl/SL_Menu.py:2516 -#: sl/SL_Menu.py:2648 +#: sl/SL_Menu.py:1649 sl/SL_Menu.py:1694 sl/SL_Menu.py:1739 sl/SL_Menu.py:1793 +#: sl/SL_Menu.py:1934 sl/SL_Menu.py:2063 sl/SL_Menu.py:2422 sl/SL_Menu.py:2600 +#: sl/SL_Menu.py:2732 msgid "Select Task" msgstr "Vybrat úkol" -#: sl/SL_Menu.py:1575 +#: sl/SL_Menu.py:1659 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been closed." msgstr "Úloha '{sub_name}' v '{main_name}' byla uzavřena." -#: sl/SL_Menu.py:1603 +#: sl/SL_Menu.py:1687 #, python-brace-format msgid "No closed tasks to reopen in '{name}'." msgstr "Žádné uzavřené úlohy k opětovnému otevření v '{name}'." -#: sl/SL_Menu.py:1620 +#: sl/SL_Menu.py:1704 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been reopened." msgstr "Úloha '{sub_name}' v '{main_name}' byla znovu otevřena." -#: sl/SL_Menu.py:1648 +#: sl/SL_Menu.py:1732 #, python-brace-format msgid "No open tasks to delete in '{name}'." msgstr "Žádné otevřené úkoly k odstranění v '{name}'." -#: sl/SL_Menu.py:1659 +#: sl/SL_Menu.py:1743 msgid "This action cannot be undone." msgstr "Tuto akci nelze vrátit zpět." -#: sl/SL_Menu.py:1666 +#: sl/SL_Menu.py:1750 #, python-brace-format msgid "Task '{sub_name}' deleted from '{main_name}'." msgstr "Úkol '{sub_name}' byl smazán z '{main_name}'." -#: sl/SL_Menu.py:1689 +#: sl/SL_Menu.py:1773 msgid "Select Source Project" msgstr "Vybrat zdrojový projekt" -#: sl/SL_Menu.py:1694 +#: sl/SL_Menu.py:1778 #, python-brace-format msgid "No tasks found in '{name}'." msgstr "V '{name}' nebyly nalezeny žádné úkoly." -#: sl/SL_Menu.py:1702 +#: sl/SL_Menu.py:1786 msgid "No other projects available to move to." msgstr "Žádné další projekty k přesunu." -#: sl/SL_Menu.py:1713 sl/SL_Menu.py:2138 +#: sl/SL_Menu.py:1797 sl/SL_Menu.py:2222 msgid "Select Target Project" msgstr "Vybrat cílový projekt" -#: sl/SL_Menu.py:1721 +#: sl/SL_Menu.py:1805 #, python-brace-format msgid "Task '{sub}' moved from '{src}' to '{dst}'." msgstr "Úloha '{sub}' přesunuta z '{src}' do '{dst}'." -#: sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1809 msgid "Error: Could not move task." msgstr "Chyba: Úkol nelze přesunout." -#: sl/SL_Menu.py:1736 sl/SL_Menu.py:2099 +#: sl/SL_Menu.py:1820 sl/SL_Menu.py:2183 msgid "Weeks of inactivity" msgstr "Týdny neaktivity" -#: sl/SL_Menu.py:1741 +#: sl/SL_Menu.py:1825 #, python-brace-format msgid "Inactive Tasks (> {weeks} weeks):" msgstr "Neaktivní úkoly (> {weeks} týdnů):" -#: sl/SL_Menu.py:1746 sl/SL_Menu.py:2107 +#: sl/SL_Menu.py:1830 sl/SL_Menu.py:2191 msgid "Last Activity" msgstr "Poslední aktivita" -#: sl/SL_Menu.py:1805 +#: sl/SL_Menu.py:1889 #, python-brace-format msgid "" "Are you sure you want to delete {count} closed tasks? This action cannot be " @@ -1991,25 +2009,25 @@ msgid "" msgstr "" "Opravdu chcete smazat{count}uzavřené úkoly? Tuto akci nelze vrátit zpět." -#: sl/SL_Menu.py:1807 +#: sl/SL_Menu.py:1891 msgid "Show projects to delete" msgstr "Zobrazit projekty k odstranění" -#: sl/SL_Menu.py:1811 +#: sl/SL_Menu.py:1895 msgid "Delete All" msgstr "Smazat vše" -#: sl/SL_Menu.py:1817 +#: sl/SL_Menu.py:1901 #, python-brace-format msgid "Successfully deleted {count} tasks." msgstr "Úspěšně odstraněno {count} úkolů." -#: sl/SL_Menu.py:1843 +#: sl/SL_Menu.py:1927 #, python-brace-format msgid "No open tasks to promote in '{name}'." msgstr "Žádné otevřené úkoly k povýšení v '{name}'." -#: sl/SL_Menu.py:1854 +#: sl/SL_Menu.py:1938 msgid "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." @@ -2017,67 +2035,67 @@ msgstr "" "Tím vytvoříte nový projekt s názvem úkolu a přesunete všechny časové záznamy " "do úkolu „Obecné“ v něm." -#: sl/SL_Menu.py:1856 +#: sl/SL_Menu.py:1940 msgid "Promote to Project" msgstr "Povýšit na projekt" -#: sl/SL_Menu.py:1895 +#: sl/SL_Menu.py:1979 msgid "No open projects to rename." msgstr "Žádné otevřené projekty k přejmenování." -#: sl/SL_Menu.py:1904 sl/SL_Menu.py:1984 +#: sl/SL_Menu.py:1988 sl/SL_Menu.py:2068 msgid "New Name" msgstr "Nové jméno" -#: sl/SL_Menu.py:1905 sl/SL_Menu.py:1985 +#: sl/SL_Menu.py:1989 sl/SL_Menu.py:2069 msgid "Rename" msgstr "Přejmenovat" -#: sl/SL_Menu.py:1909 sl/SL_Menu.py:1989 +#: sl/SL_Menu.py:1993 sl/SL_Menu.py:2073 msgid "Please enter a new name." msgstr "Zadejte prosím nový název." -#: sl/SL_Menu.py:1911 sl/SL_Menu.py:1991 +#: sl/SL_Menu.py:1995 sl/SL_Menu.py:2075 msgid "New name is the same as the old name." msgstr "Nový název je stejný jako starý název." -#: sl/SL_Menu.py:1913 +#: sl/SL_Menu.py:1997 #, python-brace-format msgid "Project '{old_name}' successfully renamed to '{new_name}'." msgstr "Projekt '{old_name}' byl úspěšně přejmenován na '{new_name}'." -#: sl/SL_Menu.py:1974 +#: sl/SL_Menu.py:2058 #, python-brace-format msgid "No open tasks to rename in '{name}'." msgstr "Žádné otevřené úkoly k přejmenování v '{name}'." -#: sl/SL_Menu.py:1997 +#: sl/SL_Menu.py:2081 msgid "Error: Could not rename. The new name might already exist." msgstr "Chyba: Nelze přejmenovat. Nový název již možná existuje." -#: sl/SL_Menu.py:2010 +#: sl/SL_Menu.py:2094 msgid "No open projects to close." msgstr "Žádné otevřené projekty k uzavření." -#: sl/SL_Menu.py:2023 +#: sl/SL_Menu.py:2107 #, python-brace-format msgid "Project '{name}' has been closed." msgstr "Projekt '{name}' byl uzavřen." -#: sl/SL_Menu.py:2027 sl/SL_Menu.py:2057 sl/SL_Menu.py:2088 +#: sl/SL_Menu.py:2111 sl/SL_Menu.py:2141 sl/SL_Menu.py:2172 msgid "Error: Project not found." msgstr "Chyba: Projekt nenalezen." -#: sl/SL_Menu.py:2040 +#: sl/SL_Menu.py:2124 msgid "No closed projects to reopen." msgstr "Žádné uzavřené projekty k opětovnému otevření." -#: sl/SL_Menu.py:2053 +#: sl/SL_Menu.py:2137 #, python-brace-format msgid "Project '{name}' has been reopened." msgstr "Projekt '{name}' byl znovu otevřen." -#: sl/SL_Menu.py:2079 +#: sl/SL_Menu.py:2163 msgid "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." @@ -2085,206 +2103,206 @@ msgstr "" "Tuto akci nelze vrátit zpět. Všechny související úkoly a časové záznamy " "budou smazány." -#: sl/SL_Menu.py:2084 +#: sl/SL_Menu.py:2168 #, python-brace-format msgid "Project '{name}' has been deleted." msgstr "Projekt '{name}' byl smazán." -#: sl/SL_Menu.py:2104 +#: sl/SL_Menu.py:2188 #, python-brace-format msgid "Inactive Projects (> {weeks} weeks):" msgstr "Neaktivní projekty (> {weeks} týdnů):" -#: sl/SL_Menu.py:2109 +#: sl/SL_Menu.py:2193 #, python-brace-format msgid "No projects found inactive for more than {weeks} weeks." msgstr "" "Žádné projekty nebyly nalezeny jako neaktivní po dobu delší než{weeks}týdnů." -#: sl/SL_Menu.py:2118 sl/SL_Menu.py:2141 +#: sl/SL_Menu.py:2202 sl/SL_Menu.py:2225 msgid "Demote Project" msgstr "Degradovat projekt" -#: sl/SL_Menu.py:2130 +#: sl/SL_Menu.py:2214 msgid "Select Project to Demote" msgstr "Vyberte projekt ke snížení úrovně" -#: sl/SL_Menu.py:2136 +#: sl/SL_Menu.py:2220 msgid "No other projects available to demote into." msgstr "" "Nejsou k dispozici žádné další projekty, na které by bylo možné snížit " "úroveň." -#: sl/SL_Menu.py:2139 +#: sl/SL_Menu.py:2223 #, python-brace-format msgid "This will convert '{src}' into a task of '{dst}'." msgstr "Toto převede '{src}' na úlohu '{dst}'." -#: sl/SL_Menu.py:2164 +#: sl/SL_Menu.py:2248 msgid "Projects with only closed or no tasks:" msgstr "Projekty pouze s uzavřenými nebo žádnými úkoly:" -#: sl/SL_Menu.py:2168 +#: sl/SL_Menu.py:2252 msgid "No completed projects found." msgstr "Nebyly nalezeny žádné dokončené projekty." -#: sl/SL_Menu.py:2177 sl/SL_Menu.py:2311 sl/SL_Menu.py:2607 +#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2395 sl/SL_Menu.py:2691 msgid "Step 1: Select Project" msgstr "Krok 1: Vyberte projekt" -#: sl/SL_Menu.py:2181 sl/SL_Menu.py:2499 +#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2583 msgid "No open projects found. Please add one first." msgstr "Nebyly nalezeny žádné otevřené projekty. Nejprve přidejte jednu." -#: sl/SL_Menu.py:2186 sl/SL_Menu.py:2318 sl/SL_Menu.py:2547 +#: sl/SL_Menu.py:2270 sl/SL_Menu.py:2402 sl/SL_Menu.py:2631 msgid "Project" msgstr "Project" -#: sl/SL_Menu.py:2188 sl/SL_Menu.py:2319 sl/SL_Menu.py:2343 sl/SL_Menu.py:2619 +#: sl/SL_Menu.py:2272 sl/SL_Menu.py:2403 sl/SL_Menu.py:2427 sl/SL_Menu.py:2703 msgid "Next" msgstr "Další" -#: sl/SL_Menu.py:2203 sl/SL_Menu.py:2633 +#: sl/SL_Menu.py:2287 sl/SL_Menu.py:2717 msgid "No project selected. Please start again." msgstr "Nebyl vybrán žádný projekt. Začněte prosím znovu." -#: sl/SL_Menu.py:2208 +#: sl/SL_Menu.py:2292 msgid "To Project:" msgstr "To Project:" -#: sl/SL_Menu.py:2229 +#: sl/SL_Menu.py:2313 msgid "Name of the new task" msgstr "Name of the new task" -#: sl/SL_Menu.py:2235 +#: sl/SL_Menu.py:2319 msgid "Due date" msgstr "Datum splatnosti" -#: sl/SL_Menu.py:2241 sl/SL_Menu.py:2413 +#: sl/SL_Menu.py:2325 sl/SL_Menu.py:2497 msgid "Recurring" msgstr "Opakující se" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "daily" msgstr "denně" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "monthly" msgstr "měsíčně" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "on all business days" msgstr "ve všech pracovních dnech" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "userdefined" msgstr "uživatelsky definované" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "weekly" msgstr "týdně" -#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2437 +#: sl/SL_Menu.py:2345 sl/SL_Menu.py:2521 msgid "Frequency" msgstr "Frekvence" -#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2440 +#: sl/SL_Menu.py:2349 sl/SL_Menu.py:2524 msgid "Days" msgstr "Dny" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Edit" msgstr "Upravit" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Preview" msgstr "Náhled" -#: sl/SL_Menu.py:2274 sl/SL_Menu.py:2447 +#: sl/SL_Menu.py:2358 sl/SL_Menu.py:2531 msgid "No notes provided." msgstr "Nebyly zadány žádné poznámky." -#: sl/SL_Menu.py:2279 sl/SL_Menu.py:2452 +#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2536 msgid "A due date is required for recurring tasks." msgstr "Pro opakující se úkoly je vyžadováno datum dokončení." -#: sl/SL_Menu.py:2287 +#: sl/SL_Menu.py:2371 msgid "Please enter a name." msgstr "Zadejte prosím jméno." -#: sl/SL_Menu.py:2299 +#: sl/SL_Menu.py:2383 #, python-brace-format msgid "Task '{sub_name}' added to '{main_name}'." msgstr "Úkol '{sub_name}' byl přidán do '{main_name}'." -#: sl/SL_Menu.py:2331 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:2415 sl/SL_Menu.py:2722 msgid "Step 2: Select Task from" msgstr "Krok 2: Vyberte úkol z" -#: sl/SL_Menu.py:2334 +#: sl/SL_Menu.py:2418 msgid "No open tasks found." msgstr "Nebyly nalezeny žádné otevřené úkoly." -#: sl/SL_Menu.py:2362 +#: sl/SL_Menu.py:2446 msgid "Task not found." msgstr "Úkol nenalezen." -#: sl/SL_Menu.py:2456 +#: sl/SL_Menu.py:2540 msgid "Save Changes" msgstr "Uložit změny" -#: sl/SL_Menu.py:2481 +#: sl/SL_Menu.py:2565 msgid "Error: Could not update task." msgstr "Chyba: Úlohu nelze aktualizovat." -#: sl/SL_Menu.py:2494 +#: sl/SL_Menu.py:2578 msgid "Start Work on Task" msgstr "Zahájit práci na úloze" -#: sl/SL_Menu.py:2509 +#: sl/SL_Menu.py:2593 #, python-brace-format msgid "No open tasks to start work on in '{name}'." msgstr "" "Žádné otevřené úkoly, na kterých by bylo možné začít pracovat v '{name}'." -#: sl/SL_Menu.py:2520 +#: sl/SL_Menu.py:2604 msgid "Start Work" msgstr "Začít práci" -#: sl/SL_Menu.py:2548 +#: sl/SL_Menu.py:2632 msgid "Task" msgstr "Úloha" -#: sl/SL_Menu.py:2549 +#: sl/SL_Menu.py:2633 msgid "Started at" msgstr "Zahájeno v" -#: sl/SL_Menu.py:2550 tt/TimeTracker.py:1446 +#: sl/SL_Menu.py:2634 tt/TimeTracker.py:1454 msgid "Duration" msgstr "Trvání" -#: sl/SL_Menu.py:2564 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2648 sl/SL_Menu.py:2780 msgid "Select Date" msgstr "Vyberte datum" -#: sl/SL_Menu.py:2565 sl/SL_Menu.py:2589 sl/SL_Menu.py:2653 sl/SL_Menu.py:2679 -#: sl/SL_Menu.py:2697 +#: sl/SL_Menu.py:2649 sl/SL_Menu.py:2673 sl/SL_Menu.py:2737 sl/SL_Menu.py:2763 +#: sl/SL_Menu.py:2781 msgid "Generate Report" msgstr "Vytvořit zprávu" -#: sl/SL_Menu.py:2585 +#: sl/SL_Menu.py:2669 msgid "Start Date" msgstr "Datum zahájení" -#: sl/SL_Menu.py:2587 +#: sl/SL_Menu.py:2671 msgid "End Date" msgstr "Datum ukončení" -#: sl/SL_Menu.py:2712 +#: sl/SL_Menu.py:2796 msgid "Report Result" msgstr "Výsledek zprávy" -#: sl/SL_Menu.py:2741 +#: sl/SL_Menu.py:2825 msgid "Export Report" msgstr "Export zprávy" @@ -2366,7 +2384,7 @@ msgstr "Cílový hlavní projekt '{name}' nebyl nalezen." msgid "Task '{task_name}' moved successfully." msgstr "Úloha '{task_name}' byla úspěšně přesunuta." -#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1408 +#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1416 #, python-brace-format msgid "Task '{task_name}' not found in '{main_name}'." msgstr "Úloha '{task_name}' nebyla nalezena v '{main_name}'." @@ -2424,22 +2442,22 @@ msgstr "Bez předmětu" msgid "Unknown Task" msgstr "Neznámý úkol" -#: tt/TimeTracker.py:1365 +#: tt/TimeTracker.py:1373 #, python-brace-format msgid "- {name}: {hours} hours" msgstr "- {name}: {hours} hodin" -#: tt/TimeTracker.py:1373 +#: tt/TimeTracker.py:1381 #, python-brace-format msgid "## {name} ({hours} hours)\n" msgstr "## {name} ({hours} hodin)\n" -#: tt/TimeTracker.py:1382 +#: tt/TimeTracker.py:1390 #, python-brace-format msgid "# Daily Time Report: {date}\n" msgstr "# Denní zpráva o čase: {date}\n" -#: tt/TimeTracker.py:1383 +#: tt/TimeTracker.py:1391 #, python-brace-format msgid "" "\n" @@ -2448,104 +2466,104 @@ msgstr "" "\n" "**Celkový denní čas: {hours} hodin**" -#: tt/TimeTracker.py:1387 tt/TimeTracker.py:1700 +#: tt/TimeTracker.py:1395 tt/TimeTracker.py:1708 #, python-brace-format msgid "No time tracked for {date}." msgstr "Pro den {date} nebyl zaznamenán žádný čas." -#: tt/TimeTracker.py:1404 tt/TimeTracker.py:1499 +#: tt/TimeTracker.py:1412 tt/TimeTracker.py:1507 #, python-brace-format msgid "Main project '{name}' not found." msgstr "Hlavní projekt '{name}' nebyl nalezen." -#: tt/TimeTracker.py:1412 +#: tt/TimeTracker.py:1420 #, python-brace-format msgid "No time entries found for task '{task_name}'." msgstr "Pro úkol '{task_name}' nebyly nalezeny žádné časové záznamy." -#: tt/TimeTracker.py:1445 tt/TimeTracker.py:1675 +#: tt/TimeTracker.py:1453 tt/TimeTracker.py:1683 msgid "now" msgstr "nyní" -#: tt/TimeTracker.py:1450 +#: tt/TimeTracker.py:1458 #, python-brace-format msgid "# Detailed Report for Task: {name}" msgstr "# Podrobná zpráva o úkolu: {name}" -#: tt/TimeTracker.py:1451 +#: tt/TimeTracker.py:1459 #, python-brace-format msgid "Part of Main Project: {name}" msgstr "Část hlavního projektu: {name}" -#: tt/TimeTracker.py:1454 +#: tt/TimeTracker.py:1462 msgid "Active (currently running)" msgstr "Aktivní (právě běží)" -#: tt/TimeTracker.py:1454 tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1559 msgid "Inactive" msgstr "Neaktivní" -#: tt/TimeTracker.py:1455 tt/TimeTracker.py:1552 +#: tt/TimeTracker.py:1463 tt/TimeTracker.py:1560 msgid "Status" msgstr "Stav" -#: tt/TimeTracker.py:1457 tt/TimeTracker.py:1554 +#: tt/TimeTracker.py:1465 tt/TimeTracker.py:1562 msgid "First entry" msgstr "První záznam" -#: tt/TimeTracker.py:1459 tt/TimeTracker.py:1556 +#: tt/TimeTracker.py:1467 tt/TimeTracker.py:1564 msgid "Last activity" msgstr "Poslední aktivita" -#: tt/TimeTracker.py:1461 tt/TimeTracker.py:1558 +#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1566 msgid "Total recorded time" msgstr "Celkový zaznamenaný čas" -#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1560 +#: tt/TimeTracker.py:1470 tt/TimeTracker.py:1568 msgid "Total work sessions" msgstr "Celkový počet pracovních relací" -#: tt/TimeTracker.py:1466 tt/TimeTracker.py:1564 +#: tt/TimeTracker.py:1474 tt/TimeTracker.py:1572 msgid "Average session duration" msgstr "Průměrná délka relace" -#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1567 +#: tt/TimeTracker.py:1477 tt/TimeTracker.py:1575 msgid "Weekday Distribution" msgstr "Rozložení v týdnu" -#: tt/TimeTracker.py:1479 +#: tt/TimeTracker.py:1487 msgid "Daily Breakdown" msgstr "Denní rozpis" -#: tt/TimeTracker.py:1548 +#: tt/TimeTracker.py:1556 #, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "# Podrobná zpráva pro hlavní projekt: {name}" -#: tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1559 #, python-brace-format msgid "Active (working on '{task_name}')" msgstr "Aktivní (pracuje se na '{task_name}')" -#: tt/TimeTracker.py:1559 +#: tt/TimeTracker.py:1567 msgid "Number of tasks" msgstr "Počet úkolů" -#: tt/TimeTracker.py:1578 +#: tt/TimeTracker.py:1586 msgid "Task Breakdown" msgstr "Rozpis úkolů" -#: tt/TimeTracker.py:1587 +#: tt/TimeTracker.py:1595 #, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} relací" -#: tt/TimeTracker.py:1640 +#: tt/TimeTracker.py:1648 #, python-brace-format msgid "# Time Report: {start_date} to {end_date}\n" msgstr "# Zpráva o čase: od {start_date} do {end_date}\n" -#: tt/TimeTracker.py:1641 +#: tt/TimeTracker.py:1649 #, python-brace-format msgid "" "\n" @@ -2554,12 +2572,12 @@ msgstr "" "\n" "**Celkový čas v období: {total_time}**" -#: tt/TimeTracker.py:1645 +#: tt/TimeTracker.py:1653 #, python-brace-format msgid "No time tracked between {start_date} and {end_date}." msgstr "Mezi {start_date} a {end_date} nebyl zaznamenán žádný čas." -#: tt/TimeTracker.py:1661 +#: tt/TimeTracker.py:1669 #, python-brace-format msgid "# Detailed Daily Report: {date}" msgstr "# Podrobná denní zpráva: {date}" @@ -2572,11 +2590,6 @@ msgstr "" "Varování: Kontrola aktualizací přeskočena. 'github_repo' nebylo nalezeno v " "config.json nebo je soubor neplatný." -#: update.py:49 -#, python-brace-format -msgid "A new version ({version}) is available." -msgstr "Je k dispozici nová verze ({version})." - #: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "Chyba: Adresa URL pro stažení nové verze nebyla nalezena." @@ -2605,49 +2618,53 @@ msgstr "" msgid "Error downloading the update: {error}" msgstr "Chyba při stahování aktualizace: {error}" -#: update.py:108 +#: update.py:98 +msgid "Restarting application to apply the update..." +msgstr "Restartování aplikace za účelem použití aktualizace..." + +#: update.py:122 msgid "Creating backup of current version before update..." msgstr "Vytváření zálohy aktuální verze před aktualizací..." -#: update.py:118 +#: update.py:132 #, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Záloha byla úspěšně vytvořena jako {filename}." -#: update.py:120 +#: update.py:134 #, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "Varování: Nelze vytvořit zálohu. Chyba: {error}" -#: update.py:122 +#: update.py:136 msgid "Installing update..." msgstr "Instaluji aktualizaci..." -#: update.py:142 +#: update.py:156 #, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "Přeskakuji chráněný soubor: {filename}. Nebude přepsán." -#: update.py:151 +#: update.py:165 msgid "Update installed successfully." msgstr "Aktualizace byla úspěšně nainstalována." -#: update.py:153 +#: update.py:167 #, python-brace-format msgid "Error during update installation: {error}" msgstr "Chyba během instalace aktualizace: {error}" -#: update.py:168 +#: update.py:182 #, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "Chyba: Nebyla nalezena žádná záloha předchozí verze '{filename}'." -#: update.py:171 +#: update.py:185 #, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Obnovování předchozí verze z '{filename}'..." -#: update.py:192 +#: update.py:206 #, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " @@ -2655,36 +2672,39 @@ msgid "" msgstr "" "Přeskočení souboru uživatelských dat:{filename}. Během obnovy nebude přepsán." -#: update.py:199 +#: update.py:213 msgid "Previous version restored successfully." msgstr "Předchozí verze byla úspěšně obnovena." -#: update.py:201 +#: update.py:215 msgid "Restarting application to apply changes..." msgstr "Restartování aplikace za účelem použití změn..." -#: update.py:204 +#: update.py:218 #, python-brace-format msgid "Error during restoration: {error}" msgstr "Chyba při obnovování: {error}" -#: update.py:205 +#: update.py:219 #, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "Záložní soubor '{filename}' nebyl odstraněn." -#: update.py:212 +#: update.py:226 msgid "Error: Could not import TimeTracker to get the current version." msgstr "Chyba: Nelze importovat TimeTracker pro získání aktuální verze." -#: update.py:215 +#: update.py:229 msgid "Checking for updates..." msgstr "Kontrola aktualizací..." -#: update.py:222 +#: update.py:236 msgid "No updates available." msgstr "Nejsou k dispozici žádné aktualizace." +#~ msgid "Back to Main Menu" +#~ msgstr "Zpět do hlavního menu" + #~ msgid "" #~ "\n" #~ "Error: Failed to install dependencies. Please install them manually " diff --git a/locale/de/LC_MESSAGES/timetracker.mo b/locale/de/LC_MESSAGES/timetracker.mo index a09de30..32c99f7 100644 Binary files a/locale/de/LC_MESSAGES/timetracker.mo and b/locale/de/LC_MESSAGES/timetracker.mo differ diff --git a/locale/de/LC_MESSAGES/timetracker.po b/locale/de/LC_MESSAGES/timetracker.po index a1691a4..9af9b9d 100644 --- a/locale/de/LC_MESSAGES/timetracker.po +++ b/locale/de/LC_MESSAGES/timetracker.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-05 09:08+0200\n" +"POT-Creation-Date: 2026-08-05 18:15+0200\n" "PO-Revision-Date: 2025-10-30 12:00+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: German\n" @@ -119,8 +119,8 @@ msgstr "" "\n" "--- Hauptprojekte auflisten ---" -#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1880 -#: sl/SL_Menu.py:1944 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1964 +#: sl/SL_Menu.py:2028 msgid "closed" msgstr "geschlossen" @@ -162,7 +162,7 @@ msgstr "Gib den neuen Namen für '{name}' ein: " msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "Hauptprojekt „{old_name}“ wurde erfolgreich in „{new_name}“ umbenannt." -#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1917 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:2001 #, python-brace-format msgid "Error: Could not rename. The new name '{new_name}' might already exist." msgstr "" @@ -462,22 +462,22 @@ msgid "Select the main project whose tasks you want to list:" msgstr "" "Wählen Sie das Hauptprojekt aus, dessen Aufgaben Sie auflisten möchten:" -#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1941 +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:2025 #, python-brace-format msgid "Tasks for '{name}':" msgstr "Aufgaben für '{name}':" -#: TimeTrackerCLI.py:308 sl/SL_Menu.py:745 sl/SL_Menu.py:895 +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:785 sl/SL_Menu.py:977 msgid "Due" msgstr "Fällig" -#: TimeTrackerCLI.py:309 sl/SL_Menu.py:596 sl/SL_Menu.py:616 sl/SL_Menu.py:682 -#: sl/SL_Menu.py:768 sl/SL_Menu.py:1077 sl/SL_Menu.py:2238 sl/SL_Menu.py:2409 +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:636 sl/SL_Menu.py:656 sl/SL_Menu.py:722 +#: sl/SL_Menu.py:808 sl/SL_Menu.py:1161 sl/SL_Menu.py:2322 sl/SL_Menu.py:2493 msgid "Today" msgstr "Heute" -#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1950 -#: sl/SL_Menu.py:2642 +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:2034 +#: sl/SL_Menu.py:2726 #, python-brace-format msgid "No tasks found for '{name}'." msgstr "Keine Aufgaben für '{name}' gefunden." @@ -516,7 +516,7 @@ msgstr "Wähle eine Aufgabe von '{name}' zum Umbenennen aus:" msgid "Enter the number of the task: " msgstr "Gib die Nummer der Aufgabe ein: " -#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1993 +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:2077 #, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "Aufgabe '{old_name}' in '{new_name}' umbenannt." @@ -553,7 +553,7 @@ msgid "Task '{task_name}' in '{main_name}' has been closed." msgstr "Die Aufgabe „{task_name}“ in „{main_name}“ wurde geschlossen." #: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 -#: sl/SL_Menu.py:1579 sl/SL_Menu.py:1624 sl/SL_Menu.py:1670 +#: sl/SL_Menu.py:1663 sl/SL_Menu.py:1708 sl/SL_Menu.py:1754 msgid "Error: Main project or task not found." msgstr "Fehler: Hauptprojekt oder Hauptaufgabe nicht gefunden." @@ -691,7 +691,7 @@ msgstr "" msgid " Task: {name}" msgstr " Aufgabe: {name}" -#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1752 +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1836 #, python-brace-format msgid "No tasks found inactive for more than {weeks} weeks." msgstr "" @@ -705,7 +705,7 @@ msgstr "" "\n" "--- Alle geschlossenen Aufgaben auflisten ---" -#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1777 sl/SL_Menu.py:1800 +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1861 sl/SL_Menu.py:1884 msgid "No closed tasks found." msgstr "Keine geschlossenen Aufgaben gefunden." @@ -766,9 +766,9 @@ msgstr "" "\n" "--- Aufgabe bearbeiten ---" -#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1547 sl/SL_Menu.py:1592 -#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1683 sl/SL_Menu.py:1832 sl/SL_Menu.py:1963 -#: sl/SL_Menu.py:2122 sl/SL_Menu.py:2315 +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1631 sl/SL_Menu.py:1676 +#: sl/SL_Menu.py:1721 sl/SL_Menu.py:1767 sl/SL_Menu.py:1916 sl/SL_Menu.py:2047 +#: sl/SL_Menu.py:2206 sl/SL_Menu.py:2399 msgid "No open projects found." msgstr "Keine offenen Projekte gefunden." @@ -822,7 +822,7 @@ msgstr "" "Ist diese Aufgabe erledigt? (aktuell:{current}, j/n, drücken Sie die " "Eingabetaste, um beizubehalten):" -#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2475 +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2559 msgid "Task updated successfully." msgstr "Aufgabe erfolgreich aktualisiert." @@ -921,7 +921,7 @@ msgstr "Leer lassen zum Abbrechen." msgid "New Path: " msgstr "Neuer Pfad: " -#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1334 +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1418 #, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Fehler: Das Verzeichnis '{dir}' existiert nicht." @@ -935,11 +935,11 @@ msgid "Do you want to move the existing data to the new location? (y/n): " msgstr "" "Möchtest du die vorhandenen Daten an den neuen Ort verschieben? (j/n): " -#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1344 +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1428 msgid "Data moved successfully." msgstr "Daten erfolgreich verschoben." -#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1346 +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1430 #, python-brace-format msgid "Error moving data: {error}" msgstr "Fehler beim Verschieben der Daten: {error}" @@ -1050,7 +1050,7 @@ msgstr "Startdatum eingeben (JJJJ-MM-TT): " msgid "Enter the end date (YYYY-MM-DD): " msgstr "Enddatum eingeben (JJJJ-MM-TT): " -#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2593 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2677 msgid "Error: The start date cannot be after the end date." msgstr "Fehler: Das Startdatum darf nicht nach dem Enddatum liegen." @@ -1062,8 +1062,8 @@ msgstr "" "\n" "--- Detaillierter Aufgaben-Bericht ---" -#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1883 -#: sl/SL_Menu.py:1930 sl/SL_Menu.py:2070 sl/SL_Menu.py:2611 sl/SL_Menu.py:2670 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1967 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2154 sl/SL_Menu.py:2695 sl/SL_Menu.py:2754 msgid "No projects found." msgstr "Keine Projekte gefunden." @@ -1208,12 +1208,12 @@ msgstr "" msgid "Select a task from '{name}':" msgstr "Wähle eine Aufgabe von '{name}' aus:" -#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2526 +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2610 #, python-brace-format msgid "Work started on '{task_name}' in project '{main_name}'." msgstr "Arbeit an '{task_name}' im Projekt '{main_name}' begonnen." -#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2530 +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2614 msgid "Error starting work." msgstr "Fehler beim Starten der Arbeit." @@ -1249,7 +1249,7 @@ msgstr " Begonnen um: {date}" msgid " Duration: {duration}" msgstr " Dauer: {duration}" -#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:559 sl/SL_Menu.py:2552 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:870 sl/SL_Menu.py:2636 msgid "No active work session." msgstr "Keine aktive Arbeitssitzung." @@ -1261,11 +1261,11 @@ msgstr "" "\n" "--- Arbeit beenden ---" -#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:504 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:594 msgid "Work session stopped successfully." msgstr "Arbeitssitzung erfolgreich beendet." -#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:506 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:596 msgid "No active work session to stop." msgstr "Keine aktive Arbeitssitzung zum Beenden." @@ -1281,391 +1281,405 @@ msgstr "" msgid "Exiting application. Goodbye!" msgstr "Anwendung wird beendet. Auf Wiedersehen!" -#: sl/SL_Menu.py:399 +#: sl/SL_Menu.py:278 sl/SL_Menu.py:989 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 +msgid "Priority" +msgstr "Priorität" + +#: sl/SL_Menu.py:450 +#, python-brace-format +msgid "Version {version}" +msgstr "Version {version}" + +#: sl/SL_Menu.py:455 update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "Eine neue Version ({version}) ist verfügbar." + +#: sl/SL_Menu.py:457 +msgid "Restart and install the update" +msgstr "Neu starten und Update installieren" + +#: sl/SL_Menu.py:458 +msgid "Downloading and installing update..." +msgstr "Update wird heruntergeladen und installiert..." + +#: sl/SL_Menu.py:489 msgid "New" msgstr "Neu" -#: sl/SL_Menu.py:400 +#: sl/SL_Menu.py:490 msgid "New Project" msgstr "Neues Projekt" -#: sl/SL_Menu.py:403 +#: sl/SL_Menu.py:493 msgid "New Task" msgstr "Neue Aufgabe" -#: sl/SL_Menu.py:408 +#: sl/SL_Menu.py:498 msgid "Project & Task Management" msgstr "Projekt- und Aufgabenverwaltung" -#: sl/SL_Menu.py:409 sl/SL_Menu.py:1117 +#: sl/SL_Menu.py:499 sl/SL_Menu.py:1201 msgid "Main Project Management" msgstr "Hauptprojektverwaltung" -#: sl/SL_Menu.py:410 sl/SL_Menu.py:1133 sl/SL_Menu.py:1528 +#: sl/SL_Menu.py:500 sl/SL_Menu.py:1217 sl/SL_Menu.py:1612 msgid "Add Project" msgstr "Projekt hinzufügen" -#: sl/SL_Menu.py:413 sl/SL_Menu.py:1136 sl/SL_Menu.py:1876 +#: sl/SL_Menu.py:503 sl/SL_Menu.py:1220 sl/SL_Menu.py:1960 msgid "List Projects" msgstr "Projekte auflisten" -#: sl/SL_Menu.py:416 sl/SL_Menu.py:1139 sl/SL_Menu.py:1891 +#: sl/SL_Menu.py:506 sl/SL_Menu.py:1223 sl/SL_Menu.py:1975 msgid "Rename Project" msgstr "Projekt umbenennen" -#: sl/SL_Menu.py:419 sl/SL_Menu.py:1142 sl/SL_Menu.py:2006 sl/SL_Menu.py:2019 +#: sl/SL_Menu.py:509 sl/SL_Menu.py:1226 sl/SL_Menu.py:2090 sl/SL_Menu.py:2103 msgid "Close Project" msgstr "Projekt schließen" -#: sl/SL_Menu.py:422 sl/SL_Menu.py:1145 sl/SL_Menu.py:2036 sl/SL_Menu.py:2049 +#: sl/SL_Menu.py:512 sl/SL_Menu.py:1229 sl/SL_Menu.py:2120 sl/SL_Menu.py:2133 msgid "Re-open Project" msgstr "Projekt wieder öffnen" -#: sl/SL_Menu.py:425 sl/SL_Menu.py:1148 sl/SL_Menu.py:2066 sl/SL_Menu.py:2080 +#: sl/SL_Menu.py:515 sl/SL_Menu.py:1232 sl/SL_Menu.py:2150 sl/SL_Menu.py:2164 msgid "Delete Project" msgstr "Projekt löschen" -#: sl/SL_Menu.py:428 sl/SL_Menu.py:1151 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:518 sl/SL_Menu.py:1235 sl/SL_Menu.py:2181 msgid "List Inactive Projects" msgstr "Inaktive Projekte auflisten" -#: sl/SL_Menu.py:431 sl/SL_Menu.py:1154 +#: sl/SL_Menu.py:521 sl/SL_Menu.py:1238 msgid "Demote Project to Task" msgstr "Projekt zu Aufgabe herabstufen" -#: sl/SL_Menu.py:434 sl/SL_Menu.py:1157 sl/SL_Menu.py:2159 +#: sl/SL_Menu.py:524 sl/SL_Menu.py:1241 sl/SL_Menu.py:2243 msgid "List Completed Projects" msgstr "Abgeschlossene Projekte auflisten" -#: sl/SL_Menu.py:438 sl/SL_Menu.py:1119 sl/SL_Menu.py:1170 +#: sl/SL_Menu.py:528 sl/SL_Menu.py:1203 sl/SL_Menu.py:1254 msgid "Task Management" msgstr "Aufgabenverwaltung" -#: sl/SL_Menu.py:439 sl/SL_Menu.py:1172 sl/SL_Menu.py:2177 sl/SL_Menu.py:2208 -#: sl/SL_Menu.py:2283 +#: sl/SL_Menu.py:529 sl/SL_Menu.py:1256 sl/SL_Menu.py:2261 sl/SL_Menu.py:2292 +#: sl/SL_Menu.py:2367 msgid "Add Task" msgstr "Aufgabe hinzufügen" -#: sl/SL_Menu.py:442 sl/SL_Menu.py:1175 sl/SL_Menu.py:1926 +#: sl/SL_Menu.py:532 sl/SL_Menu.py:1259 sl/SL_Menu.py:2010 msgid "List Tasks" msgstr "Aufgaben auflisten" -#: sl/SL_Menu.py:445 sl/SL_Menu.py:1178 sl/SL_Menu.py:1959 +#: sl/SL_Menu.py:535 sl/SL_Menu.py:1262 sl/SL_Menu.py:2043 msgid "Rename Task" msgstr "Aufgabe umbenennen" -#: sl/SL_Menu.py:448 sl/SL_Menu.py:1181 sl/SL_Menu.py:1543 sl/SL_Menu.py:1569 -#: sl/SL_Menu.py:1748 +#: sl/SL_Menu.py:538 sl/SL_Menu.py:1265 sl/SL_Menu.py:1627 sl/SL_Menu.py:1653 +#: sl/SL_Menu.py:1832 msgid "Close Task" msgstr "Aufgabe schließen" -#: sl/SL_Menu.py:451 sl/SL_Menu.py:1184 sl/SL_Menu.py:1588 sl/SL_Menu.py:1614 +#: sl/SL_Menu.py:541 sl/SL_Menu.py:1268 sl/SL_Menu.py:1672 sl/SL_Menu.py:1698 msgid "Re-open Task" msgstr "Aufgabe erneut öffnen" -#: sl/SL_Menu.py:454 sl/SL_Menu.py:1187 sl/SL_Menu.py:1633 sl/SL_Menu.py:1660 +#: sl/SL_Menu.py:544 sl/SL_Menu.py:1271 sl/SL_Menu.py:1717 sl/SL_Menu.py:1744 msgid "Delete Task" msgstr "Aufgabe löschen" -#: sl/SL_Menu.py:457 sl/SL_Menu.py:1190 sl/SL_Menu.py:1679 sl/SL_Menu.py:1715 +#: sl/SL_Menu.py:547 sl/SL_Menu.py:1274 sl/SL_Menu.py:1763 sl/SL_Menu.py:1799 msgid "Move Task" msgstr "Aufgabe verschieben" -#: sl/SL_Menu.py:460 sl/SL_Menu.py:1193 sl/SL_Menu.py:1734 +#: sl/SL_Menu.py:550 sl/SL_Menu.py:1277 sl/SL_Menu.py:1818 msgid "List Inactive Tasks" msgstr "Inaktive Aufgaben auflisten" -#: sl/SL_Menu.py:463 sl/SL_Menu.py:1196 sl/SL_Menu.py:1761 +#: sl/SL_Menu.py:553 sl/SL_Menu.py:1280 sl/SL_Menu.py:1845 msgid "List All Closed Tasks" msgstr "Alle geschlossenen Aufgaben auflisten" -#: sl/SL_Menu.py:466 sl/SL_Menu.py:675 sl/SL_Menu.py:761 sl/SL_Menu.py:929 -#: sl/SL_Menu.py:1199 sl/SL_Menu.py:2311 sl/SL_Menu.py:2331 sl/SL_Menu.py:2366 +#: sl/SL_Menu.py:556 sl/SL_Menu.py:715 sl/SL_Menu.py:801 sl/SL_Menu.py:1011 +#: sl/SL_Menu.py:1283 sl/SL_Menu.py:2395 sl/SL_Menu.py:2415 sl/SL_Menu.py:2450 msgid "Edit Task" msgstr "Aufgabe bearbeiten" -#: sl/SL_Menu.py:469 sl/SL_Menu.py:1202 sl/SL_Menu.py:1786 +#: sl/SL_Menu.py:559 sl/SL_Menu.py:1286 sl/SL_Menu.py:1870 msgid "Delete All Closed Tasks" msgstr "Alle geschlossenen Aufgaben löschen" -#: sl/SL_Menu.py:472 sl/SL_Menu.py:1205 sl/SL_Menu.py:1828 +#: sl/SL_Menu.py:562 sl/SL_Menu.py:1289 sl/SL_Menu.py:1912 msgid "Promote Task to Project" msgstr "Aufgabe zum Projekt hochstufen" -#: sl/SL_Menu.py:477 +#: sl/SL_Menu.py:567 msgid "Today View" msgstr "Heute-Ansicht" -#: sl/SL_Menu.py:482 sl/SL_Menu.py:591 +#: sl/SL_Menu.py:572 sl/SL_Menu.py:631 msgid "Task Planning" msgstr "Aufgabenplanung" -#: sl/SL_Menu.py:487 sl/SL_Menu.py:962 +#: sl/SL_Menu.py:577 sl/SL_Menu.py:1046 msgid "E-Mail Task Assignment" msgstr "Zuordnung von E-Mail-Tasks" -#: sl/SL_Menu.py:492 sl/SL_Menu.py:671 sl/SL_Menu.py:757 sl/SL_Menu.py:925 +#: sl/SL_Menu.py:582 sl/SL_Menu.py:711 sl/SL_Menu.py:797 sl/SL_Menu.py:1007 msgid "Start work on task" msgstr "Arbeit an Aufgabe beginnen" -#: sl/SL_Menu.py:497 +#: sl/SL_Menu.py:587 msgid "Show current work" msgstr "Aktuelle Arbeit anzeigen" -#: sl/SL_Menu.py:502 +#: sl/SL_Menu.py:592 msgid "Stop current work" msgstr "Aktuelle Arbeit beenden" -#: sl/SL_Menu.py:510 sl/SL_Menu.py:1218 +#: sl/SL_Menu.py:600 sl/SL_Menu.py:1302 msgid "Reporting" msgstr "Berichterstattung" -#: sl/SL_Menu.py:511 sl/SL_Menu.py:1221 +#: sl/SL_Menu.py:601 sl/SL_Menu.py:1305 msgid "Daily Report (Today)" msgstr "Tagesbericht (Heute)" -#: sl/SL_Menu.py:516 sl/SL_Menu.py:1227 sl/SL_Menu.py:2561 +#: sl/SL_Menu.py:606 sl/SL_Menu.py:1311 sl/SL_Menu.py:2645 msgid "Daily Report (Specific Day)" msgstr "Tagesbericht (Bestimmter Tag)" -#: sl/SL_Menu.py:519 sl/SL_Menu.py:1230 sl/SL_Menu.py:2580 +#: sl/SL_Menu.py:609 sl/SL_Menu.py:1314 sl/SL_Menu.py:2664 msgid "Date Range Report" msgstr "Zeitraum-Bericht" -#: sl/SL_Menu.py:522 sl/SL_Menu.py:1233 sl/SL_Menu.py:2607 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:612 sl/SL_Menu.py:1317 sl/SL_Menu.py:2691 sl/SL_Menu.py:2722 msgid "Detailed Task Report" msgstr "Detaillierter Aufgaben-Bericht" -#: sl/SL_Menu.py:525 sl/SL_Menu.py:1236 sl/SL_Menu.py:2666 +#: sl/SL_Menu.py:615 sl/SL_Menu.py:1320 sl/SL_Menu.py:2750 msgid "Detailed Project Report" msgstr "Detaillierter Projekt-Bericht" -#: sl/SL_Menu.py:528 sl/SL_Menu.py:1239 sl/SL_Menu.py:2693 +#: sl/SL_Menu.py:618 sl/SL_Menu.py:1323 sl/SL_Menu.py:2777 msgid "Detailed Daily Report" msgstr "Detaillierter Tagesbericht" -#: sl/SL_Menu.py:533 sl/SL_Menu.py:1256 +#: sl/SL_Menu.py:623 sl/SL_Menu.py:1340 msgid "Settings" msgstr "Einstellungen" -#: sl/SL_Menu.py:557 sl/SL_Menu.py:2539 -msgid "Current Active Work" -msgstr "Aktuell laufende Arbeit" - -#: sl/SL_Menu.py:562 sl/SL_Menu.py:695 sl/SL_Menu.py:781 sl/SL_Menu.py:936 -#: sl/SL_Menu.py:2411 -msgid "Done" -msgstr "Erledigt" - -#: sl/SL_Menu.py:576 -msgid "Edit current task" -msgstr "Aktuellen Task bearbeiten" - -#: sl/SL_Menu.py:584 -msgid "Exit" -msgstr "Beenden" - -#: sl/SL_Menu.py:597 sl/SL_Menu.py:617 +#: sl/SL_Menu.py:637 sl/SL_Menu.py:657 msgid "Tomorrow" msgstr "Morgen" -#: sl/SL_Menu.py:598 sl/SL_Menu.py:618 +#: sl/SL_Menu.py:638 sl/SL_Menu.py:658 msgid "Weekly overview" msgstr "Wochenübersicht" -#: sl/SL_Menu.py:599 sl/SL_Menu.py:619 +#: sl/SL_Menu.py:639 sl/SL_Menu.py:659 msgid "Overdue tasks" msgstr "Überfällige Aufgaben" -#: sl/SL_Menu.py:600 sl/SL_Menu.py:620 +#: sl/SL_Menu.py:640 sl/SL_Menu.py:660 msgid "Unplanned tasks" msgstr "Ungeplante Aufgaben" -#: sl/SL_Menu.py:601 +#: sl/SL_Menu.py:641 msgid "All" msgstr "Alle" -#: sl/SL_Menu.py:608 +#: sl/SL_Menu.py:648 msgid "Filter" msgstr "Filter" -#: sl/SL_Menu.py:627 +#: sl/SL_Menu.py:667 msgid "Tasks" msgstr "Aufgaben" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Friday" msgstr "Freitag" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Monday" msgstr "Montag" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Saturday" msgstr "Samstag" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Sunday" msgstr "Sonntag" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Thursday" msgstr "Donnerstag" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Tuesday" msgstr "Dienstag" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Wednesday" msgstr "Mittwoch" -#: sl/SL_Menu.py:796 +#: sl/SL_Menu.py:735 sl/SL_Menu.py:821 sl/SL_Menu.py:873 sl/SL_Menu.py:1018 +#: sl/SL_Menu.py:2495 +msgid "Done" +msgstr "Erledigt" + +#: sl/SL_Menu.py:836 msgid "No tasks found." msgstr "Keine Aufgaben gefunden." -#: sl/SL_Menu.py:798 sl/SL_Menu.py:955 sl/SL_Menu.py:1106 sl/SL_Menu.py:1163 -#: sl/SL_Menu.py:1211 sl/SL_Menu.py:1515 sl/SL_Menu.py:1548 sl/SL_Menu.py:1559 -#: sl/SL_Menu.py:1593 sl/SL_Menu.py:1604 sl/SL_Menu.py:1638 sl/SL_Menu.py:1649 -#: sl/SL_Menu.py:1684 sl/SL_Menu.py:1695 sl/SL_Menu.py:1703 sl/SL_Menu.py:1754 -#: sl/SL_Menu.py:1779 sl/SL_Menu.py:1801 sl/SL_Menu.py:1833 sl/SL_Menu.py:1844 -#: sl/SL_Menu.py:1884 sl/SL_Menu.py:1896 sl/SL_Menu.py:1931 sl/SL_Menu.py:1952 -#: sl/SL_Menu.py:1964 sl/SL_Menu.py:1975 sl/SL_Menu.py:2011 sl/SL_Menu.py:2041 -#: sl/SL_Menu.py:2071 sl/SL_Menu.py:2111 sl/SL_Menu.py:2123 sl/SL_Menu.py:2170 -#: sl/SL_Menu.py:2182 sl/SL_Menu.py:2316 sl/SL_Menu.py:2335 sl/SL_Menu.py:2348 -#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2500 sl/SL_Menu.py:2510 sl/SL_Menu.py:2554 -#: sl/SL_Menu.py:2573 sl/SL_Menu.py:2600 sl/SL_Menu.py:2612 sl/SL_Menu.py:2624 -#: sl/SL_Menu.py:2643 sl/SL_Menu.py:2659 sl/SL_Menu.py:2671 sl/SL_Menu.py:2686 -#: sl/SL_Menu.py:2705 sl/SL_Menu.py:2746 sl/SL_Menu.py:2761 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:1190 sl/SL_Menu.py:1208 sl/SL_Menu.py:1247 +#: sl/SL_Menu.py:1295 sl/SL_Menu.py:1329 sl/SL_Menu.py:1599 sl/SL_Menu.py:1632 +#: sl/SL_Menu.py:1643 sl/SL_Menu.py:1677 sl/SL_Menu.py:1688 sl/SL_Menu.py:1722 +#: sl/SL_Menu.py:1733 sl/SL_Menu.py:1768 sl/SL_Menu.py:1779 sl/SL_Menu.py:1787 +#: sl/SL_Menu.py:1838 sl/SL_Menu.py:1863 sl/SL_Menu.py:1885 sl/SL_Menu.py:1917 +#: sl/SL_Menu.py:1928 sl/SL_Menu.py:1968 sl/SL_Menu.py:1980 sl/SL_Menu.py:2015 +#: sl/SL_Menu.py:2036 sl/SL_Menu.py:2048 sl/SL_Menu.py:2059 sl/SL_Menu.py:2095 +#: sl/SL_Menu.py:2125 sl/SL_Menu.py:2155 sl/SL_Menu.py:2195 sl/SL_Menu.py:2207 +#: sl/SL_Menu.py:2254 sl/SL_Menu.py:2266 sl/SL_Menu.py:2400 sl/SL_Menu.py:2419 +#: sl/SL_Menu.py:2432 sl/SL_Menu.py:2447 sl/SL_Menu.py:2584 sl/SL_Menu.py:2594 +#: sl/SL_Menu.py:2638 sl/SL_Menu.py:2657 sl/SL_Menu.py:2684 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2708 sl/SL_Menu.py:2727 sl/SL_Menu.py:2743 sl/SL_Menu.py:2755 +#: sl/SL_Menu.py:2770 sl/SL_Menu.py:2789 sl/SL_Menu.py:2830 sl/SL_Menu.py:2845 msgid "Back" msgstr "Zurück" -#: sl/SL_Menu.py:805 +#: sl/SL_Menu.py:849 msgid "Today's Tasks" msgstr "Heutige Aufgaben" -#: sl/SL_Menu.py:826 +#: sl/SL_Menu.py:868 sl/SL_Menu.py:2623 +msgid "Current Active Work" +msgstr "Aktuell laufende Arbeit" + +#: sl/SL_Menu.py:887 +msgid "Edit current task" +msgstr "Aktuellen Task bearbeiten" + +#: sl/SL_Menu.py:908 msgid "Show only open tasks" msgstr "Nur offene Aufgaben anzeigen" -#: sl/SL_Menu.py:838 +#: sl/SL_Menu.py:920 msgid "Sort by priority" msgstr "Nach Priorität sortieren" -#: sl/SL_Menu.py:907 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 -msgid "Priority" -msgstr "Priorität" - -#: sl/SL_Menu.py:910 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 +#: sl/SL_Menu.py:992 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 msgid "0 (lowest) to 9 (highest)" msgstr "0 (niedrigste) bis 9 (höchste)" -#: sl/SL_Menu.py:951 +#: sl/SL_Menu.py:1033 msgid "No open tasks for today." msgstr "Keine offenen Aufgaben für heute." -#: sl/SL_Menu.py:953 +#: sl/SL_Menu.py:1035 msgid "No tasks for today." msgstr "Keine Aufgaben für heute." -#: sl/SL_Menu.py:968 +#: sl/SL_Menu.py:1039 +msgid "Exit" +msgstr "Beenden" + +#: sl/SL_Menu.py:1052 msgid "Fetching emails..." msgstr "E-Mails werden abgerufen..." -#: sl/SL_Menu.py:971 +#: sl/SL_Menu.py:1055 #, python-brace-format msgid "Error fetching emails: {error}" msgstr "Fehler beim E-Mail-Abruf: {error}" -#: sl/SL_Menu.py:974 +#: sl/SL_Menu.py:1058 #, python-brace-format msgid "{count} new tasks created from emails." msgstr "{count} neue Aufgaben aus E-Mails erstellt." -#: sl/SL_Menu.py:976 +#: sl/SL_Menu.py:1060 msgid "No new emails found." msgstr "Keine neuen E-Mails gefunden." -#: sl/SL_Menu.py:1001 +#: sl/SL_Menu.py:1085 #, python-brace-format msgid "{remaining} of {total} emails still to process" msgstr "{remaining} von {total} E-Mails noch zu bearbeiten" -#: sl/SL_Menu.py:1005 +#: sl/SL_Menu.py:1089 msgid "No unassigned email tasks available." msgstr "Keine nicht zugeordneten E-Mail-Tasks vorhanden." -#: sl/SL_Menu.py:1017 +#: sl/SL_Menu.py:1101 msgid "Assign Project" msgstr "Projekt zuordnen" -#: sl/SL_Menu.py:1028 +#: sl/SL_Menu.py:1112 msgid "Are you sure you want to delete this task?" msgstr "Sind Sie sicher, dass Sie diese Aufgabe löschen möchten?" -#: sl/SL_Menu.py:1031 +#: sl/SL_Menu.py:1115 msgid "Yes, delete" msgstr "Ja, löschen" -#: sl/SL_Menu.py:1036 +#: sl/SL_Menu.py:1120 msgid "No, cancel" msgstr "Nein, abbrechen" -#: sl/SL_Menu.py:1043 +#: sl/SL_Menu.py:1127 msgid "Delete" msgstr "Löschen" -#: sl/SL_Menu.py:1047 +#: sl/SL_Menu.py:1131 msgid "Edit Details" msgstr "Details bearbeiten" -#: sl/SL_Menu.py:1055 sl/SL_Menu.py:2395 +#: sl/SL_Menu.py:1139 sl/SL_Menu.py:2479 msgid "Task Name" msgstr "Aufgabenname" -#: sl/SL_Menu.py:1064 sl/SL_Menu.py:2399 +#: sl/SL_Menu.py:1148 sl/SL_Menu.py:2483 msgid "Due Date" msgstr "Fälligkeitsdatum" -#: sl/SL_Menu.py:1072 sl/SL_Menu.py:2403 +#: sl/SL_Menu.py:1156 sl/SL_Menu.py:2487 msgid "Clear" msgstr "Löschen" -#: sl/SL_Menu.py:1079 sl/SL_Menu.py:2271 sl/SL_Menu.py:2444 +#: sl/SL_Menu.py:1163 sl/SL_Menu.py:2355 sl/SL_Menu.py:2528 msgid "Notes (Markdown)" msgstr "Notizen (Markdown)" -#: sl/SL_Menu.py:1098 +#: sl/SL_Menu.py:1182 msgid "Task details updated successfully." msgstr "Aufgabendetails erfolgreich aktualisiert." -#: sl/SL_Menu.py:1104 +#: sl/SL_Menu.py:1188 msgid "Error updating task details." msgstr "Fehler beim Aktualisieren der Aufgabendetails." -#: sl/SL_Menu.py:1115 sl/SL_Menu.py:1131 +#: sl/SL_Menu.py:1199 sl/SL_Menu.py:1215 msgid "Project Management" msgstr "Projektverwaltung" -#: sl/SL_Menu.py:1124 sl/SL_Menu.py:1245 -msgid "Back to Main Menu" -msgstr "Zurück zum Hauptmenü" - -#: sl/SL_Menu.py:1259 +#: sl/SL_Menu.py:1343 msgid "Change Language" msgstr "Sprache ändern" -#: sl/SL_Menu.py:1277 +#: sl/SL_Menu.py:1361 msgid "Select Language" msgstr "Sprache auswählen" -#: sl/SL_Menu.py:1278 sl/SL_Menu.py:1318 sl/SL_Menu.py:1359 sl/SL_Menu.py:1372 -#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1426 sl/SL_Menu.py:1449 sl/SL_Menu.py:1504 +#: sl/SL_Menu.py:1362 sl/SL_Menu.py:1402 sl/SL_Menu.py:1443 sl/SL_Menu.py:1456 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1510 sl/SL_Menu.py:1533 sl/SL_Menu.py:1588 msgid "Save" msgstr "Speichern" -#: sl/SL_Menu.py:1284 +#: sl/SL_Menu.py:1368 msgid "" "Language changed. Please restart the application for the changes to take " "effect." @@ -1673,21 +1687,21 @@ msgstr "" "Sprache geändert. Bitte starten Sie die Anwendung neu, damit die Änderungen " "wirksam werden." -#: sl/SL_Menu.py:1287 +#: sl/SL_Menu.py:1371 msgid "Restore Previous Version" msgstr "Vorherige Version wiederherstellen" -#: sl/SL_Menu.py:1290 +#: sl/SL_Menu.py:1374 msgid "The 'update' module is not available. This feature is disabled." msgstr "" "Das Modul „Update“ ist nicht verfügbar. Diese Funktion ist deaktiviert." -#: sl/SL_Menu.py:1292 +#: sl/SL_Menu.py:1376 #, python-brace-format msgid "No previous version backup '{filename}' found." msgstr "Keine Sicherung der vorherigen Version „{filename}“ gefunden." -#: sl/SL_Menu.py:1294 +#: sl/SL_Menu.py:1378 msgid "" "This will restore the application to the previously backed-up version. The " "application will then restart. You may need to manually refresh your browser " @@ -1698,35 +1712,35 @@ msgstr "" "müssen Sie Ihren Browser manuell aktualisieren, wenn die Verbindung nicht " "automatisch wiederhergestellt wird." -#: sl/SL_Menu.py:1295 +#: sl/SL_Menu.py:1379 msgid "Restore and Restart" msgstr "Wiederherstellen und neu starten" -#: sl/SL_Menu.py:1296 +#: sl/SL_Menu.py:1380 msgid "Restoring and restarting..." msgstr "Wiederherstellung und Neustart..." -#: sl/SL_Menu.py:1299 +#: sl/SL_Menu.py:1383 msgid "Restore complete. Please restart the application." msgstr "Wiederherstellung abgeschlossen. Bitte starten Sie die Anwendung neu." -#: sl/SL_Menu.py:1301 +#: sl/SL_Menu.py:1385 msgid "Change Data Storage Location" msgstr "Speicherort der Daten ändern" -#: sl/SL_Menu.py:1303 +#: sl/SL_Menu.py:1387 msgid "Current data file" msgstr "Aktuelle Datendatei" -#: sl/SL_Menu.py:1306 +#: sl/SL_Menu.py:1390 msgid "New Path for data file" msgstr "Neuer Pfad für Datendatei" -#: sl/SL_Menu.py:1312 +#: sl/SL_Menu.py:1396 msgid "Move existing data to the new location" msgstr "Vorhandene Daten an den neuen Speicherort verschieben" -#: sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:1399 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." @@ -1735,11 +1749,11 @@ msgstr "" "beim Neustart wird möglicherweise eine neue leere Datei am neuen Speicherort " "erstellt." -#: sl/SL_Menu.py:1322 +#: sl/SL_Menu.py:1406 msgid "Please enter a new path." msgstr "Bitte geben Sie einen neuen Pfad ein." -#: sl/SL_Menu.py:1330 +#: sl/SL_Menu.py:1414 msgid "" "Error: For security, the data file must be located within the application " "directory." @@ -1747,7 +1761,7 @@ msgstr "" "Fehler: Aus Sicherheitsgründen muss sich die Datendatei im " "Anwendungsverzeichnis befinden." -#: sl/SL_Menu.py:1339 +#: sl/SL_Menu.py:1423 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." @@ -1755,103 +1769,103 @@ msgstr "" "Speicherort aktualisiert. Bitte starten Sie die Anwendung neu, damit die " "Änderungen wirksam werden." -#: sl/SL_Menu.py:1353 +#: sl/SL_Menu.py:1437 msgid "Report Format" msgstr "Berichtsformat" -#: sl/SL_Menu.py:1358 +#: sl/SL_Menu.py:1442 msgid "Select Format" msgstr "Format auswählen" -#: sl/SL_Menu.py:1363 +#: sl/SL_Menu.py:1447 msgid "Report format updated." msgstr "Berichtsformat aktualisiert." -#: sl/SL_Menu.py:1366 +#: sl/SL_Menu.py:1450 msgid "Streamlit Port Settings" msgstr "Streamlit-Port-Einstellungen" -#: sl/SL_Menu.py:1368 +#: sl/SL_Menu.py:1452 msgid "Current Streamlit Port" msgstr "Aktueller Streamlit-Port" -#: sl/SL_Menu.py:1371 +#: sl/SL_Menu.py:1455 msgid "New Port" msgstr "Neuer Port" -#: sl/SL_Menu.py:1376 +#: sl/SL_Menu.py:1460 #, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "Port aktualisiert auf {port}. Bitte starten Sie Streamlit neu." -#: sl/SL_Menu.py:1379 +#: sl/SL_Menu.py:1463 msgid "Email Settings" msgstr "E-Mail-Einstellungen" -#: sl/SL_Menu.py:1385 +#: sl/SL_Menu.py:1469 msgid "Enable email import" msgstr "E-Mail-Import aktivieren" -#: sl/SL_Menu.py:1386 +#: sl/SL_Menu.py:1470 msgid "IMAP Server" msgstr "IMAP-Server" -#: sl/SL_Menu.py:1387 +#: sl/SL_Menu.py:1471 msgid "Port" msgstr "Port" -#: sl/SL_Menu.py:1388 +#: sl/SL_Menu.py:1472 msgid "Username" msgstr "Benutzername" -#: sl/SL_Menu.py:1389 +#: sl/SL_Menu.py:1473 msgid "Password" msgstr "Passwort" -#: sl/SL_Menu.py:1390 +#: sl/SL_Menu.py:1474 msgid "Use SSL" msgstr "SSL verwenden" -#: sl/SL_Menu.py:1403 +#: sl/SL_Menu.py:1487 msgid "Email settings saved." msgstr "E-Mail-Einstellungen gespeichert." -#: sl/SL_Menu.py:1406 +#: sl/SL_Menu.py:1490 msgid "Change CSS Style" msgstr "CSS-Stil ändern" -#: sl/SL_Menu.py:1408 +#: sl/SL_Menu.py:1492 msgid "Current CSS file" msgstr "Aktuelle CSS-Datei" -#: sl/SL_Menu.py:1425 +#: sl/SL_Menu.py:1509 msgid "Select CSS File" msgstr "CSS-Datei auswählen" -#: sl/SL_Menu.py:1431 +#: sl/SL_Menu.py:1515 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." msgstr "" "CSS-Stil aktualisiert. Bitte die Anwendung für die Änderungen neu starten." -#: sl/SL_Menu.py:1434 +#: sl/SL_Menu.py:1518 msgid "Change View Mode" msgstr "Anzeigemodus ändern" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "App Window (Webview)" msgstr "App-Fenster (Webview)" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "System Browser" msgstr "System-Browser" -#: sl/SL_Menu.py:1448 +#: sl/SL_Menu.py:1532 msgid "Select View Mode" msgstr "Anzeigemodus auswählen" -#: sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1539 msgid "" "View mode updated. Please restart the application for the changes to take " "effect." @@ -1859,155 +1873,161 @@ msgstr "" "Anzeigemodus aktualisiert. Bitte die Anwendung für die Änderungen neu " "starten." -#: sl/SL_Menu.py:1458 +#: sl/SL_Menu.py:1542 msgid "MCP Server Settings" msgstr "MCP-Server-Einstellungen" -#: sl/SL_Menu.py:1460 +#: sl/SL_Menu.py:1544 msgid "HTTP (Streamable HTTP)" msgstr "HTTP (Streamable HTTP)" -#: sl/SL_Menu.py:1461 +#: sl/SL_Menu.py:1545 msgid "stdio (recommended for Claude Desktop)" msgstr "stdio (empfohlen für Claude Desktop)" -#: sl/SL_Menu.py:1475 +#: sl/SL_Menu.py:1559 msgid "Transport" msgstr "Transport" -#: sl/SL_Menu.py:1486 +#: sl/SL_Menu.py:1570 msgid "Enable MCP server" msgstr "MCP-Server aktivieren" -#: sl/SL_Menu.py:1489 +#: sl/SL_Menu.py:1573 msgid "" "Not used with stdio - the MCP client starts and stops the server itself." -msgstr "Wird bei stdio nicht verwendet – der MCP-Client startet und stoppt den Server selbst." +msgstr "" +"Wird bei stdio nicht verwendet – der MCP-Client startet und stoppt den " +"Server selbst." -#: sl/SL_Menu.py:1492 +#: sl/SL_Menu.py:1576 msgid "Port (HTTP only)" msgstr "Port (nur HTTP)" -#: sl/SL_Menu.py:1499 +#: sl/SL_Menu.py:1583 msgid "" "With stdio, the app does not start the MCP server itself - the MCP client " "(e.g. Claude Desktop) launches it directly, and the port is ignored." -msgstr "Bei stdio startet die App den MCP-Server nicht selbst – der MCP-Client (z.B. Claude Desktop) startet ihn direkt, und der Port wird ignoriert." +msgstr "" +"Bei stdio startet die App den MCP-Server nicht selbst – der MCP-Client (z.B. " +"Claude Desktop) startet ihn direkt, und der Port wird ignoriert." -#: sl/SL_Menu.py:1510 +#: sl/SL_Menu.py:1594 msgid "" "MCP server settings saved. Please restart the application for the changes to " "take effect." -msgstr "MCP-Server-Einstellungen gespeichert. Bitte starten Sie die Anwendung neu, damit die Änderungen wirksam werden." +msgstr "" +"MCP-Server-Einstellungen gespeichert. Bitte starten Sie die Anwendung neu, " +"damit die Änderungen wirksam werden." -#: sl/SL_Menu.py:1524 +#: sl/SL_Menu.py:1608 msgid "Add New Project" msgstr "Neues Projekt hinzufügen" -#: sl/SL_Menu.py:1527 +#: sl/SL_Menu.py:1611 msgid "Name of the project" msgstr "Name des Projekts" -#: sl/SL_Menu.py:1531 +#: sl/SL_Menu.py:1615 #, python-brace-format msgid "Project '{name}' added." msgstr "Projekt '{name}' hinzugefügt." -#: sl/SL_Menu.py:1535 sl/SL_Menu.py:1581 sl/SL_Menu.py:1626 sl/SL_Menu.py:1672 -#: sl/SL_Menu.py:1727 sl/SL_Menu.py:1821 sl/SL_Menu.py:1869 sl/SL_Menu.py:1919 -#: sl/SL_Menu.py:1999 sl/SL_Menu.py:2029 sl/SL_Menu.py:2059 sl/SL_Menu.py:2090 -#: sl/SL_Menu.py:2152 sl/SL_Menu.py:2192 sl/SL_Menu.py:2304 sl/SL_Menu.py:2323 -#: sl/SL_Menu.py:2484 sl/SL_Menu.py:2532 +#: sl/SL_Menu.py:1619 sl/SL_Menu.py:1665 sl/SL_Menu.py:1710 sl/SL_Menu.py:1756 +#: sl/SL_Menu.py:1811 sl/SL_Menu.py:1905 sl/SL_Menu.py:1953 sl/SL_Menu.py:2003 +#: sl/SL_Menu.py:2083 sl/SL_Menu.py:2113 sl/SL_Menu.py:2143 sl/SL_Menu.py:2174 +#: sl/SL_Menu.py:2236 sl/SL_Menu.py:2276 sl/SL_Menu.py:2388 sl/SL_Menu.py:2407 +#: sl/SL_Menu.py:2568 sl/SL_Menu.py:2616 msgid "Cancel" msgstr "Abbrechen" -#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1598 sl/SL_Menu.py:1643 sl/SL_Menu.py:1838 -#: sl/SL_Menu.py:1901 sl/SL_Menu.py:1936 sl/SL_Menu.py:1969 sl/SL_Menu.py:2018 -#: sl/SL_Menu.py:2048 sl/SL_Menu.py:2078 sl/SL_Menu.py:2505 sl/SL_Menu.py:2617 -#: sl/SL_Menu.py:2678 +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1682 sl/SL_Menu.py:1727 sl/SL_Menu.py:1922 +#: sl/SL_Menu.py:1985 sl/SL_Menu.py:2020 sl/SL_Menu.py:2053 sl/SL_Menu.py:2102 +#: sl/SL_Menu.py:2132 sl/SL_Menu.py:2162 sl/SL_Menu.py:2589 sl/SL_Menu.py:2701 +#: sl/SL_Menu.py:2762 msgid "Select Project" msgstr "Projekt auswählen" -#: sl/SL_Menu.py:1558 +#: sl/SL_Menu.py:1642 #, python-brace-format msgid "No open tasks to close in '{name}'." msgstr "Keine offenen Aufgaben zum Schließen in „{name}“." -#: sl/SL_Menu.py:1565 sl/SL_Menu.py:1610 sl/SL_Menu.py:1655 sl/SL_Menu.py:1709 -#: sl/SL_Menu.py:1850 sl/SL_Menu.py:1979 sl/SL_Menu.py:2338 sl/SL_Menu.py:2516 -#: sl/SL_Menu.py:2648 +#: sl/SL_Menu.py:1649 sl/SL_Menu.py:1694 sl/SL_Menu.py:1739 sl/SL_Menu.py:1793 +#: sl/SL_Menu.py:1934 sl/SL_Menu.py:2063 sl/SL_Menu.py:2422 sl/SL_Menu.py:2600 +#: sl/SL_Menu.py:2732 msgid "Select Task" msgstr "Aufgabe auswählen" -#: sl/SL_Menu.py:1575 +#: sl/SL_Menu.py:1659 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been closed." msgstr "Aufgabe „{sub_name}“ in „{main_name}“ wurde geschlossen." -#: sl/SL_Menu.py:1603 +#: sl/SL_Menu.py:1687 #, python-brace-format msgid "No closed tasks to reopen in '{name}'." msgstr "Keine geschlossenen Aufgaben zum erneuten Öffnen in „{name}“." -#: sl/SL_Menu.py:1620 +#: sl/SL_Menu.py:1704 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been reopened." msgstr "Aufgabe „{sub_name}“ in „{main_name}“ wurde erneut geöffnet." -#: sl/SL_Menu.py:1648 +#: sl/SL_Menu.py:1732 #, python-brace-format msgid "No open tasks to delete in '{name}'." msgstr "Keine offenen Aufgaben zum Löschen in „{name}“." -#: sl/SL_Menu.py:1659 +#: sl/SL_Menu.py:1743 msgid "This action cannot be undone." msgstr "Diese Aktion kann nicht rückgängig gemacht werden." -#: sl/SL_Menu.py:1666 +#: sl/SL_Menu.py:1750 #, python-brace-format msgid "Task '{sub_name}' deleted from '{main_name}'." msgstr "Aufgabe '{sub_name}' von '{main_name}' gelöscht." -#: sl/SL_Menu.py:1689 +#: sl/SL_Menu.py:1773 msgid "Select Source Project" msgstr "Quellprojekt auswählen" -#: sl/SL_Menu.py:1694 +#: sl/SL_Menu.py:1778 #, python-brace-format msgid "No tasks found in '{name}'." msgstr "Keine Aufgaben in „{name}“ gefunden." -#: sl/SL_Menu.py:1702 +#: sl/SL_Menu.py:1786 msgid "No other projects available to move to." msgstr "Keine anderen Projekte zum Verschieben verfügbar." -#: sl/SL_Menu.py:1713 sl/SL_Menu.py:2138 +#: sl/SL_Menu.py:1797 sl/SL_Menu.py:2222 msgid "Select Target Project" msgstr "Zielprojekt auswählen" -#: sl/SL_Menu.py:1721 +#: sl/SL_Menu.py:1805 #, python-brace-format msgid "Task '{sub}' moved from '{src}' to '{dst}'." msgstr "Aufgabe „{sub}“ wurde von „{src}“ nach „{dst}“ verschoben." -#: sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1809 msgid "Error: Could not move task." msgstr "Fehler: Aufgabe konnte nicht verschoben werden." -#: sl/SL_Menu.py:1736 sl/SL_Menu.py:2099 +#: sl/SL_Menu.py:1820 sl/SL_Menu.py:2183 msgid "Weeks of inactivity" msgstr "Wochen der Inaktivität" -#: sl/SL_Menu.py:1741 +#: sl/SL_Menu.py:1825 #, python-brace-format msgid "Inactive Tasks (> {weeks} weeks):" msgstr "Inaktive Aufgaben (> {weeks} Wochen):" -#: sl/SL_Menu.py:1746 sl/SL_Menu.py:2107 +#: sl/SL_Menu.py:1830 sl/SL_Menu.py:2191 msgid "Last Activity" msgstr "Letzte Aktivität" -#: sl/SL_Menu.py:1805 +#: sl/SL_Menu.py:1889 #, python-brace-format msgid "" "Are you sure you want to delete {count} closed tasks? This action cannot be " @@ -2016,25 +2036,25 @@ msgstr "" "Sind Sie sicher, dass Sie{count}geschlossene Aufgaben löschen möchten? Diese " "Aktion kann nicht rückgängig gemacht werden." -#: sl/SL_Menu.py:1807 +#: sl/SL_Menu.py:1891 msgid "Show projects to delete" msgstr "Zu löschende Projekte anzeigen" -#: sl/SL_Menu.py:1811 +#: sl/SL_Menu.py:1895 msgid "Delete All" msgstr "Alle löschen" -#: sl/SL_Menu.py:1817 +#: sl/SL_Menu.py:1901 #, python-brace-format msgid "Successfully deleted {count} tasks." msgstr "{count} Aufgaben erfolgreich gelöscht." -#: sl/SL_Menu.py:1843 +#: sl/SL_Menu.py:1927 #, python-brace-format msgid "No open tasks to promote in '{name}'." msgstr "Keine offenen Aufgaben zum Heraufstufen in „{name}“." -#: sl/SL_Menu.py:1854 +#: sl/SL_Menu.py:1938 msgid "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." @@ -2042,69 +2062,69 @@ msgstr "" "Dadurch wird ein neues Projekt mit dem Namen der Aufgabe erstellt und alle " "Zeiteinträge in eine darin enthaltene „Allgemeine“ Aufgabe verschoben." -#: sl/SL_Menu.py:1856 +#: sl/SL_Menu.py:1940 msgid "Promote to Project" msgstr "Hochstufen zum Projekt" -#: sl/SL_Menu.py:1895 +#: sl/SL_Menu.py:1979 msgid "No open projects to rename." msgstr "Keine offenen Projekte zum Umbenennen." -#: sl/SL_Menu.py:1904 sl/SL_Menu.py:1984 +#: sl/SL_Menu.py:1988 sl/SL_Menu.py:2068 msgid "New Name" msgstr "Neuer Name" -#: sl/SL_Menu.py:1905 sl/SL_Menu.py:1985 +#: sl/SL_Menu.py:1989 sl/SL_Menu.py:2069 msgid "Rename" msgstr "Umbenennen" -#: sl/SL_Menu.py:1909 sl/SL_Menu.py:1989 +#: sl/SL_Menu.py:1993 sl/SL_Menu.py:2073 msgid "Please enter a new name." msgstr "Bitte geben Sie einen neuen Namen ein." -#: sl/SL_Menu.py:1911 sl/SL_Menu.py:1991 +#: sl/SL_Menu.py:1995 sl/SL_Menu.py:2075 msgid "New name is the same as the old name." msgstr "Neuer Name ist derselbe wie der alte Name." -#: sl/SL_Menu.py:1913 +#: sl/SL_Menu.py:1997 #, python-brace-format msgid "Project '{old_name}' successfully renamed to '{new_name}'." msgstr "Projekt '{old_name}' erfolgreich in '{new_name}' umbenannt." -#: sl/SL_Menu.py:1974 +#: sl/SL_Menu.py:2058 #, python-brace-format msgid "No open tasks to rename in '{name}'." msgstr "Keine offenen Aufgaben zum Umbenennen in „{name}“." -#: sl/SL_Menu.py:1997 +#: sl/SL_Menu.py:2081 msgid "Error: Could not rename. The new name might already exist." msgstr "" "Fehler: Umbenennen nicht möglich. Der neue Name ist möglicherweise bereits " "vorhanden." -#: sl/SL_Menu.py:2010 +#: sl/SL_Menu.py:2094 msgid "No open projects to close." msgstr "Keine offenen Projekte zum Schließen." -#: sl/SL_Menu.py:2023 +#: sl/SL_Menu.py:2107 #, python-brace-format msgid "Project '{name}' has been closed." msgstr "Das Projekt „{name}“ wurde geschlossen." -#: sl/SL_Menu.py:2027 sl/SL_Menu.py:2057 sl/SL_Menu.py:2088 +#: sl/SL_Menu.py:2111 sl/SL_Menu.py:2141 sl/SL_Menu.py:2172 msgid "Error: Project not found." msgstr "Fehler: Projekt nicht gefunden." -#: sl/SL_Menu.py:2040 +#: sl/SL_Menu.py:2124 msgid "No closed projects to reopen." msgstr "Keine geschlossenen Projekte zum erneuten Öffnen." -#: sl/SL_Menu.py:2053 +#: sl/SL_Menu.py:2137 #, python-brace-format msgid "Project '{name}' has been reopened." msgstr "Das Projekt „{name}“ wurde erneut geöffnet." -#: sl/SL_Menu.py:2079 +#: sl/SL_Menu.py:2163 msgid "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." @@ -2112,204 +2132,204 @@ msgstr "" "Diese Aktion kann nicht rückgängig gemacht werden. Alle zugehörigen Aufgaben " "und Zeiteinträge werden gelöscht." -#: sl/SL_Menu.py:2084 +#: sl/SL_Menu.py:2168 #, python-brace-format msgid "Project '{name}' has been deleted." msgstr "Projekt „{name}“ wurde gelöscht." -#: sl/SL_Menu.py:2104 +#: sl/SL_Menu.py:2188 #, python-brace-format msgid "Inactive Projects (> {weeks} weeks):" msgstr "Inaktive Projekte (> {weeks} Wochen):" -#: sl/SL_Menu.py:2109 +#: sl/SL_Menu.py:2193 #, python-brace-format msgid "No projects found inactive for more than {weeks} weeks." msgstr "Keine Projekte gefunden, die länger als {weeks} Wochen inaktiv waren." -#: sl/SL_Menu.py:2118 sl/SL_Menu.py:2141 +#: sl/SL_Menu.py:2202 sl/SL_Menu.py:2225 msgid "Demote Project" msgstr "Projekt herabstufen" -#: sl/SL_Menu.py:2130 +#: sl/SL_Menu.py:2214 msgid "Select Project to Demote" msgstr "Wählen Sie das Projekt zum Herabstufen aus." -#: sl/SL_Menu.py:2136 +#: sl/SL_Menu.py:2220 msgid "No other projects available to demote into." msgstr "Es sind keine anderen Projekte zum Herabstufen verfügbar." -#: sl/SL_Menu.py:2139 +#: sl/SL_Menu.py:2223 #, python-brace-format msgid "This will convert '{src}' into a task of '{dst}'." msgstr "Dadurch wird „{src}“ in eine Aufgabe von „{dst}“ umgewandelt." -#: sl/SL_Menu.py:2164 +#: sl/SL_Menu.py:2248 msgid "Projects with only closed or no tasks:" msgstr "Projekte mit nur abgeschlossenen oder keinen Aufgaben:" -#: sl/SL_Menu.py:2168 +#: sl/SL_Menu.py:2252 msgid "No completed projects found." msgstr "Keine abgeschlossenen Projekte gefunden." -#: sl/SL_Menu.py:2177 sl/SL_Menu.py:2311 sl/SL_Menu.py:2607 +#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2395 sl/SL_Menu.py:2691 msgid "Step 1: Select Project" msgstr "Schritt 1: Projekt auswählen" -#: sl/SL_Menu.py:2181 sl/SL_Menu.py:2499 +#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2583 msgid "No open projects found. Please add one first." msgstr "Keine offenen Projekte gefunden. Bitte fügen Sie zuerst eines hinzu." -#: sl/SL_Menu.py:2186 sl/SL_Menu.py:2318 sl/SL_Menu.py:2547 +#: sl/SL_Menu.py:2270 sl/SL_Menu.py:2402 sl/SL_Menu.py:2631 msgid "Project" msgstr "Projekt" -#: sl/SL_Menu.py:2188 sl/SL_Menu.py:2319 sl/SL_Menu.py:2343 sl/SL_Menu.py:2619 +#: sl/SL_Menu.py:2272 sl/SL_Menu.py:2403 sl/SL_Menu.py:2427 sl/SL_Menu.py:2703 msgid "Next" msgstr "Weiter" -#: sl/SL_Menu.py:2203 sl/SL_Menu.py:2633 +#: sl/SL_Menu.py:2287 sl/SL_Menu.py:2717 msgid "No project selected. Please start again." msgstr "Kein Projekt ausgewählt. Bitte beginnen Sie erneut." -#: sl/SL_Menu.py:2208 +#: sl/SL_Menu.py:2292 msgid "To Project:" msgstr "Zum Projekt:" -#: sl/SL_Menu.py:2229 +#: sl/SL_Menu.py:2313 msgid "Name of the new task" msgstr "Name der neuen Aufgabe" -#: sl/SL_Menu.py:2235 +#: sl/SL_Menu.py:2319 msgid "Due date" msgstr "Fälligkeitsdatum" -#: sl/SL_Menu.py:2241 sl/SL_Menu.py:2413 +#: sl/SL_Menu.py:2325 sl/SL_Menu.py:2497 msgid "Recurring" msgstr "Wiederkehrend" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "daily" msgstr "täglich" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "monthly" msgstr "monatlich" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "on all business days" msgstr "an allen Geschäftstagen" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "userdefined" msgstr "benutzerdefiniert" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "weekly" msgstr "wöchentlich" -#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2437 +#: sl/SL_Menu.py:2345 sl/SL_Menu.py:2521 msgid "Frequency" msgstr "Häufigkeit" -#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2440 +#: sl/SL_Menu.py:2349 sl/SL_Menu.py:2524 msgid "Days" msgstr "Tage" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Edit" msgstr "Bearbeiten" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Preview" msgstr "Vorschau" -#: sl/SL_Menu.py:2274 sl/SL_Menu.py:2447 +#: sl/SL_Menu.py:2358 sl/SL_Menu.py:2531 msgid "No notes provided." msgstr "Keine Notizen bereitgestellt." -#: sl/SL_Menu.py:2279 sl/SL_Menu.py:2452 +#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2536 msgid "A due date is required for recurring tasks." msgstr "Für wiederkehrende Aufgaben ist ein Fälligkeitsdatum erforderlich." -#: sl/SL_Menu.py:2287 +#: sl/SL_Menu.py:2371 msgid "Please enter a name." msgstr "Bitte geben Sie einen Namen ein." -#: sl/SL_Menu.py:2299 +#: sl/SL_Menu.py:2383 #, python-brace-format msgid "Task '{sub_name}' added to '{main_name}'." msgstr "Aufgabe '{sub_name}' zu '{main_name}' hinzugefügt." -#: sl/SL_Menu.py:2331 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:2415 sl/SL_Menu.py:2722 msgid "Step 2: Select Task from" msgstr "Schritt 2: Aufgabe auswählen aus" -#: sl/SL_Menu.py:2334 +#: sl/SL_Menu.py:2418 msgid "No open tasks found." msgstr "Keine offenen Aufgaben gefunden." -#: sl/SL_Menu.py:2362 +#: sl/SL_Menu.py:2446 msgid "Task not found." msgstr "Aufgabe nicht gefunden." -#: sl/SL_Menu.py:2456 +#: sl/SL_Menu.py:2540 msgid "Save Changes" msgstr "Änderungen speichern" -#: sl/SL_Menu.py:2481 +#: sl/SL_Menu.py:2565 msgid "Error: Could not update task." msgstr "Fehler: Aufgabe konnte nicht aktualisiert werden." -#: sl/SL_Menu.py:2494 +#: sl/SL_Menu.py:2578 msgid "Start Work on Task" msgstr "Arbeit an Aufgabe beginnen" -#: sl/SL_Menu.py:2509 +#: sl/SL_Menu.py:2593 #, python-brace-format msgid "No open tasks to start work on in '{name}'." msgstr "" "Keine offenen Aufgaben, an denen in „{name}“ mit der Arbeit begonnen werden " "kann." -#: sl/SL_Menu.py:2520 +#: sl/SL_Menu.py:2604 msgid "Start Work" msgstr "Arbeit beginnen" -#: sl/SL_Menu.py:2548 +#: sl/SL_Menu.py:2632 msgid "Task" msgstr "Aufgabe" -#: sl/SL_Menu.py:2549 +#: sl/SL_Menu.py:2633 msgid "Started at" msgstr "Gestartet um" -#: sl/SL_Menu.py:2550 tt/TimeTracker.py:1446 +#: sl/SL_Menu.py:2634 tt/TimeTracker.py:1454 msgid "Duration" msgstr "Dauer" -#: sl/SL_Menu.py:2564 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2648 sl/SL_Menu.py:2780 msgid "Select Date" msgstr "Datum auswählen" -#: sl/SL_Menu.py:2565 sl/SL_Menu.py:2589 sl/SL_Menu.py:2653 sl/SL_Menu.py:2679 -#: sl/SL_Menu.py:2697 +#: sl/SL_Menu.py:2649 sl/SL_Menu.py:2673 sl/SL_Menu.py:2737 sl/SL_Menu.py:2763 +#: sl/SL_Menu.py:2781 msgid "Generate Report" msgstr "Bericht erstellen" -#: sl/SL_Menu.py:2585 +#: sl/SL_Menu.py:2669 msgid "Start Date" msgstr "Startdatum" -#: sl/SL_Menu.py:2587 +#: sl/SL_Menu.py:2671 msgid "End Date" msgstr "Enddatum" -#: sl/SL_Menu.py:2712 +#: sl/SL_Menu.py:2796 msgid "Report Result" msgstr "Berichtsergebnis" -#: sl/SL_Menu.py:2741 +#: sl/SL_Menu.py:2825 msgid "Export Report" msgstr "Bericht exportieren" @@ -2393,7 +2413,7 @@ msgstr "Ziel-Hauptprojekt „{name}“ nicht gefunden." msgid "Task '{task_name}' moved successfully." msgstr "Aufgabe „{task_name}“ wurde erfolgreich verschoben." -#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1408 +#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1416 #, python-brace-format msgid "Task '{task_name}' not found in '{main_name}'." msgstr "Aufgabe „{task_name}“ nicht in „{main_name}“ gefunden." @@ -2451,22 +2471,22 @@ msgstr "Kein Betreff" msgid "Unknown Task" msgstr "Unbekannte Aufgabe" -#: tt/TimeTracker.py:1365 +#: tt/TimeTracker.py:1373 #, python-brace-format msgid "- {name}: {hours} hours" msgstr "- {name}: {hours} Stunden" -#: tt/TimeTracker.py:1373 +#: tt/TimeTracker.py:1381 #, python-brace-format msgid "## {name} ({hours} hours)\n" msgstr "## {name} ({hours} Stunden)\n" -#: tt/TimeTracker.py:1382 +#: tt/TimeTracker.py:1390 #, python-brace-format msgid "# Daily Time Report: {date}\n" msgstr "# Tagesbericht: {date}\n" -#: tt/TimeTracker.py:1383 +#: tt/TimeTracker.py:1391 #, python-brace-format msgid "" "\n" @@ -2475,104 +2495,104 @@ msgstr "" "\n" "**Tägliche Gesamtzeit:{hours}Stunden**" -#: tt/TimeTracker.py:1387 tt/TimeTracker.py:1700 +#: tt/TimeTracker.py:1395 tt/TimeTracker.py:1708 #, python-brace-format msgid "No time tracked for {date}." msgstr "Keine Zeit für {date} erfasst." -#: tt/TimeTracker.py:1404 tt/TimeTracker.py:1499 +#: tt/TimeTracker.py:1412 tt/TimeTracker.py:1507 #, python-brace-format msgid "Main project '{name}' not found." msgstr "Hauptprojekt „{name}“ nicht gefunden." -#: tt/TimeTracker.py:1412 +#: tt/TimeTracker.py:1420 #, python-brace-format msgid "No time entries found for task '{task_name}'." msgstr "Für Aufgabe „{task_name}“ wurden keine Zeiteinträge gefunden." -#: tt/TimeTracker.py:1445 tt/TimeTracker.py:1675 +#: tt/TimeTracker.py:1453 tt/TimeTracker.py:1683 msgid "now" msgstr "jetzt" -#: tt/TimeTracker.py:1450 +#: tt/TimeTracker.py:1458 #, python-brace-format msgid "# Detailed Report for Task: {name}" msgstr "# Detaillierter Bericht für Aufgabe: {name}" -#: tt/TimeTracker.py:1451 +#: tt/TimeTracker.py:1459 #, python-brace-format msgid "Part of Main Project: {name}" msgstr "Teil des Hauptprojekts: {name}" -#: tt/TimeTracker.py:1454 +#: tt/TimeTracker.py:1462 msgid "Active (currently running)" msgstr "Aktiv (läuft gerade)" -#: tt/TimeTracker.py:1454 tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1559 msgid "Inactive" msgstr "Inaktiv" -#: tt/TimeTracker.py:1455 tt/TimeTracker.py:1552 +#: tt/TimeTracker.py:1463 tt/TimeTracker.py:1560 msgid "Status" msgstr "Status" -#: tt/TimeTracker.py:1457 tt/TimeTracker.py:1554 +#: tt/TimeTracker.py:1465 tt/TimeTracker.py:1562 msgid "First entry" msgstr "Erster Eintrag" -#: tt/TimeTracker.py:1459 tt/TimeTracker.py:1556 +#: tt/TimeTracker.py:1467 tt/TimeTracker.py:1564 msgid "Last activity" msgstr "Letzte Aktivität" -#: tt/TimeTracker.py:1461 tt/TimeTracker.py:1558 +#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1566 msgid "Total recorded time" msgstr "Erfasste Gesamtzeit" -#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1560 +#: tt/TimeTracker.py:1470 tt/TimeTracker.py:1568 msgid "Total work sessions" msgstr "Gesamtzahl der Arbeitssitzungen" -#: tt/TimeTracker.py:1466 tt/TimeTracker.py:1564 +#: tt/TimeTracker.py:1474 tt/TimeTracker.py:1572 msgid "Average session duration" msgstr "Durchschnittliche Sitzungsdauer" -#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1567 +#: tt/TimeTracker.py:1477 tt/TimeTracker.py:1575 msgid "Weekday Distribution" msgstr "Verteilung auf Wochentage" -#: tt/TimeTracker.py:1479 +#: tt/TimeTracker.py:1487 msgid "Daily Breakdown" msgstr "Tagesaufschlüsselung" -#: tt/TimeTracker.py:1548 +#: tt/TimeTracker.py:1556 #, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "# Detaillierter Bericht für Hauptprojekt: {name}" -#: tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1559 #, python-brace-format msgid "Active (working on '{task_name}')" msgstr "Aktiv (arbeitet an '{task_name}')" -#: tt/TimeTracker.py:1559 +#: tt/TimeTracker.py:1567 msgid "Number of tasks" msgstr "Anzahl der Aufgaben" -#: tt/TimeTracker.py:1578 +#: tt/TimeTracker.py:1586 msgid "Task Breakdown" msgstr "Aufschlüsselung nach Aufgaben" -#: tt/TimeTracker.py:1587 +#: tt/TimeTracker.py:1595 #, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} Sitzungen" -#: tt/TimeTracker.py:1640 +#: tt/TimeTracker.py:1648 #, python-brace-format msgid "# Time Report: {start_date} to {end_date}\n" msgstr "# Zeitbericht: {start_date} bis {end_date}\n" -#: tt/TimeTracker.py:1641 +#: tt/TimeTracker.py:1649 #, python-brace-format msgid "" "\n" @@ -2581,12 +2601,12 @@ msgstr "" "\n" "**Gesamtzeit im Zeitraum: {total_time}**" -#: tt/TimeTracker.py:1645 +#: tt/TimeTracker.py:1653 #, python-brace-format msgid "No time tracked between {start_date} and {end_date}." msgstr "Keine Zeit zwischen {start_date} und {end_date} erfasst." -#: tt/TimeTracker.py:1661 +#: tt/TimeTracker.py:1669 #, python-brace-format msgid "# Detailed Daily Report: {date}" msgstr "# Detaillierter Tagesbericht: {date}" @@ -2599,11 +2619,6 @@ msgstr "" "Warnung: Update-Prüfung übersprungen. 'github_repo' nicht in config.json " "gefunden oder Datei ist ungültig." -#: update.py:49 -#, python-brace-format -msgid "A new version ({version}) is available." -msgstr "Eine neue Version ({version}) ist verfügbar." - #: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "Fehler: Download-URL für die neue Version nicht gefunden." @@ -2633,50 +2648,54 @@ msgstr "" msgid "Error downloading the update: {error}" msgstr "Fehler beim Herunterladen des Updates: {error}" -#: update.py:108 +#: update.py:98 +msgid "Restarting application to apply the update..." +msgstr "Anwendung wird neu gestartet, um das Update zu übernehmen..." + +#: update.py:122 msgid "Creating backup of current version before update..." msgstr "Erstelle Backup der aktuellen Version vor dem Update..." -#: update.py:118 +#: update.py:132 #, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Backup erfolgreich als {filename} erstellt." -#: update.py:120 +#: update.py:134 #, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "Warnung: Backup konnte nicht erstellt werden. Fehler: {error}" -#: update.py:122 +#: update.py:136 msgid "Installing update..." msgstr "Update wird installiert..." -#: update.py:142 +#: update.py:156 #, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "" "Geschützte Datei wird übersprungen: {filename}. Sie wird nicht überschrieben." -#: update.py:151 +#: update.py:165 msgid "Update installed successfully." msgstr "Update erfolgreich installiert." -#: update.py:153 +#: update.py:167 #, python-brace-format msgid "Error during update installation: {error}" msgstr "Fehler bei der Installation des Updates: {error}" -#: update.py:168 +#: update.py:182 #, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "Fehler: Kein Backup der vorherigen Version '{filename}' gefunden." -#: update.py:171 +#: update.py:185 #, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Stelle vorherige Version aus '{filename}' wieder her..." -#: update.py:192 +#: update.py:206 #, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " @@ -2685,38 +2704,41 @@ msgstr "" "Überspringe Benutzerdatendatei: {filename}. Sie wird bei der " "Wiederherstellung nicht überschrieben." -#: update.py:199 +#: update.py:213 msgid "Previous version restored successfully." msgstr "Vorherige Version erfolgreich wiederhergestellt." -#: update.py:201 +#: update.py:215 msgid "Restarting application to apply changes..." msgstr "Anwendung wird neu gestartet, um die Änderungen zu übernehmen..." -#: update.py:204 +#: update.py:218 #, python-brace-format msgid "Error during restoration: {error}" msgstr "Fehler bei der Wiederherstellung: {error}" -#: update.py:205 +#: update.py:219 #, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "Die Backup-Datei '{filename}' wurde nicht gelöscht." -#: update.py:212 +#: update.py:226 msgid "Error: Could not import TimeTracker to get the current version." msgstr "" "Fehler: TimeTracker konnte nicht importiert werden, um die aktuelle Version " "zu erhalten." -#: update.py:215 +#: update.py:229 msgid "Checking for updates..." msgstr "Suche nach Updates..." -#: update.py:222 +#: update.py:236 msgid "No updates available." msgstr "Keine Updates verfügbar." +#~ msgid "Back to Main Menu" +#~ msgstr "Zurück zum Hauptmenü" + #~ msgid "" #~ "\n" #~ "Error: Failed to install dependencies. Please install them manually " diff --git a/locale/en/LC_MESSAGES/timetracker.mo b/locale/en/LC_MESSAGES/timetracker.mo index 9b4ed39..bced8a7 100644 Binary files a/locale/en/LC_MESSAGES/timetracker.mo and b/locale/en/LC_MESSAGES/timetracker.mo differ diff --git a/locale/en/LC_MESSAGES/timetracker.po b/locale/en/LC_MESSAGES/timetracker.po index ffe5785..1a144cd 100644 --- a/locale/en/LC_MESSAGES/timetracker.po +++ b/locale/en/LC_MESSAGES/timetracker.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-05 09:08+0200\n" +"POT-Creation-Date: 2026-08-05 18:15+0200\n" "PO-Revision-Date: 2026-01-01 14:10+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: English\n" @@ -119,8 +119,8 @@ msgstr "" "\n" "--- List Main Projects ---" -#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1880 -#: sl/SL_Menu.py:1944 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1964 +#: sl/SL_Menu.py:2028 msgid "closed" msgstr "closed" @@ -162,7 +162,7 @@ msgstr "Enter the new name for '{name}': " msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "Main project '{old_name}' successfully renamed to '{new_name}'." -#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1917 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:2001 #, python-brace-format msgid "Error: Could not rename. The new name '{new_name}' might already exist." msgstr "" @@ -454,22 +454,22 @@ msgstr "No main projects found. Cannot list tasks." msgid "Select the main project whose tasks you want to list:" msgstr "Select the main project whose tasks you want to list:" -#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1941 +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:2025 #, python-brace-format msgid "Tasks for '{name}':" msgstr "Tasks for '{name}':" -#: TimeTrackerCLI.py:308 sl/SL_Menu.py:745 sl/SL_Menu.py:895 +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:785 sl/SL_Menu.py:977 msgid "Due" msgstr "Due" -#: TimeTrackerCLI.py:309 sl/SL_Menu.py:596 sl/SL_Menu.py:616 sl/SL_Menu.py:682 -#: sl/SL_Menu.py:768 sl/SL_Menu.py:1077 sl/SL_Menu.py:2238 sl/SL_Menu.py:2409 +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:636 sl/SL_Menu.py:656 sl/SL_Menu.py:722 +#: sl/SL_Menu.py:808 sl/SL_Menu.py:1161 sl/SL_Menu.py:2322 sl/SL_Menu.py:2493 msgid "Today" msgstr "Today" -#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1950 -#: sl/SL_Menu.py:2642 +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:2034 +#: sl/SL_Menu.py:2726 #, python-brace-format msgid "No tasks found for '{name}'." msgstr "No tasks found for '{name}'." @@ -508,7 +508,7 @@ msgstr "Select a task from '{name}' to rename:" msgid "Enter the number of the task: " msgstr "Enter the number of the task: " -#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1993 +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:2077 #, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "Task '{old_name}' renamed to '{new_name}'." @@ -545,7 +545,7 @@ msgid "Task '{task_name}' in '{main_name}' has been closed." msgstr "Task '{task_name}' in '{main_name}' has been closed." #: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 -#: sl/SL_Menu.py:1579 sl/SL_Menu.py:1624 sl/SL_Menu.py:1670 +#: sl/SL_Menu.py:1663 sl/SL_Menu.py:1708 sl/SL_Menu.py:1754 msgid "Error: Main project or task not found." msgstr "Error: Main project or task not found." @@ -681,7 +681,7 @@ msgstr "" msgid " Task: {name}" msgstr " Task: {name}" -#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1752 +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1836 #, python-brace-format msgid "No tasks found inactive for more than {weeks} weeks." msgstr "No tasks found inactive for more than {weeks} weeks." @@ -694,7 +694,7 @@ msgstr "" "\n" "--- List All Closed Tasks ---" -#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1777 sl/SL_Menu.py:1800 +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1861 sl/SL_Menu.py:1884 msgid "No closed tasks found." msgstr "No closed tasks found." @@ -753,9 +753,9 @@ msgstr "" "\n" "--- Edit Task ---" -#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1547 sl/SL_Menu.py:1592 -#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1683 sl/SL_Menu.py:1832 sl/SL_Menu.py:1963 -#: sl/SL_Menu.py:2122 sl/SL_Menu.py:2315 +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1631 sl/SL_Menu.py:1676 +#: sl/SL_Menu.py:1721 sl/SL_Menu.py:1767 sl/SL_Menu.py:1916 sl/SL_Menu.py:2047 +#: sl/SL_Menu.py:2206 sl/SL_Menu.py:2399 msgid "No open projects found." msgstr "No open projects found." @@ -801,7 +801,7 @@ msgstr "New note (press Enter to keep current): " msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " msgstr "Is this task done? (current: {current}, y/n, press Enter to keep): " -#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2475 +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2559 msgid "Task updated successfully." msgstr "Task updated successfully." @@ -899,7 +899,7 @@ msgstr "Leave empty to cancel." msgid "New Path: " msgstr "New Path: " -#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1334 +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1418 #, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Error: The directory '{dir}' does not exist." @@ -912,11 +912,11 @@ msgstr "Storage location updated." msgid "Do you want to move the existing data to the new location? (y/n): " msgstr "Do you want to move the existing data to the new location? (y/n): " -#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1344 +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1428 msgid "Data moved successfully." msgstr "Data moved successfully." -#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1346 +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1430 #, python-brace-format msgid "Error moving data: {error}" msgstr "Error moving data: {error}" @@ -1026,7 +1026,7 @@ msgstr "Enter the start date (YYYY-MM-DD): " msgid "Enter the end date (YYYY-MM-DD): " msgstr "Enter the end date (YYYY-MM-DD): " -#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2593 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2677 msgid "Error: The start date cannot be after the end date." msgstr "Error: The start date cannot be after the end date." @@ -1038,8 +1038,8 @@ msgstr "" "\n" "--- Detailed Task Report ---" -#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1883 -#: sl/SL_Menu.py:1930 sl/SL_Menu.py:2070 sl/SL_Menu.py:2611 sl/SL_Menu.py:2670 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1967 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2154 sl/SL_Menu.py:2695 sl/SL_Menu.py:2754 msgid "No projects found." msgstr "No projects found." @@ -1182,12 +1182,12 @@ msgstr "No open tasks found for '{name}' to start work on." msgid "Select a task from '{name}':" msgstr "Select a task from '{name}':" -#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2526 +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2610 #, python-brace-format msgid "Work started on '{task_name}' in project '{main_name}'." msgstr "Work started on '{task_name}' in project '{main_name}'." -#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2530 +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2614 msgid "Error starting work." msgstr "Error starting work." @@ -1223,7 +1223,7 @@ msgstr " Started at: {date}" msgid " Duration: {duration}" msgstr " Duration: {duration}" -#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:559 sl/SL_Menu.py:2552 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:870 sl/SL_Menu.py:2636 msgid "No active work session." msgstr "No active work session." @@ -1235,11 +1235,11 @@ msgstr "" "\n" "--- Stop Work ---" -#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:504 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:594 msgid "Work session stopped successfully." msgstr "Work session stopped successfully." -#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:506 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:596 msgid "No active work session to stop." msgstr "No active work session to stop." @@ -1255,391 +1255,405 @@ msgstr "" msgid "Exiting application. Goodbye!" msgstr "Exiting application. Goodbye!" -#: sl/SL_Menu.py:399 +#: sl/SL_Menu.py:278 sl/SL_Menu.py:989 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 +msgid "Priority" +msgstr "Priority" + +#: sl/SL_Menu.py:450 +#, python-brace-format +msgid "Version {version}" +msgstr "Version {version}" + +#: sl/SL_Menu.py:455 update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "A new version ({version}) is available." + +#: sl/SL_Menu.py:457 +msgid "Restart and install the update" +msgstr "Restart and install the update" + +#: sl/SL_Menu.py:458 +msgid "Downloading and installing update..." +msgstr "Downloading and installing update..." + +#: sl/SL_Menu.py:489 msgid "New" msgstr "New" -#: sl/SL_Menu.py:400 +#: sl/SL_Menu.py:490 msgid "New Project" msgstr "New Project" -#: sl/SL_Menu.py:403 +#: sl/SL_Menu.py:493 msgid "New Task" msgstr "New Task" -#: sl/SL_Menu.py:408 +#: sl/SL_Menu.py:498 msgid "Project & Task Management" msgstr "Project & Task Management" -#: sl/SL_Menu.py:409 sl/SL_Menu.py:1117 +#: sl/SL_Menu.py:499 sl/SL_Menu.py:1201 msgid "Main Project Management" msgstr "Main Project Management" -#: sl/SL_Menu.py:410 sl/SL_Menu.py:1133 sl/SL_Menu.py:1528 +#: sl/SL_Menu.py:500 sl/SL_Menu.py:1217 sl/SL_Menu.py:1612 msgid "Add Project" msgstr "Add Project" -#: sl/SL_Menu.py:413 sl/SL_Menu.py:1136 sl/SL_Menu.py:1876 +#: sl/SL_Menu.py:503 sl/SL_Menu.py:1220 sl/SL_Menu.py:1960 msgid "List Projects" msgstr "List Projects" -#: sl/SL_Menu.py:416 sl/SL_Menu.py:1139 sl/SL_Menu.py:1891 +#: sl/SL_Menu.py:506 sl/SL_Menu.py:1223 sl/SL_Menu.py:1975 msgid "Rename Project" msgstr "Rename Project" -#: sl/SL_Menu.py:419 sl/SL_Menu.py:1142 sl/SL_Menu.py:2006 sl/SL_Menu.py:2019 +#: sl/SL_Menu.py:509 sl/SL_Menu.py:1226 sl/SL_Menu.py:2090 sl/SL_Menu.py:2103 msgid "Close Project" msgstr "Close Project" -#: sl/SL_Menu.py:422 sl/SL_Menu.py:1145 sl/SL_Menu.py:2036 sl/SL_Menu.py:2049 +#: sl/SL_Menu.py:512 sl/SL_Menu.py:1229 sl/SL_Menu.py:2120 sl/SL_Menu.py:2133 msgid "Re-open Project" msgstr "Re-open Project" -#: sl/SL_Menu.py:425 sl/SL_Menu.py:1148 sl/SL_Menu.py:2066 sl/SL_Menu.py:2080 +#: sl/SL_Menu.py:515 sl/SL_Menu.py:1232 sl/SL_Menu.py:2150 sl/SL_Menu.py:2164 msgid "Delete Project" msgstr "Delete Project" -#: sl/SL_Menu.py:428 sl/SL_Menu.py:1151 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:518 sl/SL_Menu.py:1235 sl/SL_Menu.py:2181 msgid "List Inactive Projects" msgstr "List Inactive Projects" -#: sl/SL_Menu.py:431 sl/SL_Menu.py:1154 +#: sl/SL_Menu.py:521 sl/SL_Menu.py:1238 msgid "Demote Project to Task" msgstr "Demote Project to Task" -#: sl/SL_Menu.py:434 sl/SL_Menu.py:1157 sl/SL_Menu.py:2159 +#: sl/SL_Menu.py:524 sl/SL_Menu.py:1241 sl/SL_Menu.py:2243 msgid "List Completed Projects" msgstr "List Completed Projects" -#: sl/SL_Menu.py:438 sl/SL_Menu.py:1119 sl/SL_Menu.py:1170 +#: sl/SL_Menu.py:528 sl/SL_Menu.py:1203 sl/SL_Menu.py:1254 msgid "Task Management" msgstr "Task Management" -#: sl/SL_Menu.py:439 sl/SL_Menu.py:1172 sl/SL_Menu.py:2177 sl/SL_Menu.py:2208 -#: sl/SL_Menu.py:2283 +#: sl/SL_Menu.py:529 sl/SL_Menu.py:1256 sl/SL_Menu.py:2261 sl/SL_Menu.py:2292 +#: sl/SL_Menu.py:2367 msgid "Add Task" msgstr "Add Task" -#: sl/SL_Menu.py:442 sl/SL_Menu.py:1175 sl/SL_Menu.py:1926 +#: sl/SL_Menu.py:532 sl/SL_Menu.py:1259 sl/SL_Menu.py:2010 msgid "List Tasks" msgstr "List Tasks" -#: sl/SL_Menu.py:445 sl/SL_Menu.py:1178 sl/SL_Menu.py:1959 +#: sl/SL_Menu.py:535 sl/SL_Menu.py:1262 sl/SL_Menu.py:2043 msgid "Rename Task" msgstr "Rename Task" -#: sl/SL_Menu.py:448 sl/SL_Menu.py:1181 sl/SL_Menu.py:1543 sl/SL_Menu.py:1569 -#: sl/SL_Menu.py:1748 +#: sl/SL_Menu.py:538 sl/SL_Menu.py:1265 sl/SL_Menu.py:1627 sl/SL_Menu.py:1653 +#: sl/SL_Menu.py:1832 msgid "Close Task" msgstr "Close Task" -#: sl/SL_Menu.py:451 sl/SL_Menu.py:1184 sl/SL_Menu.py:1588 sl/SL_Menu.py:1614 +#: sl/SL_Menu.py:541 sl/SL_Menu.py:1268 sl/SL_Menu.py:1672 sl/SL_Menu.py:1698 msgid "Re-open Task" msgstr "Re-open Task" -#: sl/SL_Menu.py:454 sl/SL_Menu.py:1187 sl/SL_Menu.py:1633 sl/SL_Menu.py:1660 +#: sl/SL_Menu.py:544 sl/SL_Menu.py:1271 sl/SL_Menu.py:1717 sl/SL_Menu.py:1744 msgid "Delete Task" msgstr "Delete Task" -#: sl/SL_Menu.py:457 sl/SL_Menu.py:1190 sl/SL_Menu.py:1679 sl/SL_Menu.py:1715 +#: sl/SL_Menu.py:547 sl/SL_Menu.py:1274 sl/SL_Menu.py:1763 sl/SL_Menu.py:1799 msgid "Move Task" msgstr "Move Task" -#: sl/SL_Menu.py:460 sl/SL_Menu.py:1193 sl/SL_Menu.py:1734 +#: sl/SL_Menu.py:550 sl/SL_Menu.py:1277 sl/SL_Menu.py:1818 msgid "List Inactive Tasks" msgstr "List Inactive Tasks" -#: sl/SL_Menu.py:463 sl/SL_Menu.py:1196 sl/SL_Menu.py:1761 +#: sl/SL_Menu.py:553 sl/SL_Menu.py:1280 sl/SL_Menu.py:1845 msgid "List All Closed Tasks" msgstr "List All Closed Tasks" -#: sl/SL_Menu.py:466 sl/SL_Menu.py:675 sl/SL_Menu.py:761 sl/SL_Menu.py:929 -#: sl/SL_Menu.py:1199 sl/SL_Menu.py:2311 sl/SL_Menu.py:2331 sl/SL_Menu.py:2366 +#: sl/SL_Menu.py:556 sl/SL_Menu.py:715 sl/SL_Menu.py:801 sl/SL_Menu.py:1011 +#: sl/SL_Menu.py:1283 sl/SL_Menu.py:2395 sl/SL_Menu.py:2415 sl/SL_Menu.py:2450 msgid "Edit Task" msgstr "Edit Task" -#: sl/SL_Menu.py:469 sl/SL_Menu.py:1202 sl/SL_Menu.py:1786 +#: sl/SL_Menu.py:559 sl/SL_Menu.py:1286 sl/SL_Menu.py:1870 msgid "Delete All Closed Tasks" msgstr "Delete All Closed Tasks" -#: sl/SL_Menu.py:472 sl/SL_Menu.py:1205 sl/SL_Menu.py:1828 +#: sl/SL_Menu.py:562 sl/SL_Menu.py:1289 sl/SL_Menu.py:1912 msgid "Promote Task to Project" msgstr "Promote Task to Project" -#: sl/SL_Menu.py:477 +#: sl/SL_Menu.py:567 msgid "Today View" msgstr "Today View" -#: sl/SL_Menu.py:482 sl/SL_Menu.py:591 +#: sl/SL_Menu.py:572 sl/SL_Menu.py:631 msgid "Task Planning" msgstr "Task Planning" -#: sl/SL_Menu.py:487 sl/SL_Menu.py:962 +#: sl/SL_Menu.py:577 sl/SL_Menu.py:1046 msgid "E-Mail Task Assignment" msgstr "E-Mail Task Assignment" -#: sl/SL_Menu.py:492 sl/SL_Menu.py:671 sl/SL_Menu.py:757 sl/SL_Menu.py:925 +#: sl/SL_Menu.py:582 sl/SL_Menu.py:711 sl/SL_Menu.py:797 sl/SL_Menu.py:1007 msgid "Start work on task" msgstr "Start work on task" -#: sl/SL_Menu.py:497 +#: sl/SL_Menu.py:587 msgid "Show current work" msgstr "Show current work" -#: sl/SL_Menu.py:502 +#: sl/SL_Menu.py:592 msgid "Stop current work" msgstr "Stop current work" -#: sl/SL_Menu.py:510 sl/SL_Menu.py:1218 +#: sl/SL_Menu.py:600 sl/SL_Menu.py:1302 msgid "Reporting" msgstr "Reporting" -#: sl/SL_Menu.py:511 sl/SL_Menu.py:1221 +#: sl/SL_Menu.py:601 sl/SL_Menu.py:1305 msgid "Daily Report (Today)" msgstr "Daily Report (Today)" -#: sl/SL_Menu.py:516 sl/SL_Menu.py:1227 sl/SL_Menu.py:2561 +#: sl/SL_Menu.py:606 sl/SL_Menu.py:1311 sl/SL_Menu.py:2645 msgid "Daily Report (Specific Day)" msgstr "Daily Report (Specific Day)" -#: sl/SL_Menu.py:519 sl/SL_Menu.py:1230 sl/SL_Menu.py:2580 +#: sl/SL_Menu.py:609 sl/SL_Menu.py:1314 sl/SL_Menu.py:2664 msgid "Date Range Report" msgstr "Date Range Report" -#: sl/SL_Menu.py:522 sl/SL_Menu.py:1233 sl/SL_Menu.py:2607 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:612 sl/SL_Menu.py:1317 sl/SL_Menu.py:2691 sl/SL_Menu.py:2722 msgid "Detailed Task Report" msgstr "Detailed Task Report" -#: sl/SL_Menu.py:525 sl/SL_Menu.py:1236 sl/SL_Menu.py:2666 +#: sl/SL_Menu.py:615 sl/SL_Menu.py:1320 sl/SL_Menu.py:2750 msgid "Detailed Project Report" msgstr "Detailed Project Report" -#: sl/SL_Menu.py:528 sl/SL_Menu.py:1239 sl/SL_Menu.py:2693 +#: sl/SL_Menu.py:618 sl/SL_Menu.py:1323 sl/SL_Menu.py:2777 msgid "Detailed Daily Report" msgstr "Detailed Daily Report" -#: sl/SL_Menu.py:533 sl/SL_Menu.py:1256 +#: sl/SL_Menu.py:623 sl/SL_Menu.py:1340 msgid "Settings" msgstr "Settings" -#: sl/SL_Menu.py:557 sl/SL_Menu.py:2539 -msgid "Current Active Work" -msgstr "Current Active Work" - -#: sl/SL_Menu.py:562 sl/SL_Menu.py:695 sl/SL_Menu.py:781 sl/SL_Menu.py:936 -#: sl/SL_Menu.py:2411 -msgid "Done" -msgstr "Done" - -#: sl/SL_Menu.py:576 -msgid "Edit current task" -msgstr "Edit current task" - -#: sl/SL_Menu.py:584 -msgid "Exit" -msgstr "Exit" - -#: sl/SL_Menu.py:597 sl/SL_Menu.py:617 +#: sl/SL_Menu.py:637 sl/SL_Menu.py:657 msgid "Tomorrow" msgstr "Tomorrow" -#: sl/SL_Menu.py:598 sl/SL_Menu.py:618 +#: sl/SL_Menu.py:638 sl/SL_Menu.py:658 msgid "Weekly overview" msgstr "Weekly overview" -#: sl/SL_Menu.py:599 sl/SL_Menu.py:619 +#: sl/SL_Menu.py:639 sl/SL_Menu.py:659 msgid "Overdue tasks" msgstr "Overdue tasks" -#: sl/SL_Menu.py:600 sl/SL_Menu.py:620 +#: sl/SL_Menu.py:640 sl/SL_Menu.py:660 msgid "Unplanned tasks" msgstr "Unplanned tasks" -#: sl/SL_Menu.py:601 +#: sl/SL_Menu.py:641 msgid "All" msgstr "All" -#: sl/SL_Menu.py:608 +#: sl/SL_Menu.py:648 msgid "Filter" msgstr "Filter" -#: sl/SL_Menu.py:627 +#: sl/SL_Menu.py:667 msgid "Tasks" msgstr "Tasks" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Friday" msgstr "Friday" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Monday" msgstr "Monday" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Saturday" msgstr "Saturday" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Sunday" msgstr "Sunday" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Thursday" msgstr "Thursday" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Tuesday" msgstr "Tuesday" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Wednesday" msgstr "Wednesday" -#: sl/SL_Menu.py:796 +#: sl/SL_Menu.py:735 sl/SL_Menu.py:821 sl/SL_Menu.py:873 sl/SL_Menu.py:1018 +#: sl/SL_Menu.py:2495 +msgid "Done" +msgstr "Done" + +#: sl/SL_Menu.py:836 msgid "No tasks found." msgstr "No tasks found." -#: sl/SL_Menu.py:798 sl/SL_Menu.py:955 sl/SL_Menu.py:1106 sl/SL_Menu.py:1163 -#: sl/SL_Menu.py:1211 sl/SL_Menu.py:1515 sl/SL_Menu.py:1548 sl/SL_Menu.py:1559 -#: sl/SL_Menu.py:1593 sl/SL_Menu.py:1604 sl/SL_Menu.py:1638 sl/SL_Menu.py:1649 -#: sl/SL_Menu.py:1684 sl/SL_Menu.py:1695 sl/SL_Menu.py:1703 sl/SL_Menu.py:1754 -#: sl/SL_Menu.py:1779 sl/SL_Menu.py:1801 sl/SL_Menu.py:1833 sl/SL_Menu.py:1844 -#: sl/SL_Menu.py:1884 sl/SL_Menu.py:1896 sl/SL_Menu.py:1931 sl/SL_Menu.py:1952 -#: sl/SL_Menu.py:1964 sl/SL_Menu.py:1975 sl/SL_Menu.py:2011 sl/SL_Menu.py:2041 -#: sl/SL_Menu.py:2071 sl/SL_Menu.py:2111 sl/SL_Menu.py:2123 sl/SL_Menu.py:2170 -#: sl/SL_Menu.py:2182 sl/SL_Menu.py:2316 sl/SL_Menu.py:2335 sl/SL_Menu.py:2348 -#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2500 sl/SL_Menu.py:2510 sl/SL_Menu.py:2554 -#: sl/SL_Menu.py:2573 sl/SL_Menu.py:2600 sl/SL_Menu.py:2612 sl/SL_Menu.py:2624 -#: sl/SL_Menu.py:2643 sl/SL_Menu.py:2659 sl/SL_Menu.py:2671 sl/SL_Menu.py:2686 -#: sl/SL_Menu.py:2705 sl/SL_Menu.py:2746 sl/SL_Menu.py:2761 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:1190 sl/SL_Menu.py:1208 sl/SL_Menu.py:1247 +#: sl/SL_Menu.py:1295 sl/SL_Menu.py:1329 sl/SL_Menu.py:1599 sl/SL_Menu.py:1632 +#: sl/SL_Menu.py:1643 sl/SL_Menu.py:1677 sl/SL_Menu.py:1688 sl/SL_Menu.py:1722 +#: sl/SL_Menu.py:1733 sl/SL_Menu.py:1768 sl/SL_Menu.py:1779 sl/SL_Menu.py:1787 +#: sl/SL_Menu.py:1838 sl/SL_Menu.py:1863 sl/SL_Menu.py:1885 sl/SL_Menu.py:1917 +#: sl/SL_Menu.py:1928 sl/SL_Menu.py:1968 sl/SL_Menu.py:1980 sl/SL_Menu.py:2015 +#: sl/SL_Menu.py:2036 sl/SL_Menu.py:2048 sl/SL_Menu.py:2059 sl/SL_Menu.py:2095 +#: sl/SL_Menu.py:2125 sl/SL_Menu.py:2155 sl/SL_Menu.py:2195 sl/SL_Menu.py:2207 +#: sl/SL_Menu.py:2254 sl/SL_Menu.py:2266 sl/SL_Menu.py:2400 sl/SL_Menu.py:2419 +#: sl/SL_Menu.py:2432 sl/SL_Menu.py:2447 sl/SL_Menu.py:2584 sl/SL_Menu.py:2594 +#: sl/SL_Menu.py:2638 sl/SL_Menu.py:2657 sl/SL_Menu.py:2684 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2708 sl/SL_Menu.py:2727 sl/SL_Menu.py:2743 sl/SL_Menu.py:2755 +#: sl/SL_Menu.py:2770 sl/SL_Menu.py:2789 sl/SL_Menu.py:2830 sl/SL_Menu.py:2845 msgid "Back" msgstr "Back" -#: sl/SL_Menu.py:805 +#: sl/SL_Menu.py:849 msgid "Today's Tasks" msgstr "Today's Tasks" -#: sl/SL_Menu.py:826 +#: sl/SL_Menu.py:868 sl/SL_Menu.py:2623 +msgid "Current Active Work" +msgstr "Current Active Work" + +#: sl/SL_Menu.py:887 +msgid "Edit current task" +msgstr "Edit current task" + +#: sl/SL_Menu.py:908 msgid "Show only open tasks" msgstr "Show only open tasks" -#: sl/SL_Menu.py:838 +#: sl/SL_Menu.py:920 msgid "Sort by priority" msgstr "Sort by priority" -#: sl/SL_Menu.py:907 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 -msgid "Priority" -msgstr "Priority" - -#: sl/SL_Menu.py:910 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 +#: sl/SL_Menu.py:992 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 msgid "0 (lowest) to 9 (highest)" msgstr "0 (lowest) to 9 (highest)" -#: sl/SL_Menu.py:951 +#: sl/SL_Menu.py:1033 msgid "No open tasks for today." msgstr "No open tasks for today." -#: sl/SL_Menu.py:953 +#: sl/SL_Menu.py:1035 msgid "No tasks for today." msgstr "No tasks for today." -#: sl/SL_Menu.py:968 +#: sl/SL_Menu.py:1039 +msgid "Exit" +msgstr "Exit" + +#: sl/SL_Menu.py:1052 msgid "Fetching emails..." msgstr "Fetching emails..." -#: sl/SL_Menu.py:971 +#: sl/SL_Menu.py:1055 #, python-brace-format msgid "Error fetching emails: {error}" msgstr "Error fetching emails: {error}" -#: sl/SL_Menu.py:974 +#: sl/SL_Menu.py:1058 #, python-brace-format msgid "{count} new tasks created from emails." msgstr "{count} new tasks created from emails." -#: sl/SL_Menu.py:976 +#: sl/SL_Menu.py:1060 msgid "No new emails found." msgstr "No new emails found." -#: sl/SL_Menu.py:1001 +#: sl/SL_Menu.py:1085 #, python-brace-format msgid "{remaining} of {total} emails still to process" msgstr "{remaining} of {total} emails still to process" -#: sl/SL_Menu.py:1005 +#: sl/SL_Menu.py:1089 msgid "No unassigned email tasks available." msgstr "No unassigned email tasks available." -#: sl/SL_Menu.py:1017 +#: sl/SL_Menu.py:1101 msgid "Assign Project" msgstr "Assign Project" -#: sl/SL_Menu.py:1028 +#: sl/SL_Menu.py:1112 msgid "Are you sure you want to delete this task?" msgstr "Are you sure you want to delete this task?" -#: sl/SL_Menu.py:1031 +#: sl/SL_Menu.py:1115 msgid "Yes, delete" msgstr "Yes, delete" -#: sl/SL_Menu.py:1036 +#: sl/SL_Menu.py:1120 msgid "No, cancel" msgstr "No, cancel" -#: sl/SL_Menu.py:1043 +#: sl/SL_Menu.py:1127 msgid "Delete" msgstr "Delete" -#: sl/SL_Menu.py:1047 +#: sl/SL_Menu.py:1131 msgid "Edit Details" msgstr "Edit Details" -#: sl/SL_Menu.py:1055 sl/SL_Menu.py:2395 +#: sl/SL_Menu.py:1139 sl/SL_Menu.py:2479 msgid "Task Name" msgstr "Task Name" -#: sl/SL_Menu.py:1064 sl/SL_Menu.py:2399 +#: sl/SL_Menu.py:1148 sl/SL_Menu.py:2483 msgid "Due Date" msgstr "Due Date" -#: sl/SL_Menu.py:1072 sl/SL_Menu.py:2403 +#: sl/SL_Menu.py:1156 sl/SL_Menu.py:2487 msgid "Clear" msgstr "Clear" -#: sl/SL_Menu.py:1079 sl/SL_Menu.py:2271 sl/SL_Menu.py:2444 +#: sl/SL_Menu.py:1163 sl/SL_Menu.py:2355 sl/SL_Menu.py:2528 msgid "Notes (Markdown)" msgstr "Notes (Markdown)" -#: sl/SL_Menu.py:1098 +#: sl/SL_Menu.py:1182 msgid "Task details updated successfully." msgstr "Task details updated successfully." -#: sl/SL_Menu.py:1104 +#: sl/SL_Menu.py:1188 msgid "Error updating task details." msgstr "Error updating task details." -#: sl/SL_Menu.py:1115 sl/SL_Menu.py:1131 +#: sl/SL_Menu.py:1199 sl/SL_Menu.py:1215 msgid "Project Management" msgstr "Project Management" -#: sl/SL_Menu.py:1124 sl/SL_Menu.py:1245 -msgid "Back to Main Menu" -msgstr "Back to Main Menu" - -#: sl/SL_Menu.py:1259 +#: sl/SL_Menu.py:1343 msgid "Change Language" msgstr "Change Language" -#: sl/SL_Menu.py:1277 +#: sl/SL_Menu.py:1361 msgid "Select Language" msgstr "Select Language" -#: sl/SL_Menu.py:1278 sl/SL_Menu.py:1318 sl/SL_Menu.py:1359 sl/SL_Menu.py:1372 -#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1426 sl/SL_Menu.py:1449 sl/SL_Menu.py:1504 +#: sl/SL_Menu.py:1362 sl/SL_Menu.py:1402 sl/SL_Menu.py:1443 sl/SL_Menu.py:1456 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1510 sl/SL_Menu.py:1533 sl/SL_Menu.py:1588 msgid "Save" msgstr "Save" -#: sl/SL_Menu.py:1284 +#: sl/SL_Menu.py:1368 msgid "" "Language changed. Please restart the application for the changes to take " "effect." @@ -1647,20 +1661,20 @@ msgstr "" "Language changed. Please restart the application for the changes to take " "effect." -#: sl/SL_Menu.py:1287 +#: sl/SL_Menu.py:1371 msgid "Restore Previous Version" msgstr "Restore Previous Version" -#: sl/SL_Menu.py:1290 +#: sl/SL_Menu.py:1374 msgid "The 'update' module is not available. This feature is disabled." msgstr "The 'update' module is not available. This feature is disabled." -#: sl/SL_Menu.py:1292 +#: sl/SL_Menu.py:1376 #, python-brace-format msgid "No previous version backup '{filename}' found." msgstr "No previous version backup '{filename}' found." -#: sl/SL_Menu.py:1294 +#: sl/SL_Menu.py:1378 msgid "" "This will restore the application to the previously backed-up version. The " "application will then restart. You may need to manually refresh your browser " @@ -1670,35 +1684,35 @@ msgstr "" "application will then restart. You may need to manually refresh your browser " "if it does not reconnect automatically." -#: sl/SL_Menu.py:1295 +#: sl/SL_Menu.py:1379 msgid "Restore and Restart" msgstr "Restore and Restart" -#: sl/SL_Menu.py:1296 +#: sl/SL_Menu.py:1380 msgid "Restoring and restarting..." msgstr "Restoring and restarting..." -#: sl/SL_Menu.py:1299 +#: sl/SL_Menu.py:1383 msgid "Restore complete. Please restart the application." msgstr "Restore complete. Please restart the application." -#: sl/SL_Menu.py:1301 +#: sl/SL_Menu.py:1385 msgid "Change Data Storage Location" msgstr "Change Data Storage Location" -#: sl/SL_Menu.py:1303 +#: sl/SL_Menu.py:1387 msgid "Current data file" msgstr "Current data file" -#: sl/SL_Menu.py:1306 +#: sl/SL_Menu.py:1390 msgid "New Path for data file" msgstr "New Path for data file" -#: sl/SL_Menu.py:1312 +#: sl/SL_Menu.py:1396 msgid "Move existing data to the new location" msgstr "Move existing data to the new location" -#: sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:1399 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." @@ -1706,11 +1720,11 @@ msgstr "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." -#: sl/SL_Menu.py:1322 +#: sl/SL_Menu.py:1406 msgid "Please enter a new path." msgstr "Please enter a new path." -#: sl/SL_Menu.py:1330 +#: sl/SL_Menu.py:1414 msgid "" "Error: For security, the data file must be located within the application " "directory." @@ -1718,7 +1732,7 @@ msgstr "" "Error: For security, the data file must be located within the application " "directory." -#: sl/SL_Menu.py:1339 +#: sl/SL_Menu.py:1423 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." @@ -1726,80 +1740,80 @@ msgstr "" "Storage location updated. Please restart the application for the changes to " "take effect." -#: sl/SL_Menu.py:1353 +#: sl/SL_Menu.py:1437 msgid "Report Format" msgstr "Report Format" -#: sl/SL_Menu.py:1358 +#: sl/SL_Menu.py:1442 msgid "Select Format" msgstr "Select Format" -#: sl/SL_Menu.py:1363 +#: sl/SL_Menu.py:1447 msgid "Report format updated." msgstr "Report format updated." -#: sl/SL_Menu.py:1366 +#: sl/SL_Menu.py:1450 msgid "Streamlit Port Settings" msgstr "Streamlit Port Settings" -#: sl/SL_Menu.py:1368 +#: sl/SL_Menu.py:1452 msgid "Current Streamlit Port" msgstr "Current Streamlit Port" -#: sl/SL_Menu.py:1371 +#: sl/SL_Menu.py:1455 msgid "New Port" msgstr "New Port" -#: sl/SL_Menu.py:1376 +#: sl/SL_Menu.py:1460 #, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "Port updated to {port}. Please restart Streamlit." -#: sl/SL_Menu.py:1379 +#: sl/SL_Menu.py:1463 msgid "Email Settings" msgstr "Email Settings" -#: sl/SL_Menu.py:1385 +#: sl/SL_Menu.py:1469 msgid "Enable email import" msgstr "Enable email import" -#: sl/SL_Menu.py:1386 +#: sl/SL_Menu.py:1470 msgid "IMAP Server" msgstr "IMAP Server" -#: sl/SL_Menu.py:1387 +#: sl/SL_Menu.py:1471 msgid "Port" msgstr "Port" -#: sl/SL_Menu.py:1388 +#: sl/SL_Menu.py:1472 msgid "Username" msgstr "Username" -#: sl/SL_Menu.py:1389 +#: sl/SL_Menu.py:1473 msgid "Password" msgstr "Password" -#: sl/SL_Menu.py:1390 +#: sl/SL_Menu.py:1474 msgid "Use SSL" msgstr "Use SSL" -#: sl/SL_Menu.py:1403 +#: sl/SL_Menu.py:1487 msgid "Email settings saved." msgstr "Email settings saved." -#: sl/SL_Menu.py:1406 +#: sl/SL_Menu.py:1490 msgid "Change CSS Style" msgstr "Change CSS Style" -#: sl/SL_Menu.py:1408 +#: sl/SL_Menu.py:1492 msgid "Current CSS file" msgstr "Current CSS file" -#: sl/SL_Menu.py:1425 +#: sl/SL_Menu.py:1509 msgid "Select CSS File" msgstr "Select CSS File" -#: sl/SL_Menu.py:1431 +#: sl/SL_Menu.py:1515 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." @@ -1807,23 +1821,23 @@ msgstr "" "CSS style updated. Please restart the application for the changes to take " "effect." -#: sl/SL_Menu.py:1434 +#: sl/SL_Menu.py:1518 msgid "Change View Mode" msgstr "Change View Mode" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "App Window (Webview)" msgstr "App Window (Webview)" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "System Browser" msgstr "System Browser" -#: sl/SL_Menu.py:1448 +#: sl/SL_Menu.py:1532 msgid "Select View Mode" msgstr "Select View Mode" -#: sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1539 msgid "" "View mode updated. Please restart the application for the changes to take " "effect." @@ -1831,155 +1845,160 @@ msgstr "" "View mode updated. Please restart the application for the changes to take " "effect." -#: sl/SL_Menu.py:1458 +#: sl/SL_Menu.py:1542 msgid "MCP Server Settings" msgstr "MCP Server Settings" -#: sl/SL_Menu.py:1460 +#: sl/SL_Menu.py:1544 msgid "HTTP (Streamable HTTP)" msgstr "HTTP (Streamable HTTP)" -#: sl/SL_Menu.py:1461 +#: sl/SL_Menu.py:1545 msgid "stdio (recommended for Claude Desktop)" msgstr "stdio (recommended for Claude Desktop)" -#: sl/SL_Menu.py:1475 +#: sl/SL_Menu.py:1559 msgid "Transport" msgstr "Transport" -#: sl/SL_Menu.py:1486 +#: sl/SL_Menu.py:1570 msgid "Enable MCP server" msgstr "Enable MCP server" -#: sl/SL_Menu.py:1489 +#: sl/SL_Menu.py:1573 msgid "" "Not used with stdio - the MCP client starts and stops the server itself." -msgstr "Not used with stdio - the MCP client starts and stops the server itself." +msgstr "" +"Not used with stdio - the MCP client starts and stops the server itself." -#: sl/SL_Menu.py:1492 +#: sl/SL_Menu.py:1576 msgid "Port (HTTP only)" msgstr "Port (HTTP only)" -#: sl/SL_Menu.py:1499 +#: sl/SL_Menu.py:1583 msgid "" "With stdio, the app does not start the MCP server itself - the MCP client " "(e.g. Claude Desktop) launches it directly, and the port is ignored." -msgstr "With stdio, the app does not start the MCP server itself - the MCP client (e.g. Claude Desktop) launches it directly, and the port is ignored." +msgstr "" +"With stdio, the app does not start the MCP server itself - the MCP client " +"(e.g. Claude Desktop) launches it directly, and the port is ignored." -#: sl/SL_Menu.py:1510 +#: sl/SL_Menu.py:1594 msgid "" "MCP server settings saved. Please restart the application for the changes to " "take effect." -msgstr "MCP server settings saved. Please restart the application for the changes to take effect." +msgstr "" +"MCP server settings saved. Please restart the application for the changes to " +"take effect." -#: sl/SL_Menu.py:1524 +#: sl/SL_Menu.py:1608 msgid "Add New Project" msgstr "Add New Project" -#: sl/SL_Menu.py:1527 +#: sl/SL_Menu.py:1611 msgid "Name of the project" msgstr "Name of the project" -#: sl/SL_Menu.py:1531 +#: sl/SL_Menu.py:1615 #, python-brace-format msgid "Project '{name}' added." msgstr "Project '{name}' added." -#: sl/SL_Menu.py:1535 sl/SL_Menu.py:1581 sl/SL_Menu.py:1626 sl/SL_Menu.py:1672 -#: sl/SL_Menu.py:1727 sl/SL_Menu.py:1821 sl/SL_Menu.py:1869 sl/SL_Menu.py:1919 -#: sl/SL_Menu.py:1999 sl/SL_Menu.py:2029 sl/SL_Menu.py:2059 sl/SL_Menu.py:2090 -#: sl/SL_Menu.py:2152 sl/SL_Menu.py:2192 sl/SL_Menu.py:2304 sl/SL_Menu.py:2323 -#: sl/SL_Menu.py:2484 sl/SL_Menu.py:2532 +#: sl/SL_Menu.py:1619 sl/SL_Menu.py:1665 sl/SL_Menu.py:1710 sl/SL_Menu.py:1756 +#: sl/SL_Menu.py:1811 sl/SL_Menu.py:1905 sl/SL_Menu.py:1953 sl/SL_Menu.py:2003 +#: sl/SL_Menu.py:2083 sl/SL_Menu.py:2113 sl/SL_Menu.py:2143 sl/SL_Menu.py:2174 +#: sl/SL_Menu.py:2236 sl/SL_Menu.py:2276 sl/SL_Menu.py:2388 sl/SL_Menu.py:2407 +#: sl/SL_Menu.py:2568 sl/SL_Menu.py:2616 msgid "Cancel" msgstr "Cancel" -#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1598 sl/SL_Menu.py:1643 sl/SL_Menu.py:1838 -#: sl/SL_Menu.py:1901 sl/SL_Menu.py:1936 sl/SL_Menu.py:1969 sl/SL_Menu.py:2018 -#: sl/SL_Menu.py:2048 sl/SL_Menu.py:2078 sl/SL_Menu.py:2505 sl/SL_Menu.py:2617 -#: sl/SL_Menu.py:2678 +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1682 sl/SL_Menu.py:1727 sl/SL_Menu.py:1922 +#: sl/SL_Menu.py:1985 sl/SL_Menu.py:2020 sl/SL_Menu.py:2053 sl/SL_Menu.py:2102 +#: sl/SL_Menu.py:2132 sl/SL_Menu.py:2162 sl/SL_Menu.py:2589 sl/SL_Menu.py:2701 +#: sl/SL_Menu.py:2762 msgid "Select Project" msgstr "Select Project" -#: sl/SL_Menu.py:1558 +#: sl/SL_Menu.py:1642 #, python-brace-format msgid "No open tasks to close in '{name}'." msgstr "No open tasks to close in '{name}'." -#: sl/SL_Menu.py:1565 sl/SL_Menu.py:1610 sl/SL_Menu.py:1655 sl/SL_Menu.py:1709 -#: sl/SL_Menu.py:1850 sl/SL_Menu.py:1979 sl/SL_Menu.py:2338 sl/SL_Menu.py:2516 -#: sl/SL_Menu.py:2648 +#: sl/SL_Menu.py:1649 sl/SL_Menu.py:1694 sl/SL_Menu.py:1739 sl/SL_Menu.py:1793 +#: sl/SL_Menu.py:1934 sl/SL_Menu.py:2063 sl/SL_Menu.py:2422 sl/SL_Menu.py:2600 +#: sl/SL_Menu.py:2732 msgid "Select Task" msgstr "Select Task" -#: sl/SL_Menu.py:1575 +#: sl/SL_Menu.py:1659 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been closed." msgstr "Task '{sub_name}' in '{main_name}' has been closed." -#: sl/SL_Menu.py:1603 +#: sl/SL_Menu.py:1687 #, python-brace-format msgid "No closed tasks to reopen in '{name}'." msgstr "No closed tasks to reopen in '{name}'." -#: sl/SL_Menu.py:1620 +#: sl/SL_Menu.py:1704 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been reopened." msgstr "Task '{sub_name}' in '{main_name}' has been reopened." -#: sl/SL_Menu.py:1648 +#: sl/SL_Menu.py:1732 #, python-brace-format msgid "No open tasks to delete in '{name}'." msgstr "No open tasks to delete in '{name}'." -#: sl/SL_Menu.py:1659 +#: sl/SL_Menu.py:1743 msgid "This action cannot be undone." msgstr "This action cannot be undone." -#: sl/SL_Menu.py:1666 +#: sl/SL_Menu.py:1750 #, python-brace-format msgid "Task '{sub_name}' deleted from '{main_name}'." msgstr "Task '{sub_name}' deleted from '{main_name}'." -#: sl/SL_Menu.py:1689 +#: sl/SL_Menu.py:1773 msgid "Select Source Project" msgstr "Select Source Project" -#: sl/SL_Menu.py:1694 +#: sl/SL_Menu.py:1778 #, python-brace-format msgid "No tasks found in '{name}'." msgstr "No tasks found in '{name}'." -#: sl/SL_Menu.py:1702 +#: sl/SL_Menu.py:1786 msgid "No other projects available to move to." msgstr "No other projects available to move to." -#: sl/SL_Menu.py:1713 sl/SL_Menu.py:2138 +#: sl/SL_Menu.py:1797 sl/SL_Menu.py:2222 msgid "Select Target Project" msgstr "Select Target Project" -#: sl/SL_Menu.py:1721 +#: sl/SL_Menu.py:1805 #, python-brace-format msgid "Task '{sub}' moved from '{src}' to '{dst}'." msgstr "Task '{sub}' moved from '{src}' to '{dst}'." -#: sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1809 msgid "Error: Could not move task." msgstr "Error: Could not move task." -#: sl/SL_Menu.py:1736 sl/SL_Menu.py:2099 +#: sl/SL_Menu.py:1820 sl/SL_Menu.py:2183 msgid "Weeks of inactivity" msgstr "Weeks of inactivity" -#: sl/SL_Menu.py:1741 +#: sl/SL_Menu.py:1825 #, python-brace-format msgid "Inactive Tasks (> {weeks} weeks):" msgstr "Inactive Tasks (> {weeks} weeks):" -#: sl/SL_Menu.py:1746 sl/SL_Menu.py:2107 +#: sl/SL_Menu.py:1830 sl/SL_Menu.py:2191 msgid "Last Activity" msgstr "Last Activity" -#: sl/SL_Menu.py:1805 +#: sl/SL_Menu.py:1889 #, python-brace-format msgid "" "Are you sure you want to delete {count} closed tasks? This action cannot be " @@ -1988,25 +2007,25 @@ msgstr "" "Are you sure you want to delete {count} closed tasks? This action cannot be " "undone." -#: sl/SL_Menu.py:1807 +#: sl/SL_Menu.py:1891 msgid "Show projects to delete" msgstr "Show projects to delete" -#: sl/SL_Menu.py:1811 +#: sl/SL_Menu.py:1895 msgid "Delete All" msgstr "Delete All" -#: sl/SL_Menu.py:1817 +#: sl/SL_Menu.py:1901 #, python-brace-format msgid "Successfully deleted {count} tasks." msgstr "Successfully deleted {count} tasks." -#: sl/SL_Menu.py:1843 +#: sl/SL_Menu.py:1927 #, python-brace-format msgid "No open tasks to promote in '{name}'." msgstr "No open tasks to promote in '{name}'." -#: sl/SL_Menu.py:1854 +#: sl/SL_Menu.py:1938 msgid "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." @@ -2014,67 +2033,67 @@ msgstr "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." -#: sl/SL_Menu.py:1856 +#: sl/SL_Menu.py:1940 msgid "Promote to Project" msgstr "Promote to Project" -#: sl/SL_Menu.py:1895 +#: sl/SL_Menu.py:1979 msgid "No open projects to rename." msgstr "No open projects to rename." -#: sl/SL_Menu.py:1904 sl/SL_Menu.py:1984 +#: sl/SL_Menu.py:1988 sl/SL_Menu.py:2068 msgid "New Name" msgstr "New Name" -#: sl/SL_Menu.py:1905 sl/SL_Menu.py:1985 +#: sl/SL_Menu.py:1989 sl/SL_Menu.py:2069 msgid "Rename" msgstr "Rename" -#: sl/SL_Menu.py:1909 sl/SL_Menu.py:1989 +#: sl/SL_Menu.py:1993 sl/SL_Menu.py:2073 msgid "Please enter a new name." msgstr "Please enter a new name." -#: sl/SL_Menu.py:1911 sl/SL_Menu.py:1991 +#: sl/SL_Menu.py:1995 sl/SL_Menu.py:2075 msgid "New name is the same as the old name." msgstr "New name is the same as the old name." -#: sl/SL_Menu.py:1913 +#: sl/SL_Menu.py:1997 #, python-brace-format msgid "Project '{old_name}' successfully renamed to '{new_name}'." msgstr "Project '{old_name}' successfully renamed to '{new_name}'." -#: sl/SL_Menu.py:1974 +#: sl/SL_Menu.py:2058 #, python-brace-format msgid "No open tasks to rename in '{name}'." msgstr "No open tasks to rename in '{name}'." -#: sl/SL_Menu.py:1997 +#: sl/SL_Menu.py:2081 msgid "Error: Could not rename. The new name might already exist." msgstr "Error: Could not rename. The new name might already exist." -#: sl/SL_Menu.py:2010 +#: sl/SL_Menu.py:2094 msgid "No open projects to close." msgstr "No open projects to close." -#: sl/SL_Menu.py:2023 +#: sl/SL_Menu.py:2107 #, python-brace-format msgid "Project '{name}' has been closed." msgstr "Project '{name}' has been closed." -#: sl/SL_Menu.py:2027 sl/SL_Menu.py:2057 sl/SL_Menu.py:2088 +#: sl/SL_Menu.py:2111 sl/SL_Menu.py:2141 sl/SL_Menu.py:2172 msgid "Error: Project not found." msgstr "Error: Project not found." -#: sl/SL_Menu.py:2040 +#: sl/SL_Menu.py:2124 msgid "No closed projects to reopen." msgstr "No closed projects to reopen." -#: sl/SL_Menu.py:2053 +#: sl/SL_Menu.py:2137 #, python-brace-format msgid "Project '{name}' has been reopened." msgstr "Project '{name}' has been reopened." -#: sl/SL_Menu.py:2079 +#: sl/SL_Menu.py:2163 msgid "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." @@ -2082,202 +2101,202 @@ msgstr "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." -#: sl/SL_Menu.py:2084 +#: sl/SL_Menu.py:2168 #, python-brace-format msgid "Project '{name}' has been deleted." msgstr "Project '{name}' has been deleted." -#: sl/SL_Menu.py:2104 +#: sl/SL_Menu.py:2188 #, python-brace-format msgid "Inactive Projects (> {weeks} weeks):" msgstr "Inactive Projects (> {weeks} weeks):" -#: sl/SL_Menu.py:2109 +#: sl/SL_Menu.py:2193 #, python-brace-format msgid "No projects found inactive for more than {weeks} weeks." msgstr "No projects found inactive for more than {weeks} weeks." -#: sl/SL_Menu.py:2118 sl/SL_Menu.py:2141 +#: sl/SL_Menu.py:2202 sl/SL_Menu.py:2225 msgid "Demote Project" msgstr "Demote Project" -#: sl/SL_Menu.py:2130 +#: sl/SL_Menu.py:2214 msgid "Select Project to Demote" msgstr "Select Project to Demote" -#: sl/SL_Menu.py:2136 +#: sl/SL_Menu.py:2220 msgid "No other projects available to demote into." msgstr "No other projects available to demote into." -#: sl/SL_Menu.py:2139 +#: sl/SL_Menu.py:2223 #, python-brace-format msgid "This will convert '{src}' into a task of '{dst}'." msgstr "This will convert '{src}' into a task of '{dst}'." -#: sl/SL_Menu.py:2164 +#: sl/SL_Menu.py:2248 msgid "Projects with only closed or no tasks:" msgstr "Projects with only closed or no tasks:" -#: sl/SL_Menu.py:2168 +#: sl/SL_Menu.py:2252 msgid "No completed projects found." msgstr "No completed projects found." -#: sl/SL_Menu.py:2177 sl/SL_Menu.py:2311 sl/SL_Menu.py:2607 +#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2395 sl/SL_Menu.py:2691 msgid "Step 1: Select Project" msgstr "Step 1: Select Project" -#: sl/SL_Menu.py:2181 sl/SL_Menu.py:2499 +#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2583 msgid "No open projects found. Please add one first." msgstr "No open projects found. Please add one first." -#: sl/SL_Menu.py:2186 sl/SL_Menu.py:2318 sl/SL_Menu.py:2547 +#: sl/SL_Menu.py:2270 sl/SL_Menu.py:2402 sl/SL_Menu.py:2631 msgid "Project" msgstr "Project" -#: sl/SL_Menu.py:2188 sl/SL_Menu.py:2319 sl/SL_Menu.py:2343 sl/SL_Menu.py:2619 +#: sl/SL_Menu.py:2272 sl/SL_Menu.py:2403 sl/SL_Menu.py:2427 sl/SL_Menu.py:2703 msgid "Next" msgstr "Next" -#: sl/SL_Menu.py:2203 sl/SL_Menu.py:2633 +#: sl/SL_Menu.py:2287 sl/SL_Menu.py:2717 msgid "No project selected. Please start again." msgstr "No project selected. Please start again." -#: sl/SL_Menu.py:2208 +#: sl/SL_Menu.py:2292 msgid "To Project:" msgstr "To Project:" -#: sl/SL_Menu.py:2229 +#: sl/SL_Menu.py:2313 msgid "Name of the new task" msgstr "Name of the new task" -#: sl/SL_Menu.py:2235 +#: sl/SL_Menu.py:2319 msgid "Due date" msgstr "Due date" -#: sl/SL_Menu.py:2241 sl/SL_Menu.py:2413 +#: sl/SL_Menu.py:2325 sl/SL_Menu.py:2497 msgid "Recurring" msgstr "Recurring" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "daily" msgstr "daily" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "monthly" msgstr "monthly" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "on all business days" msgstr "on all business days" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "userdefined" msgstr "userdefined" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "weekly" msgstr "weekly" -#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2437 +#: sl/SL_Menu.py:2345 sl/SL_Menu.py:2521 msgid "Frequency" msgstr "Frequency" -#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2440 +#: sl/SL_Menu.py:2349 sl/SL_Menu.py:2524 msgid "Days" msgstr "Days" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Edit" msgstr "Edit" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Preview" msgstr "Preview" -#: sl/SL_Menu.py:2274 sl/SL_Menu.py:2447 +#: sl/SL_Menu.py:2358 sl/SL_Menu.py:2531 msgid "No notes provided." msgstr "No notes provided." -#: sl/SL_Menu.py:2279 sl/SL_Menu.py:2452 +#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2536 msgid "A due date is required for recurring tasks." msgstr "A due date is required for recurring tasks." -#: sl/SL_Menu.py:2287 +#: sl/SL_Menu.py:2371 msgid "Please enter a name." msgstr "Please enter a name." -#: sl/SL_Menu.py:2299 +#: sl/SL_Menu.py:2383 #, python-brace-format msgid "Task '{sub_name}' added to '{main_name}'." msgstr "Task '{sub_name}' added to '{main_name}'." -#: sl/SL_Menu.py:2331 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:2415 sl/SL_Menu.py:2722 msgid "Step 2: Select Task from" msgstr "Step 2: Select Task from" -#: sl/SL_Menu.py:2334 +#: sl/SL_Menu.py:2418 msgid "No open tasks found." msgstr "No open tasks found." -#: sl/SL_Menu.py:2362 +#: sl/SL_Menu.py:2446 msgid "Task not found." msgstr "Task not found." -#: sl/SL_Menu.py:2456 +#: sl/SL_Menu.py:2540 msgid "Save Changes" msgstr "Save Changes" -#: sl/SL_Menu.py:2481 +#: sl/SL_Menu.py:2565 msgid "Error: Could not update task." msgstr "Error: Could not update task." -#: sl/SL_Menu.py:2494 +#: sl/SL_Menu.py:2578 msgid "Start Work on Task" msgstr "Start Work on Task" -#: sl/SL_Menu.py:2509 +#: sl/SL_Menu.py:2593 #, python-brace-format msgid "No open tasks to start work on in '{name}'." msgstr "No open tasks to start work on in '{name}'." -#: sl/SL_Menu.py:2520 +#: sl/SL_Menu.py:2604 msgid "Start Work" msgstr "Start Work" -#: sl/SL_Menu.py:2548 +#: sl/SL_Menu.py:2632 msgid "Task" msgstr "Task" -#: sl/SL_Menu.py:2549 +#: sl/SL_Menu.py:2633 msgid "Started at" msgstr "Started at" -#: sl/SL_Menu.py:2550 tt/TimeTracker.py:1446 +#: sl/SL_Menu.py:2634 tt/TimeTracker.py:1454 msgid "Duration" msgstr "Duration" -#: sl/SL_Menu.py:2564 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2648 sl/SL_Menu.py:2780 msgid "Select Date" msgstr "Select Date" -#: sl/SL_Menu.py:2565 sl/SL_Menu.py:2589 sl/SL_Menu.py:2653 sl/SL_Menu.py:2679 -#: sl/SL_Menu.py:2697 +#: sl/SL_Menu.py:2649 sl/SL_Menu.py:2673 sl/SL_Menu.py:2737 sl/SL_Menu.py:2763 +#: sl/SL_Menu.py:2781 msgid "Generate Report" msgstr "Generate Report" -#: sl/SL_Menu.py:2585 +#: sl/SL_Menu.py:2669 msgid "Start Date" msgstr "Start Date" -#: sl/SL_Menu.py:2587 +#: sl/SL_Menu.py:2671 msgid "End Date" msgstr "End Date" -#: sl/SL_Menu.py:2712 +#: sl/SL_Menu.py:2796 msgid "Report Result" msgstr "Report Result" -#: sl/SL_Menu.py:2741 +#: sl/SL_Menu.py:2825 msgid "Export Report" msgstr "Export Report" @@ -2359,7 +2378,7 @@ msgstr "Destination main project '{name}' not found." msgid "Task '{task_name}' moved successfully." msgstr "Task '{task_name}' moved successfully." -#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1408 +#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1416 #, python-brace-format msgid "Task '{task_name}' not found in '{main_name}'." msgstr "Task '{task_name}' not found in '{main_name}'." @@ -2417,22 +2436,22 @@ msgstr "No Subject" msgid "Unknown Task" msgstr "Unknown Task" -#: tt/TimeTracker.py:1365 +#: tt/TimeTracker.py:1373 #, python-brace-format msgid "- {name}: {hours} hours" msgstr "- {name}: {hours} hours" -#: tt/TimeTracker.py:1373 +#: tt/TimeTracker.py:1381 #, python-brace-format msgid "## {name} ({hours} hours)\n" msgstr "## {name} ({hours} hours)\n" -#: tt/TimeTracker.py:1382 +#: tt/TimeTracker.py:1390 #, python-brace-format msgid "# Daily Time Report: {date}\n" msgstr "# Daily Time Report: {date}\n" -#: tt/TimeTracker.py:1383 +#: tt/TimeTracker.py:1391 #, python-brace-format msgid "" "\n" @@ -2441,104 +2460,104 @@ msgstr "" "\n" "**Total Daily Time: {hours} hours**" -#: tt/TimeTracker.py:1387 tt/TimeTracker.py:1700 +#: tt/TimeTracker.py:1395 tt/TimeTracker.py:1708 #, python-brace-format msgid "No time tracked for {date}." msgstr "No time tracked for {date}." -#: tt/TimeTracker.py:1404 tt/TimeTracker.py:1499 +#: tt/TimeTracker.py:1412 tt/TimeTracker.py:1507 #, python-brace-format msgid "Main project '{name}' not found." msgstr "Main project '{name}' not found." -#: tt/TimeTracker.py:1412 +#: tt/TimeTracker.py:1420 #, python-brace-format msgid "No time entries found for task '{task_name}'." msgstr "No time entries found for task '{task_name}'." -#: tt/TimeTracker.py:1445 tt/TimeTracker.py:1675 +#: tt/TimeTracker.py:1453 tt/TimeTracker.py:1683 msgid "now" msgstr "now" -#: tt/TimeTracker.py:1450 +#: tt/TimeTracker.py:1458 #, python-brace-format msgid "# Detailed Report for Task: {name}" msgstr "# Detailed Report for Task: {name}" -#: tt/TimeTracker.py:1451 +#: tt/TimeTracker.py:1459 #, python-brace-format msgid "Part of Main Project: {name}" msgstr "Part of Main Project: {name}" -#: tt/TimeTracker.py:1454 +#: tt/TimeTracker.py:1462 msgid "Active (currently running)" msgstr "Active (currently running)" -#: tt/TimeTracker.py:1454 tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1559 msgid "Inactive" msgstr "Inactive" -#: tt/TimeTracker.py:1455 tt/TimeTracker.py:1552 +#: tt/TimeTracker.py:1463 tt/TimeTracker.py:1560 msgid "Status" msgstr "Status" -#: tt/TimeTracker.py:1457 tt/TimeTracker.py:1554 +#: tt/TimeTracker.py:1465 tt/TimeTracker.py:1562 msgid "First entry" msgstr "First entry" -#: tt/TimeTracker.py:1459 tt/TimeTracker.py:1556 +#: tt/TimeTracker.py:1467 tt/TimeTracker.py:1564 msgid "Last activity" msgstr "Last activity" -#: tt/TimeTracker.py:1461 tt/TimeTracker.py:1558 +#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1566 msgid "Total recorded time" msgstr "Total recorded time" -#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1560 +#: tt/TimeTracker.py:1470 tt/TimeTracker.py:1568 msgid "Total work sessions" msgstr "Total work sessions" -#: tt/TimeTracker.py:1466 tt/TimeTracker.py:1564 +#: tt/TimeTracker.py:1474 tt/TimeTracker.py:1572 msgid "Average session duration" msgstr "Average session duration" -#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1567 +#: tt/TimeTracker.py:1477 tt/TimeTracker.py:1575 msgid "Weekday Distribution" msgstr "Weekday Distribution" -#: tt/TimeTracker.py:1479 +#: tt/TimeTracker.py:1487 msgid "Daily Breakdown" msgstr "Daily Breakdown" -#: tt/TimeTracker.py:1548 +#: tt/TimeTracker.py:1556 #, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "# Detailed Report for Main Project: {name}" -#: tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1559 #, python-brace-format msgid "Active (working on '{task_name}')" msgstr "Active (working on '{task_name}')" -#: tt/TimeTracker.py:1559 +#: tt/TimeTracker.py:1567 msgid "Number of tasks" msgstr "Number of tasks" -#: tt/TimeTracker.py:1578 +#: tt/TimeTracker.py:1586 msgid "Task Breakdown" msgstr "Task Breakdown" -#: tt/TimeTracker.py:1587 +#: tt/TimeTracker.py:1595 #, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} sessions" -#: tt/TimeTracker.py:1640 +#: tt/TimeTracker.py:1648 #, python-brace-format msgid "# Time Report: {start_date} to {end_date}\n" msgstr "# Time Report: {start_date} to {end_date}\n" -#: tt/TimeTracker.py:1641 +#: tt/TimeTracker.py:1649 #, python-brace-format msgid "" "\n" @@ -2547,12 +2566,12 @@ msgstr "" "\n" "**Total Time in Period: {total_time}**" -#: tt/TimeTracker.py:1645 +#: tt/TimeTracker.py:1653 #, python-brace-format msgid "No time tracked between {start_date} and {end_date}." msgstr "No time tracked between {start_date} and {end_date}." -#: tt/TimeTracker.py:1661 +#: tt/TimeTracker.py:1669 #, python-brace-format msgid "# Detailed Daily Report: {date}" msgstr "# Detailed Daily Report: {date}" @@ -2565,11 +2584,6 @@ msgstr "" "Warning: Update check skipped. 'github_repo' not found in config.json or " "file is invalid." -#: update.py:49 -#, python-brace-format -msgid "A new version ({version}) is available." -msgstr "A new version ({version}) is available." - #: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "Error: Download URL for the new version not found." @@ -2597,49 +2611,53 @@ msgstr "Download complete. The update will be installed on the next start." msgid "Error downloading the update: {error}" msgstr "Error downloading the update: {error}" -#: update.py:108 +#: update.py:98 +msgid "Restarting application to apply the update..." +msgstr "Restarting application to apply the update..." + +#: update.py:122 msgid "Creating backup of current version before update..." msgstr "Creating backup of current version before update..." -#: update.py:118 +#: update.py:132 #, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Backup created successfully as {filename}." -#: update.py:120 +#: update.py:134 #, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "Warning: Could not create backup. Error: {error}" -#: update.py:122 +#: update.py:136 msgid "Installing update..." msgstr "Installing update..." -#: update.py:142 +#: update.py:156 #, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "Skipping protected file: {filename}. It will not be overwritten." -#: update.py:151 +#: update.py:165 msgid "Update installed successfully." msgstr "Update installed successfully." -#: update.py:153 +#: update.py:167 #, python-brace-format msgid "Error during update installation: {error}" msgstr "Error during update installation: {error}" -#: update.py:168 +#: update.py:182 #, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "Error: No previous version backup '{filename}' found." -#: update.py:171 +#: update.py:185 #, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Restoring previous version from '{filename}'..." -#: update.py:192 +#: update.py:206 #, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " @@ -2648,36 +2666,39 @@ msgstr "" "Skipping user data file: {filename}. It will not be overwritten during " "restore." -#: update.py:199 +#: update.py:213 msgid "Previous version restored successfully." msgstr "Previous version restored successfully." -#: update.py:201 +#: update.py:215 msgid "Restarting application to apply changes..." msgstr "Restarting application to apply changes..." -#: update.py:204 +#: update.py:218 #, python-brace-format msgid "Error during restoration: {error}" msgstr "Error during restoration: {error}" -#: update.py:205 +#: update.py:219 #, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "The backup file '{filename}' was not deleted." -#: update.py:212 +#: update.py:226 msgid "Error: Could not import TimeTracker to get the current version." msgstr "Error: Could not import TimeTracker to get the current version." -#: update.py:215 +#: update.py:229 msgid "Checking for updates..." msgstr "Checking for updates..." -#: update.py:222 +#: update.py:236 msgid "No updates available." msgstr "No updates available." +#~ msgid "Back to Main Menu" +#~ msgstr "Back to Main Menu" + #~ msgid "" #~ "\n" #~ "Error: Failed to install dependencies. Please install them manually " diff --git a/locale/es/LC_MESSAGES/timetracker.mo b/locale/es/LC_MESSAGES/timetracker.mo index e6d7e11..7dae6b9 100644 Binary files a/locale/es/LC_MESSAGES/timetracker.mo and b/locale/es/LC_MESSAGES/timetracker.mo differ diff --git a/locale/es/LC_MESSAGES/timetracker.po b/locale/es/LC_MESSAGES/timetracker.po index 09aaac1..a4997b2 100644 --- a/locale/es/LC_MESSAGES/timetracker.po +++ b/locale/es/LC_MESSAGES/timetracker.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-05 09:08+0200\n" +"POT-Creation-Date: 2026-08-05 18:15+0200\n" "PO-Revision-Date: 2026-01-01 14:40+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: Spanish\n" @@ -119,8 +119,8 @@ msgstr "" "\n" "--- Listar Proyectos Principales ---" -#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1880 -#: sl/SL_Menu.py:1944 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1964 +#: sl/SL_Menu.py:2028 msgid "closed" msgstr "cerrado" @@ -162,7 +162,7 @@ msgstr "Introduzca el nuevo nombre para '{name}': " msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "Proyecto principal '{old_name}' renombrado a '{new_name}' con éxito." -#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1917 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:2001 #, python-brace-format msgid "Error: Could not rename. The new name '{new_name}' might already exist." msgstr "" @@ -461,22 +461,22 @@ msgstr "No se encontraron proyectos principales. No se pueden enumerar tareas." msgid "Select the main project whose tasks you want to list:" msgstr "Seleccione el proyecto principal cuyas tareas desea enumerar:" -#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1941 +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:2025 #, python-brace-format msgid "Tasks for '{name}':" msgstr "Tareas para '{name}':" -#: TimeTrackerCLI.py:308 sl/SL_Menu.py:745 sl/SL_Menu.py:895 +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:785 sl/SL_Menu.py:977 msgid "Due" msgstr "Vencimiento" -#: TimeTrackerCLI.py:309 sl/SL_Menu.py:596 sl/SL_Menu.py:616 sl/SL_Menu.py:682 -#: sl/SL_Menu.py:768 sl/SL_Menu.py:1077 sl/SL_Menu.py:2238 sl/SL_Menu.py:2409 +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:636 sl/SL_Menu.py:656 sl/SL_Menu.py:722 +#: sl/SL_Menu.py:808 sl/SL_Menu.py:1161 sl/SL_Menu.py:2322 sl/SL_Menu.py:2493 msgid "Today" msgstr "hoy" -#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1950 -#: sl/SL_Menu.py:2642 +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:2034 +#: sl/SL_Menu.py:2726 #, python-brace-format msgid "No tasks found for '{name}'." msgstr "No se encontraron tareas para '{name}'." @@ -515,7 +515,7 @@ msgstr "Seleccione una tarea de '{name}' para cambiarle el nombre:" msgid "Enter the number of the task: " msgstr "Ingrese el número de la tarea:" -#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1993 +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:2077 #, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "Tarea '{old_name}' renombrada a '{new_name}'." @@ -552,7 +552,7 @@ msgid "Task '{task_name}' in '{main_name}' has been closed." msgstr "La tarea '{task_name}' en '{main_name}' se ha cerrado." #: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 -#: sl/SL_Menu.py:1579 sl/SL_Menu.py:1624 sl/SL_Menu.py:1670 +#: sl/SL_Menu.py:1663 sl/SL_Menu.py:1708 sl/SL_Menu.py:1754 msgid "Error: Main project or task not found." msgstr "Error: Proyecto principal o tarea no encontrada." @@ -689,7 +689,7 @@ msgstr "" msgid " Task: {name}" msgstr "Tarea: {name}" -#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1752 +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1836 #, python-brace-format msgid "No tasks found inactive for more than {weeks} weeks." msgstr "No se encontraron tareas inactivas durante más de {weeks} semanas." @@ -702,7 +702,7 @@ msgstr "" "\n" "--- Listar todas las tareas cerradas ---" -#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1777 sl/SL_Menu.py:1800 +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1861 sl/SL_Menu.py:1884 msgid "No closed tasks found." msgstr "No se encontraron tareas cerradas." @@ -761,9 +761,9 @@ msgstr "" "\n" "--- Editar tarea ---" -#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1547 sl/SL_Menu.py:1592 -#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1683 sl/SL_Menu.py:1832 sl/SL_Menu.py:1963 -#: sl/SL_Menu.py:2122 sl/SL_Menu.py:2315 +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1631 sl/SL_Menu.py:1676 +#: sl/SL_Menu.py:1721 sl/SL_Menu.py:1767 sl/SL_Menu.py:1916 sl/SL_Menu.py:2047 +#: sl/SL_Menu.py:2206 sl/SL_Menu.py:2399 msgid "No open projects found." msgstr "No se encontraron proyectos abiertos." @@ -814,7 +814,7 @@ msgstr "" "¿Se completó esta tarea? (actual:{current}, y/n, presione Entrar para " "mantener):" -#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2475 +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2559 msgid "Task updated successfully." msgstr "Tarea actualizada exitosamente." @@ -914,7 +914,7 @@ msgstr "Dejar vacío para cancelar." msgid "New Path: " msgstr "Nueva Ruta: " -#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1334 +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1418 #, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Error: El directorio '{dir}' no existe." @@ -927,11 +927,11 @@ msgstr "Ubicación de almacenamiento actualizada." msgid "Do you want to move the existing data to the new location? (y/n): " msgstr "¿Desea mover los datos existentes a la nueva ubicación? (s/n): " -#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1344 +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1428 msgid "Data moved successfully." msgstr "Datos movidos con éxito." -#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1346 +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1430 #, python-brace-format msgid "Error moving data: {error}" msgstr "Error al mover datos: {error}" @@ -1042,7 +1042,7 @@ msgstr "Introduzca la fecha de inicio (AAAA-MM-DD): " msgid "Enter the end date (YYYY-MM-DD): " msgstr "Introduzca la fecha de fin (AAAA-MM-DD): " -#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2593 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2677 msgid "Error: The start date cannot be after the end date." msgstr "Error: La fecha de inicio no puede ser posterior a la fecha de fin." @@ -1054,8 +1054,8 @@ msgstr "" "\n" "--- Informe de tarea detallado ---" -#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1883 -#: sl/SL_Menu.py:1930 sl/SL_Menu.py:2070 sl/SL_Menu.py:2611 sl/SL_Menu.py:2670 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1967 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2154 sl/SL_Menu.py:2695 sl/SL_Menu.py:2754 msgid "No projects found." msgstr "No se encontraron proyectos." @@ -1201,12 +1201,12 @@ msgstr "" msgid "Select a task from '{name}':" msgstr "Seleccione una tarea de '{name}':" -#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2526 +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2610 #, python-brace-format msgid "Work started on '{task_name}' in project '{main_name}'." msgstr "Trabajo iniciado en '{task_name}' en el proyecto '{main_name}'." -#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2530 +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2614 msgid "Error starting work." msgstr "Error al iniciar el trabajo." @@ -1242,7 +1242,7 @@ msgstr " Iniciado a las: {date}" msgid " Duration: {duration}" msgstr " Duración: {duration}" -#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:559 sl/SL_Menu.py:2552 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:870 sl/SL_Menu.py:2636 msgid "No active work session." msgstr "No hay sesión de trabajo activa." @@ -1254,11 +1254,11 @@ msgstr "" "\n" "--- Detener Trabajo ---" -#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:504 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:594 msgid "Work session stopped successfully." msgstr "Sesión de trabajo detenida con éxito." -#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:506 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:596 msgid "No active work session to stop." msgstr "No hay ninguna sesión de trabajo activa para detener." @@ -1274,391 +1274,405 @@ msgstr "" msgid "Exiting application. Goodbye!" msgstr "Saliendo de la aplicación. ¡Adiós!" -#: sl/SL_Menu.py:399 +#: sl/SL_Menu.py:278 sl/SL_Menu.py:989 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 +msgid "Priority" +msgstr "Prioridad" + +#: sl/SL_Menu.py:450 +#, python-brace-format +msgid "Version {version}" +msgstr "Versión {version}" + +#: sl/SL_Menu.py:455 update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "Una nueva versión ({version}) está disponible." + +#: sl/SL_Menu.py:457 +msgid "Restart and install the update" +msgstr "Reiniciar e instalar la actualización" + +#: sl/SL_Menu.py:458 +msgid "Downloading and installing update..." +msgstr "Descargando e instalando la actualización..." + +#: sl/SL_Menu.py:489 msgid "New" msgstr "Nuevo" -#: sl/SL_Menu.py:400 +#: sl/SL_Menu.py:490 msgid "New Project" msgstr "Nuevo proyecto" -#: sl/SL_Menu.py:403 +#: sl/SL_Menu.py:493 msgid "New Task" msgstr "Nueva tarea" -#: sl/SL_Menu.py:408 +#: sl/SL_Menu.py:498 msgid "Project & Task Management" msgstr "Gestión de proyectos y tareas" -#: sl/SL_Menu.py:409 sl/SL_Menu.py:1117 +#: sl/SL_Menu.py:499 sl/SL_Menu.py:1201 msgid "Main Project Management" msgstr "Gestión de Proyectos Principales" -#: sl/SL_Menu.py:410 sl/SL_Menu.py:1133 sl/SL_Menu.py:1528 +#: sl/SL_Menu.py:500 sl/SL_Menu.py:1217 sl/SL_Menu.py:1612 msgid "Add Project" msgstr "Añadir Proyecto" -#: sl/SL_Menu.py:413 sl/SL_Menu.py:1136 sl/SL_Menu.py:1876 +#: sl/SL_Menu.py:503 sl/SL_Menu.py:1220 sl/SL_Menu.py:1960 msgid "List Projects" msgstr "Listar Proyectos" -#: sl/SL_Menu.py:416 sl/SL_Menu.py:1139 sl/SL_Menu.py:1891 +#: sl/SL_Menu.py:506 sl/SL_Menu.py:1223 sl/SL_Menu.py:1975 msgid "Rename Project" msgstr "Renombrar Proyecto" -#: sl/SL_Menu.py:419 sl/SL_Menu.py:1142 sl/SL_Menu.py:2006 sl/SL_Menu.py:2019 +#: sl/SL_Menu.py:509 sl/SL_Menu.py:1226 sl/SL_Menu.py:2090 sl/SL_Menu.py:2103 msgid "Close Project" msgstr "Cerrar Proyecto" -#: sl/SL_Menu.py:422 sl/SL_Menu.py:1145 sl/SL_Menu.py:2036 sl/SL_Menu.py:2049 +#: sl/SL_Menu.py:512 sl/SL_Menu.py:1229 sl/SL_Menu.py:2120 sl/SL_Menu.py:2133 msgid "Re-open Project" msgstr "Reabrir Proyecto" -#: sl/SL_Menu.py:425 sl/SL_Menu.py:1148 sl/SL_Menu.py:2066 sl/SL_Menu.py:2080 +#: sl/SL_Menu.py:515 sl/SL_Menu.py:1232 sl/SL_Menu.py:2150 sl/SL_Menu.py:2164 msgid "Delete Project" msgstr "Eliminar Proyecto" -#: sl/SL_Menu.py:428 sl/SL_Menu.py:1151 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:518 sl/SL_Menu.py:1235 sl/SL_Menu.py:2181 msgid "List Inactive Projects" msgstr "Listar Proyectos Inactivos" -#: sl/SL_Menu.py:431 sl/SL_Menu.py:1154 +#: sl/SL_Menu.py:521 sl/SL_Menu.py:1238 msgid "Demote Project to Task" msgstr "Degradar Proyecto a Tarea" -#: sl/SL_Menu.py:434 sl/SL_Menu.py:1157 sl/SL_Menu.py:2159 +#: sl/SL_Menu.py:524 sl/SL_Menu.py:1241 sl/SL_Menu.py:2243 msgid "List Completed Projects" msgstr "Listar Proyectos Completados" -#: sl/SL_Menu.py:438 sl/SL_Menu.py:1119 sl/SL_Menu.py:1170 +#: sl/SL_Menu.py:528 sl/SL_Menu.py:1203 sl/SL_Menu.py:1254 msgid "Task Management" msgstr "Gestión de Tareas" -#: sl/SL_Menu.py:439 sl/SL_Menu.py:1172 sl/SL_Menu.py:2177 sl/SL_Menu.py:2208 -#: sl/SL_Menu.py:2283 +#: sl/SL_Menu.py:529 sl/SL_Menu.py:1256 sl/SL_Menu.py:2261 sl/SL_Menu.py:2292 +#: sl/SL_Menu.py:2367 msgid "Add Task" msgstr "Añadir Tarea" -#: sl/SL_Menu.py:442 sl/SL_Menu.py:1175 sl/SL_Menu.py:1926 +#: sl/SL_Menu.py:532 sl/SL_Menu.py:1259 sl/SL_Menu.py:2010 msgid "List Tasks" msgstr "Listar Tareas" -#: sl/SL_Menu.py:445 sl/SL_Menu.py:1178 sl/SL_Menu.py:1959 +#: sl/SL_Menu.py:535 sl/SL_Menu.py:1262 sl/SL_Menu.py:2043 msgid "Rename Task" msgstr "Renombrar Tarea" -#: sl/SL_Menu.py:448 sl/SL_Menu.py:1181 sl/SL_Menu.py:1543 sl/SL_Menu.py:1569 -#: sl/SL_Menu.py:1748 +#: sl/SL_Menu.py:538 sl/SL_Menu.py:1265 sl/SL_Menu.py:1627 sl/SL_Menu.py:1653 +#: sl/SL_Menu.py:1832 msgid "Close Task" msgstr "Cerrar Tarea" -#: sl/SL_Menu.py:451 sl/SL_Menu.py:1184 sl/SL_Menu.py:1588 sl/SL_Menu.py:1614 +#: sl/SL_Menu.py:541 sl/SL_Menu.py:1268 sl/SL_Menu.py:1672 sl/SL_Menu.py:1698 msgid "Re-open Task" msgstr "Reabrir Tarea" -#: sl/SL_Menu.py:454 sl/SL_Menu.py:1187 sl/SL_Menu.py:1633 sl/SL_Menu.py:1660 +#: sl/SL_Menu.py:544 sl/SL_Menu.py:1271 sl/SL_Menu.py:1717 sl/SL_Menu.py:1744 msgid "Delete Task" msgstr "Eliminar Tarea" -#: sl/SL_Menu.py:457 sl/SL_Menu.py:1190 sl/SL_Menu.py:1679 sl/SL_Menu.py:1715 +#: sl/SL_Menu.py:547 sl/SL_Menu.py:1274 sl/SL_Menu.py:1763 sl/SL_Menu.py:1799 msgid "Move Task" msgstr "Mover Tarea" -#: sl/SL_Menu.py:460 sl/SL_Menu.py:1193 sl/SL_Menu.py:1734 +#: sl/SL_Menu.py:550 sl/SL_Menu.py:1277 sl/SL_Menu.py:1818 msgid "List Inactive Tasks" msgstr "Listar Tareas Inactivas" -#: sl/SL_Menu.py:463 sl/SL_Menu.py:1196 sl/SL_Menu.py:1761 +#: sl/SL_Menu.py:553 sl/SL_Menu.py:1280 sl/SL_Menu.py:1845 msgid "List All Closed Tasks" msgstr "Listar Todas las Tareas Cerradas" -#: sl/SL_Menu.py:466 sl/SL_Menu.py:675 sl/SL_Menu.py:761 sl/SL_Menu.py:929 -#: sl/SL_Menu.py:1199 sl/SL_Menu.py:2311 sl/SL_Menu.py:2331 sl/SL_Menu.py:2366 +#: sl/SL_Menu.py:556 sl/SL_Menu.py:715 sl/SL_Menu.py:801 sl/SL_Menu.py:1011 +#: sl/SL_Menu.py:1283 sl/SL_Menu.py:2395 sl/SL_Menu.py:2415 sl/SL_Menu.py:2450 msgid "Edit Task" msgstr "Editar tarea" -#: sl/SL_Menu.py:469 sl/SL_Menu.py:1202 sl/SL_Menu.py:1786 +#: sl/SL_Menu.py:559 sl/SL_Menu.py:1286 sl/SL_Menu.py:1870 msgid "Delete All Closed Tasks" msgstr "Eliminar Todas las Tareas Cerradas" -#: sl/SL_Menu.py:472 sl/SL_Menu.py:1205 sl/SL_Menu.py:1828 +#: sl/SL_Menu.py:562 sl/SL_Menu.py:1289 sl/SL_Menu.py:1912 msgid "Promote Task to Project" msgstr "Promover Tarea a Proyecto" -#: sl/SL_Menu.py:477 +#: sl/SL_Menu.py:567 msgid "Today View" msgstr "Vista de hoy" -#: sl/SL_Menu.py:482 sl/SL_Menu.py:591 +#: sl/SL_Menu.py:572 sl/SL_Menu.py:631 msgid "Task Planning" msgstr "Planificación de tareas" -#: sl/SL_Menu.py:487 sl/SL_Menu.py:962 +#: sl/SL_Menu.py:577 sl/SL_Menu.py:1046 msgid "E-Mail Task Assignment" msgstr "Asignación de tareas por correo" -#: sl/SL_Menu.py:492 sl/SL_Menu.py:671 sl/SL_Menu.py:757 sl/SL_Menu.py:925 +#: sl/SL_Menu.py:582 sl/SL_Menu.py:711 sl/SL_Menu.py:797 sl/SL_Menu.py:1007 msgid "Start work on task" msgstr "Iniciar trabajo en tarea" -#: sl/SL_Menu.py:497 +#: sl/SL_Menu.py:587 msgid "Show current work" msgstr "Mostrar trabajo actual" -#: sl/SL_Menu.py:502 +#: sl/SL_Menu.py:592 msgid "Stop current work" msgstr "Detener trabajo actual" -#: sl/SL_Menu.py:510 sl/SL_Menu.py:1218 +#: sl/SL_Menu.py:600 sl/SL_Menu.py:1302 msgid "Reporting" msgstr "Informes" -#: sl/SL_Menu.py:511 sl/SL_Menu.py:1221 +#: sl/SL_Menu.py:601 sl/SL_Menu.py:1305 msgid "Daily Report (Today)" msgstr "Informe Diario (Hoy)" -#: sl/SL_Menu.py:516 sl/SL_Menu.py:1227 sl/SL_Menu.py:2561 +#: sl/SL_Menu.py:606 sl/SL_Menu.py:1311 sl/SL_Menu.py:2645 msgid "Daily Report (Specific Day)" msgstr "Informe Diario (Día Específico)" -#: sl/SL_Menu.py:519 sl/SL_Menu.py:1230 sl/SL_Menu.py:2580 +#: sl/SL_Menu.py:609 sl/SL_Menu.py:1314 sl/SL_Menu.py:2664 msgid "Date Range Report" msgstr "Informe por Rango de Fechas" -#: sl/SL_Menu.py:522 sl/SL_Menu.py:1233 sl/SL_Menu.py:2607 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:612 sl/SL_Menu.py:1317 sl/SL_Menu.py:2691 sl/SL_Menu.py:2722 msgid "Detailed Task Report" msgstr "Informe Detallado de Tarea" -#: sl/SL_Menu.py:525 sl/SL_Menu.py:1236 sl/SL_Menu.py:2666 +#: sl/SL_Menu.py:615 sl/SL_Menu.py:1320 sl/SL_Menu.py:2750 msgid "Detailed Project Report" msgstr "Informe Detallado de Proyecto" -#: sl/SL_Menu.py:528 sl/SL_Menu.py:1239 sl/SL_Menu.py:2693 +#: sl/SL_Menu.py:618 sl/SL_Menu.py:1323 sl/SL_Menu.py:2777 msgid "Detailed Daily Report" msgstr "Informe Diario Detallado" -#: sl/SL_Menu.py:533 sl/SL_Menu.py:1256 +#: sl/SL_Menu.py:623 sl/SL_Menu.py:1340 msgid "Settings" msgstr "Configuración" -#: sl/SL_Menu.py:557 sl/SL_Menu.py:2539 -msgid "Current Active Work" -msgstr "Trabajo Activo Actual" - -#: sl/SL_Menu.py:562 sl/SL_Menu.py:695 sl/SL_Menu.py:781 sl/SL_Menu.py:936 -#: sl/SL_Menu.py:2411 -msgid "Done" -msgstr "Hecho" - -#: sl/SL_Menu.py:576 -msgid "Edit current task" -msgstr "Editar tarea actual" - -#: sl/SL_Menu.py:584 -msgid "Exit" -msgstr "Salir" - -#: sl/SL_Menu.py:597 sl/SL_Menu.py:617 +#: sl/SL_Menu.py:637 sl/SL_Menu.py:657 msgid "Tomorrow" msgstr "Mañana" -#: sl/SL_Menu.py:598 sl/SL_Menu.py:618 +#: sl/SL_Menu.py:638 sl/SL_Menu.py:658 msgid "Weekly overview" msgstr "Resumen semanal" -#: sl/SL_Menu.py:599 sl/SL_Menu.py:619 +#: sl/SL_Menu.py:639 sl/SL_Menu.py:659 msgid "Overdue tasks" msgstr "Tareas vencidas" -#: sl/SL_Menu.py:600 sl/SL_Menu.py:620 +#: sl/SL_Menu.py:640 sl/SL_Menu.py:660 msgid "Unplanned tasks" msgstr "Tareas no planificadas" -#: sl/SL_Menu.py:601 +#: sl/SL_Menu.py:641 msgid "All" msgstr "Todo" -#: sl/SL_Menu.py:608 +#: sl/SL_Menu.py:648 msgid "Filter" msgstr "Filtro" -#: sl/SL_Menu.py:627 +#: sl/SL_Menu.py:667 msgid "Tasks" msgstr "Tareas" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Friday" msgstr "Viernes" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Monday" msgstr "Lunes" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Saturday" msgstr "Sábado" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Sunday" msgstr "Domingo" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Thursday" msgstr "Jueves" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Tuesday" msgstr "Martes" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Wednesday" msgstr "Miércoles" -#: sl/SL_Menu.py:796 +#: sl/SL_Menu.py:735 sl/SL_Menu.py:821 sl/SL_Menu.py:873 sl/SL_Menu.py:1018 +#: sl/SL_Menu.py:2495 +msgid "Done" +msgstr "Hecho" + +#: sl/SL_Menu.py:836 msgid "No tasks found." msgstr "No Tareas encontradas." -#: sl/SL_Menu.py:798 sl/SL_Menu.py:955 sl/SL_Menu.py:1106 sl/SL_Menu.py:1163 -#: sl/SL_Menu.py:1211 sl/SL_Menu.py:1515 sl/SL_Menu.py:1548 sl/SL_Menu.py:1559 -#: sl/SL_Menu.py:1593 sl/SL_Menu.py:1604 sl/SL_Menu.py:1638 sl/SL_Menu.py:1649 -#: sl/SL_Menu.py:1684 sl/SL_Menu.py:1695 sl/SL_Menu.py:1703 sl/SL_Menu.py:1754 -#: sl/SL_Menu.py:1779 sl/SL_Menu.py:1801 sl/SL_Menu.py:1833 sl/SL_Menu.py:1844 -#: sl/SL_Menu.py:1884 sl/SL_Menu.py:1896 sl/SL_Menu.py:1931 sl/SL_Menu.py:1952 -#: sl/SL_Menu.py:1964 sl/SL_Menu.py:1975 sl/SL_Menu.py:2011 sl/SL_Menu.py:2041 -#: sl/SL_Menu.py:2071 sl/SL_Menu.py:2111 sl/SL_Menu.py:2123 sl/SL_Menu.py:2170 -#: sl/SL_Menu.py:2182 sl/SL_Menu.py:2316 sl/SL_Menu.py:2335 sl/SL_Menu.py:2348 -#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2500 sl/SL_Menu.py:2510 sl/SL_Menu.py:2554 -#: sl/SL_Menu.py:2573 sl/SL_Menu.py:2600 sl/SL_Menu.py:2612 sl/SL_Menu.py:2624 -#: sl/SL_Menu.py:2643 sl/SL_Menu.py:2659 sl/SL_Menu.py:2671 sl/SL_Menu.py:2686 -#: sl/SL_Menu.py:2705 sl/SL_Menu.py:2746 sl/SL_Menu.py:2761 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:1190 sl/SL_Menu.py:1208 sl/SL_Menu.py:1247 +#: sl/SL_Menu.py:1295 sl/SL_Menu.py:1329 sl/SL_Menu.py:1599 sl/SL_Menu.py:1632 +#: sl/SL_Menu.py:1643 sl/SL_Menu.py:1677 sl/SL_Menu.py:1688 sl/SL_Menu.py:1722 +#: sl/SL_Menu.py:1733 sl/SL_Menu.py:1768 sl/SL_Menu.py:1779 sl/SL_Menu.py:1787 +#: sl/SL_Menu.py:1838 sl/SL_Menu.py:1863 sl/SL_Menu.py:1885 sl/SL_Menu.py:1917 +#: sl/SL_Menu.py:1928 sl/SL_Menu.py:1968 sl/SL_Menu.py:1980 sl/SL_Menu.py:2015 +#: sl/SL_Menu.py:2036 sl/SL_Menu.py:2048 sl/SL_Menu.py:2059 sl/SL_Menu.py:2095 +#: sl/SL_Menu.py:2125 sl/SL_Menu.py:2155 sl/SL_Menu.py:2195 sl/SL_Menu.py:2207 +#: sl/SL_Menu.py:2254 sl/SL_Menu.py:2266 sl/SL_Menu.py:2400 sl/SL_Menu.py:2419 +#: sl/SL_Menu.py:2432 sl/SL_Menu.py:2447 sl/SL_Menu.py:2584 sl/SL_Menu.py:2594 +#: sl/SL_Menu.py:2638 sl/SL_Menu.py:2657 sl/SL_Menu.py:2684 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2708 sl/SL_Menu.py:2727 sl/SL_Menu.py:2743 sl/SL_Menu.py:2755 +#: sl/SL_Menu.py:2770 sl/SL_Menu.py:2789 sl/SL_Menu.py:2830 sl/SL_Menu.py:2845 msgid "Back" msgstr "Atrás" -#: sl/SL_Menu.py:805 +#: sl/SL_Menu.py:849 msgid "Today's Tasks" msgstr "Tareas de hoy" -#: sl/SL_Menu.py:826 +#: sl/SL_Menu.py:868 sl/SL_Menu.py:2623 +msgid "Current Active Work" +msgstr "Trabajo Activo Actual" + +#: sl/SL_Menu.py:887 +msgid "Edit current task" +msgstr "Editar tarea actual" + +#: sl/SL_Menu.py:908 msgid "Show only open tasks" msgstr "Mostrar solo tareas abiertas" -#: sl/SL_Menu.py:838 +#: sl/SL_Menu.py:920 msgid "Sort by priority" msgstr "Ordenar por prioridad" -#: sl/SL_Menu.py:907 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 -msgid "Priority" -msgstr "Prioridad" - -#: sl/SL_Menu.py:910 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 +#: sl/SL_Menu.py:992 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 msgid "0 (lowest) to 9 (highest)" msgstr "0 (la más baja) a 9 (la más alta)" -#: sl/SL_Menu.py:951 +#: sl/SL_Menu.py:1033 msgid "No open tasks for today." msgstr "No hay tareas abiertas para hoy." -#: sl/SL_Menu.py:953 +#: sl/SL_Menu.py:1035 msgid "No tasks for today." msgstr "No hay tareas para hoy." -#: sl/SL_Menu.py:968 +#: sl/SL_Menu.py:1039 +msgid "Exit" +msgstr "Salir" + +#: sl/SL_Menu.py:1052 msgid "Fetching emails..." msgstr "Recuperando correos electrónicos..." -#: sl/SL_Menu.py:971 +#: sl/SL_Menu.py:1055 #, python-brace-format msgid "Error fetching emails: {error}" msgstr "Error al recuperar correos: {error}" -#: sl/SL_Menu.py:974 +#: sl/SL_Menu.py:1058 #, python-brace-format msgid "{count} new tasks created from emails." msgstr "{count} nuevas tareas creadas desde correos." -#: sl/SL_Menu.py:976 +#: sl/SL_Menu.py:1060 msgid "No new emails found." msgstr "No se encontraron correos nuevos." -#: sl/SL_Menu.py:1001 +#: sl/SL_Menu.py:1085 #, python-brace-format msgid "{remaining} of {total} emails still to process" msgstr "{remaining} de {total} correos electrónicos por procesar" -#: sl/SL_Menu.py:1005 +#: sl/SL_Menu.py:1089 msgid "No unassigned email tasks available." msgstr "No hay tareas de correo sin asignar disponibles." -#: sl/SL_Menu.py:1017 +#: sl/SL_Menu.py:1101 msgid "Assign Project" msgstr "Asignar proyecto" -#: sl/SL_Menu.py:1028 +#: sl/SL_Menu.py:1112 msgid "Are you sure you want to delete this task?" msgstr "¿Está seguro de que desea eliminar esta tarea?" -#: sl/SL_Menu.py:1031 +#: sl/SL_Menu.py:1115 msgid "Yes, delete" msgstr "Sí, eliminar" -#: sl/SL_Menu.py:1036 +#: sl/SL_Menu.py:1120 msgid "No, cancel" msgstr "No, cancelar" -#: sl/SL_Menu.py:1043 +#: sl/SL_Menu.py:1127 msgid "Delete" msgstr "Eliminar" -#: sl/SL_Menu.py:1047 +#: sl/SL_Menu.py:1131 msgid "Edit Details" msgstr "Editar detalles" -#: sl/SL_Menu.py:1055 sl/SL_Menu.py:2395 +#: sl/SL_Menu.py:1139 sl/SL_Menu.py:2479 msgid "Task Name" msgstr "Nombre de la tarea" -#: sl/SL_Menu.py:1064 sl/SL_Menu.py:2399 +#: sl/SL_Menu.py:1148 sl/SL_Menu.py:2483 msgid "Due Date" msgstr "Fecha de vencimiento" -#: sl/SL_Menu.py:1072 sl/SL_Menu.py:2403 +#: sl/SL_Menu.py:1156 sl/SL_Menu.py:2487 msgid "Clear" msgstr "Limpiar" -#: sl/SL_Menu.py:1079 sl/SL_Menu.py:2271 sl/SL_Menu.py:2444 +#: sl/SL_Menu.py:1163 sl/SL_Menu.py:2355 sl/SL_Menu.py:2528 msgid "Notes (Markdown)" msgstr "Notas (Markdown)" -#: sl/SL_Menu.py:1098 +#: sl/SL_Menu.py:1182 msgid "Task details updated successfully." msgstr "Detalles de la tarea actualizados con éxito." -#: sl/SL_Menu.py:1104 +#: sl/SL_Menu.py:1188 msgid "Error updating task details." msgstr "Error al actualizar los detalles de la tarea." -#: sl/SL_Menu.py:1115 sl/SL_Menu.py:1131 +#: sl/SL_Menu.py:1199 sl/SL_Menu.py:1215 msgid "Project Management" msgstr "Gestión de Proyectos" -#: sl/SL_Menu.py:1124 sl/SL_Menu.py:1245 -msgid "Back to Main Menu" -msgstr "Volver al Menú Principal" - -#: sl/SL_Menu.py:1259 +#: sl/SL_Menu.py:1343 msgid "Change Language" msgstr "Cambiar idioma" -#: sl/SL_Menu.py:1277 +#: sl/SL_Menu.py:1361 msgid "Select Language" msgstr "Seleccionar idioma" -#: sl/SL_Menu.py:1278 sl/SL_Menu.py:1318 sl/SL_Menu.py:1359 sl/SL_Menu.py:1372 -#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1426 sl/SL_Menu.py:1449 sl/SL_Menu.py:1504 +#: sl/SL_Menu.py:1362 sl/SL_Menu.py:1402 sl/SL_Menu.py:1443 sl/SL_Menu.py:1456 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1510 sl/SL_Menu.py:1533 sl/SL_Menu.py:1588 msgid "Save" msgstr "Guardar" -#: sl/SL_Menu.py:1284 +#: sl/SL_Menu.py:1368 msgid "" "Language changed. Please restart the application for the changes to take " "effect." @@ -1666,23 +1680,23 @@ msgstr "" "Idioma cambiado. Por favor, reinicie la aplicación para que los cambios " "surtan efecto." -#: sl/SL_Menu.py:1287 +#: sl/SL_Menu.py:1371 msgid "Restore Previous Version" msgstr "Restaurar versión anterior" -#: sl/SL_Menu.py:1290 +#: sl/SL_Menu.py:1374 msgid "The 'update' module is not available. This feature is disabled." msgstr "" "El módulo 'update' no está disponible. Esta función está deshabilitada." -#: sl/SL_Menu.py:1292 +#: sl/SL_Menu.py:1376 #, python-brace-format msgid "No previous version backup '{filename}' found." msgstr "" "No se encontró ninguna copia de seguridad de la versión anterior " "'{filename}'." -#: sl/SL_Menu.py:1294 +#: sl/SL_Menu.py:1378 msgid "" "This will restore the application to the previously backed-up version. The " "application will then restart. You may need to manually refresh your browser " @@ -1692,35 +1706,35 @@ msgstr "" "aplicación se reiniciará. Es posible que deba actualizar manualmente su " "navegador si no se vuelve a conectar automáticamente." -#: sl/SL_Menu.py:1295 +#: sl/SL_Menu.py:1379 msgid "Restore and Restart" msgstr "Restaurar y reiniciar" -#: sl/SL_Menu.py:1296 +#: sl/SL_Menu.py:1380 msgid "Restoring and restarting..." msgstr "Restaurando y reiniciando..." -#: sl/SL_Menu.py:1299 +#: sl/SL_Menu.py:1383 msgid "Restore complete. Please restart the application." msgstr "Restauración completa. Reinicie la aplicación." -#: sl/SL_Menu.py:1301 +#: sl/SL_Menu.py:1385 msgid "Change Data Storage Location" msgstr "Cambiar ubicación de almacenamiento de datos" -#: sl/SL_Menu.py:1303 +#: sl/SL_Menu.py:1387 msgid "Current data file" msgstr "Archivo de datos actual" -#: sl/SL_Menu.py:1306 +#: sl/SL_Menu.py:1390 msgid "New Path for data file" msgstr "Nueva ruta para el archivo de datos" -#: sl/SL_Menu.py:1312 +#: sl/SL_Menu.py:1396 msgid "Move existing data to the new location" msgstr "Mover datos existentes a la nueva ubicación" -#: sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:1399 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." @@ -1728,11 +1742,11 @@ msgstr "" "Si no se marca, el archivo de datos antiguo permanecerá y se podría crear " "uno nuevo vacío en la nueva ubicación al reiniciar." -#: sl/SL_Menu.py:1322 +#: sl/SL_Menu.py:1406 msgid "Please enter a new path." msgstr "Por favor ingrese una nueva ruta." -#: sl/SL_Menu.py:1330 +#: sl/SL_Menu.py:1414 msgid "" "Error: For security, the data file must be located within the application " "directory." @@ -1740,7 +1754,7 @@ msgstr "" "Error: Por seguridad, el archivo de datos debe estar ubicado dentro del " "directorio de la aplicación." -#: sl/SL_Menu.py:1339 +#: sl/SL_Menu.py:1423 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." @@ -1748,80 +1762,80 @@ msgstr "" "Ubicación de almacenamiento actualizada. Por favor, reinicie la aplicación " "para que los cambios surtan efecto." -#: sl/SL_Menu.py:1353 +#: sl/SL_Menu.py:1437 msgid "Report Format" msgstr "Formato de informe" -#: sl/SL_Menu.py:1358 +#: sl/SL_Menu.py:1442 msgid "Select Format" msgstr "Seleccionar formato" -#: sl/SL_Menu.py:1363 +#: sl/SL_Menu.py:1447 msgid "Report format updated." msgstr "Formato de informe actualizado." -#: sl/SL_Menu.py:1366 +#: sl/SL_Menu.py:1450 msgid "Streamlit Port Settings" msgstr "Configuración del puerto Streamlit" -#: sl/SL_Menu.py:1368 +#: sl/SL_Menu.py:1452 msgid "Current Streamlit Port" msgstr "Puerto actual de Streamlit" -#: sl/SL_Menu.py:1371 +#: sl/SL_Menu.py:1455 msgid "New Port" msgstr "Nuevo puerto" -#: sl/SL_Menu.py:1376 +#: sl/SL_Menu.py:1460 #, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "Puerto actualizado a {port}. Por favor, reinicie Streamlit." -#: sl/SL_Menu.py:1379 +#: sl/SL_Menu.py:1463 msgid "Email Settings" msgstr "Configuración de correo" -#: sl/SL_Menu.py:1385 +#: sl/SL_Menu.py:1469 msgid "Enable email import" msgstr "Activar importación de correo" -#: sl/SL_Menu.py:1386 +#: sl/SL_Menu.py:1470 msgid "IMAP Server" msgstr "Servidor IMAP" -#: sl/SL_Menu.py:1387 +#: sl/SL_Menu.py:1471 msgid "Port" msgstr "Puerto" -#: sl/SL_Menu.py:1388 +#: sl/SL_Menu.py:1472 msgid "Username" msgstr "Usuario" -#: sl/SL_Menu.py:1389 +#: sl/SL_Menu.py:1473 msgid "Password" msgstr "Contraseña" -#: sl/SL_Menu.py:1390 +#: sl/SL_Menu.py:1474 msgid "Use SSL" msgstr "Usar SSL" -#: sl/SL_Menu.py:1403 +#: sl/SL_Menu.py:1487 msgid "Email settings saved." msgstr "Configuración de correo guardada." -#: sl/SL_Menu.py:1406 +#: sl/SL_Menu.py:1490 msgid "Change CSS Style" msgstr "Cambiar estilo CSS" -#: sl/SL_Menu.py:1408 +#: sl/SL_Menu.py:1492 msgid "Current CSS file" msgstr "Archivo CSS actual" -#: sl/SL_Menu.py:1425 +#: sl/SL_Menu.py:1509 msgid "Select CSS File" msgstr "Seleccionar archivo CSS" -#: sl/SL_Menu.py:1431 +#: sl/SL_Menu.py:1515 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." @@ -1829,23 +1843,23 @@ msgstr "" "Estilo CSS actualizado. Por favor, reinicie la aplicación para que los " "cambios surtan efecto." -#: sl/SL_Menu.py:1434 +#: sl/SL_Menu.py:1518 msgid "Change View Mode" msgstr "Cambiar modo de vista" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "App Window (Webview)" msgstr "Ventana de aplicación (vista web)" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "System Browser" msgstr "Navegador del sistema" -#: sl/SL_Menu.py:1448 +#: sl/SL_Menu.py:1532 msgid "Select View Mode" msgstr "Seleccionar modo de visualización" -#: sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1539 msgid "" "View mode updated. Please restart the application for the changes to take " "effect." @@ -1853,155 +1867,161 @@ msgstr "" "Modo de visualización actualizado. Reinicie la aplicación para que los " "cambios surtan efecto." -#: sl/SL_Menu.py:1458 +#: sl/SL_Menu.py:1542 msgid "MCP Server Settings" msgstr "Configuración del servidor MCP" -#: sl/SL_Menu.py:1460 +#: sl/SL_Menu.py:1544 msgid "HTTP (Streamable HTTP)" msgstr "HTTP (Streamable HTTP)" -#: sl/SL_Menu.py:1461 +#: sl/SL_Menu.py:1545 msgid "stdio (recommended for Claude Desktop)" msgstr "stdio (recomendado para Claude Desktop)" -#: sl/SL_Menu.py:1475 +#: sl/SL_Menu.py:1559 msgid "Transport" msgstr "Transporte" -#: sl/SL_Menu.py:1486 +#: sl/SL_Menu.py:1570 msgid "Enable MCP server" msgstr "Activar servidor MCP" -#: sl/SL_Menu.py:1489 +#: sl/SL_Menu.py:1573 msgid "" "Not used with stdio - the MCP client starts and stops the server itself." -msgstr "No se usa con stdio: el cliente MCP inicia y detiene el servidor por sí mismo." +msgstr "" +"No se usa con stdio: el cliente MCP inicia y detiene el servidor por sí " +"mismo." -#: sl/SL_Menu.py:1492 +#: sl/SL_Menu.py:1576 msgid "Port (HTTP only)" msgstr "Puerto (solo HTTP)" -#: sl/SL_Menu.py:1499 +#: sl/SL_Menu.py:1583 msgid "" "With stdio, the app does not start the MCP server itself - the MCP client " "(e.g. Claude Desktop) launches it directly, and the port is ignored." -msgstr "Con stdio, la aplicación no inicia el servidor MCP por sí misma: el cliente MCP (p. ej. Claude Desktop) lo inicia directamente y el puerto se ignora." +msgstr "" +"Con stdio, la aplicación no inicia el servidor MCP por sí misma: el cliente " +"MCP (p. ej. Claude Desktop) lo inicia directamente y el puerto se ignora." -#: sl/SL_Menu.py:1510 +#: sl/SL_Menu.py:1594 msgid "" "MCP server settings saved. Please restart the application for the changes to " "take effect." -msgstr "Configuración del servidor MCP guardada. Por favor, reinicie la aplicación para que los cambios surtan efecto." +msgstr "" +"Configuración del servidor MCP guardada. Por favor, reinicie la aplicación " +"para que los cambios surtan efecto." -#: sl/SL_Menu.py:1524 +#: sl/SL_Menu.py:1608 msgid "Add New Project" msgstr "Agregar nuevo proyecto" -#: sl/SL_Menu.py:1527 +#: sl/SL_Menu.py:1611 msgid "Name of the project" msgstr "Nombre del proyecto" -#: sl/SL_Menu.py:1531 +#: sl/SL_Menu.py:1615 #, python-brace-format msgid "Project '{name}' added." msgstr "Proyecto '{name}' agregado." -#: sl/SL_Menu.py:1535 sl/SL_Menu.py:1581 sl/SL_Menu.py:1626 sl/SL_Menu.py:1672 -#: sl/SL_Menu.py:1727 sl/SL_Menu.py:1821 sl/SL_Menu.py:1869 sl/SL_Menu.py:1919 -#: sl/SL_Menu.py:1999 sl/SL_Menu.py:2029 sl/SL_Menu.py:2059 sl/SL_Menu.py:2090 -#: sl/SL_Menu.py:2152 sl/SL_Menu.py:2192 sl/SL_Menu.py:2304 sl/SL_Menu.py:2323 -#: sl/SL_Menu.py:2484 sl/SL_Menu.py:2532 +#: sl/SL_Menu.py:1619 sl/SL_Menu.py:1665 sl/SL_Menu.py:1710 sl/SL_Menu.py:1756 +#: sl/SL_Menu.py:1811 sl/SL_Menu.py:1905 sl/SL_Menu.py:1953 sl/SL_Menu.py:2003 +#: sl/SL_Menu.py:2083 sl/SL_Menu.py:2113 sl/SL_Menu.py:2143 sl/SL_Menu.py:2174 +#: sl/SL_Menu.py:2236 sl/SL_Menu.py:2276 sl/SL_Menu.py:2388 sl/SL_Menu.py:2407 +#: sl/SL_Menu.py:2568 sl/SL_Menu.py:2616 msgid "Cancel" msgstr "Cancelar" -#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1598 sl/SL_Menu.py:1643 sl/SL_Menu.py:1838 -#: sl/SL_Menu.py:1901 sl/SL_Menu.py:1936 sl/SL_Menu.py:1969 sl/SL_Menu.py:2018 -#: sl/SL_Menu.py:2048 sl/SL_Menu.py:2078 sl/SL_Menu.py:2505 sl/SL_Menu.py:2617 -#: sl/SL_Menu.py:2678 +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1682 sl/SL_Menu.py:1727 sl/SL_Menu.py:1922 +#: sl/SL_Menu.py:1985 sl/SL_Menu.py:2020 sl/SL_Menu.py:2053 sl/SL_Menu.py:2102 +#: sl/SL_Menu.py:2132 sl/SL_Menu.py:2162 sl/SL_Menu.py:2589 sl/SL_Menu.py:2701 +#: sl/SL_Menu.py:2762 msgid "Select Project" msgstr "Seleccionar Proyecto" -#: sl/SL_Menu.py:1558 +#: sl/SL_Menu.py:1642 #, python-brace-format msgid "No open tasks to close in '{name}'." msgstr "No hay tareas abiertas para cerrar en '{name}'." -#: sl/SL_Menu.py:1565 sl/SL_Menu.py:1610 sl/SL_Menu.py:1655 sl/SL_Menu.py:1709 -#: sl/SL_Menu.py:1850 sl/SL_Menu.py:1979 sl/SL_Menu.py:2338 sl/SL_Menu.py:2516 -#: sl/SL_Menu.py:2648 +#: sl/SL_Menu.py:1649 sl/SL_Menu.py:1694 sl/SL_Menu.py:1739 sl/SL_Menu.py:1793 +#: sl/SL_Menu.py:1934 sl/SL_Menu.py:2063 sl/SL_Menu.py:2422 sl/SL_Menu.py:2600 +#: sl/SL_Menu.py:2732 msgid "Select Task" msgstr "Seleccionar Tarea" -#: sl/SL_Menu.py:1575 +#: sl/SL_Menu.py:1659 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been closed." msgstr "La tarea '{sub_name}' en '{main_name}' se ha cerrado." -#: sl/SL_Menu.py:1603 +#: sl/SL_Menu.py:1687 #, python-brace-format msgid "No closed tasks to reopen in '{name}'." msgstr "No hay tareas cerradas para reabrir en '{name}'." -#: sl/SL_Menu.py:1620 +#: sl/SL_Menu.py:1704 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been reopened." msgstr "La tarea '{sub_name}' en '{main_name}' se ha reabierto." -#: sl/SL_Menu.py:1648 +#: sl/SL_Menu.py:1732 #, python-brace-format msgid "No open tasks to delete in '{name}'." msgstr "No hay tareas abiertas para eliminar en '{name}'." -#: sl/SL_Menu.py:1659 +#: sl/SL_Menu.py:1743 msgid "This action cannot be undone." msgstr "Esta acción no se puede deshacer." -#: sl/SL_Menu.py:1666 +#: sl/SL_Menu.py:1750 #, python-brace-format msgid "Task '{sub_name}' deleted from '{main_name}'." msgstr "Tarea '{sub_name}' eliminada de '{main_name}'." -#: sl/SL_Menu.py:1689 +#: sl/SL_Menu.py:1773 msgid "Select Source Project" msgstr "Seleccionar proyecto fuente" -#: sl/SL_Menu.py:1694 +#: sl/SL_Menu.py:1778 #, python-brace-format msgid "No tasks found in '{name}'." msgstr "No se encontraron tareas en '{name}'." -#: sl/SL_Menu.py:1702 +#: sl/SL_Menu.py:1786 msgid "No other projects available to move to." msgstr "No hay otros proyectos disponibles para mudarse." -#: sl/SL_Menu.py:1713 sl/SL_Menu.py:2138 +#: sl/SL_Menu.py:1797 sl/SL_Menu.py:2222 msgid "Select Target Project" msgstr "Seleccionar proyecto de destino" -#: sl/SL_Menu.py:1721 +#: sl/SL_Menu.py:1805 #, python-brace-format msgid "Task '{sub}' moved from '{src}' to '{dst}'." msgstr "La tarea '{sub}' se movió de '{src}' a '{dst}'." -#: sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1809 msgid "Error: Could not move task." msgstr "Error: No se pudo mover la tarea." -#: sl/SL_Menu.py:1736 sl/SL_Menu.py:2099 +#: sl/SL_Menu.py:1820 sl/SL_Menu.py:2183 msgid "Weeks of inactivity" msgstr "Semanas de inactividad" -#: sl/SL_Menu.py:1741 +#: sl/SL_Menu.py:1825 #, python-brace-format msgid "Inactive Tasks (> {weeks} weeks):" msgstr "Tareas inactivas (> {weeks} semanas):" -#: sl/SL_Menu.py:1746 sl/SL_Menu.py:2107 +#: sl/SL_Menu.py:1830 sl/SL_Menu.py:2191 msgid "Last Activity" msgstr "Última actividad" -#: sl/SL_Menu.py:1805 +#: sl/SL_Menu.py:1889 #, python-brace-format msgid "" "Are you sure you want to delete {count} closed tasks? This action cannot be " @@ -2010,25 +2030,25 @@ msgstr "" "¿Está seguro de que desea eliminar{count}tareas cerradas? Esta acción no se " "puede deshacer." -#: sl/SL_Menu.py:1807 +#: sl/SL_Menu.py:1891 msgid "Show projects to delete" msgstr "Mostrar proyectos a eliminar" -#: sl/SL_Menu.py:1811 +#: sl/SL_Menu.py:1895 msgid "Delete All" msgstr "Eliminar todo" -#: sl/SL_Menu.py:1817 +#: sl/SL_Menu.py:1901 #, python-brace-format msgid "Successfully deleted {count} tasks." msgstr "Tareas {count} eliminadas correctamente." -#: sl/SL_Menu.py:1843 +#: sl/SL_Menu.py:1927 #, python-brace-format msgid "No open tasks to promote in '{name}'." msgstr "No hay tareas abiertas para promocionar en '{name}'." -#: sl/SL_Menu.py:1854 +#: sl/SL_Menu.py:1938 msgid "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." @@ -2036,69 +2056,69 @@ msgstr "" "Esto creará un nuevo Proyecto con el nombre de la tarea y moverá todas las " "entradas de tiempo a una tarea 'General' dentro de él." -#: sl/SL_Menu.py:1856 +#: sl/SL_Menu.py:1940 msgid "Promote to Project" msgstr "Promocionar a Proyecto" -#: sl/SL_Menu.py:1895 +#: sl/SL_Menu.py:1979 msgid "No open projects to rename." msgstr "No hay proyectos abiertos para cambiar el nombre." -#: sl/SL_Menu.py:1904 sl/SL_Menu.py:1984 +#: sl/SL_Menu.py:1988 sl/SL_Menu.py:2068 msgid "New Name" msgstr "Nuevo Nombre" -#: sl/SL_Menu.py:1905 sl/SL_Menu.py:1985 +#: sl/SL_Menu.py:1989 sl/SL_Menu.py:2069 msgid "Rename" msgstr "Renombrar" -#: sl/SL_Menu.py:1909 sl/SL_Menu.py:1989 +#: sl/SL_Menu.py:1993 sl/SL_Menu.py:2073 msgid "Please enter a new name." msgstr "Por favor, introduzca un nuevo nombre." -#: sl/SL_Menu.py:1911 sl/SL_Menu.py:1991 +#: sl/SL_Menu.py:1995 sl/SL_Menu.py:2075 msgid "New name is the same as the old name." msgstr "El nuevo nombre es el mismo que el antiguo." -#: sl/SL_Menu.py:1913 +#: sl/SL_Menu.py:1997 #, python-brace-format msgid "Project '{old_name}' successfully renamed to '{new_name}'." msgstr "El proyecto '{old_name}' se renombra exitosamente a '{new_name}'." -#: sl/SL_Menu.py:1974 +#: sl/SL_Menu.py:2058 #, python-brace-format msgid "No open tasks to rename in '{name}'." msgstr "No hay tareas abiertas para cambiar el nombre en '{name}'." -#: sl/SL_Menu.py:1997 +#: sl/SL_Menu.py:2081 msgid "Error: Could not rename. The new name might already exist." msgstr "" "Error: No se pudo cambiar el nombre. Es posible que el nuevo nombre ya " "exista." -#: sl/SL_Menu.py:2010 +#: sl/SL_Menu.py:2094 msgid "No open projects to close." msgstr "No hay proyectos abiertos para cerrar." -#: sl/SL_Menu.py:2023 +#: sl/SL_Menu.py:2107 #, python-brace-format msgid "Project '{name}' has been closed." msgstr "El proyecto '{name}' ha sido cerrado." -#: sl/SL_Menu.py:2027 sl/SL_Menu.py:2057 sl/SL_Menu.py:2088 +#: sl/SL_Menu.py:2111 sl/SL_Menu.py:2141 sl/SL_Menu.py:2172 msgid "Error: Project not found." msgstr "Error: Proyecto no encontrado." -#: sl/SL_Menu.py:2040 +#: sl/SL_Menu.py:2124 msgid "No closed projects to reopen." msgstr "No hay proyectos cerrados para reabrir." -#: sl/SL_Menu.py:2053 +#: sl/SL_Menu.py:2137 #, python-brace-format msgid "Project '{name}' has been reopened." msgstr "El proyecto '{name}' ha sido reabierto." -#: sl/SL_Menu.py:2079 +#: sl/SL_Menu.py:2163 msgid "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." @@ -2106,202 +2126,202 @@ msgstr "" "Esta acción no se puede deshacer. Se eliminarán todas las tareas asociadas y " "entradas de tiempo." -#: sl/SL_Menu.py:2084 +#: sl/SL_Menu.py:2168 #, python-brace-format msgid "Project '{name}' has been deleted." msgstr "El proyecto '{name}' ha sido eliminado." -#: sl/SL_Menu.py:2104 +#: sl/SL_Menu.py:2188 #, python-brace-format msgid "Inactive Projects (> {weeks} weeks):" msgstr "Proyectos inactivos (> {weeks} semanas):" -#: sl/SL_Menu.py:2109 +#: sl/SL_Menu.py:2193 #, python-brace-format msgid "No projects found inactive for more than {weeks} weeks." msgstr "No se encontraron proyectos inactivos durante más de {weeks} semanas." -#: sl/SL_Menu.py:2118 sl/SL_Menu.py:2141 +#: sl/SL_Menu.py:2202 sl/SL_Menu.py:2225 msgid "Demote Project" msgstr "Degradar proyecto" -#: sl/SL_Menu.py:2130 +#: sl/SL_Menu.py:2214 msgid "Select Project to Demote" msgstr "Seleccionar proyecto para degradar" -#: sl/SL_Menu.py:2136 +#: sl/SL_Menu.py:2220 msgid "No other projects available to demote into." msgstr "No hay otros proyectos disponibles para degradar." -#: sl/SL_Menu.py:2139 +#: sl/SL_Menu.py:2223 #, python-brace-format msgid "This will convert '{src}' into a task of '{dst}'." msgstr "Esto convertirá '{src}' en una tarea de '{dst}'." -#: sl/SL_Menu.py:2164 +#: sl/SL_Menu.py:2248 msgid "Projects with only closed or no tasks:" msgstr "Proyectos con solo tareas cerradas o sin tareas:" -#: sl/SL_Menu.py:2168 +#: sl/SL_Menu.py:2252 msgid "No completed projects found." msgstr "No se encontraron proyectos completados." -#: sl/SL_Menu.py:2177 sl/SL_Menu.py:2311 sl/SL_Menu.py:2607 +#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2395 sl/SL_Menu.py:2691 msgid "Step 1: Select Project" msgstr "Paso 1: Seleccionar proyecto" -#: sl/SL_Menu.py:2181 sl/SL_Menu.py:2499 +#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2583 msgid "No open projects found. Please add one first." msgstr "No se encontraron proyectos abiertos. Por favor agregue uno primero." -#: sl/SL_Menu.py:2186 sl/SL_Menu.py:2318 sl/SL_Menu.py:2547 +#: sl/SL_Menu.py:2270 sl/SL_Menu.py:2402 sl/SL_Menu.py:2631 msgid "Project" msgstr "Proyecto" -#: sl/SL_Menu.py:2188 sl/SL_Menu.py:2319 sl/SL_Menu.py:2343 sl/SL_Menu.py:2619 +#: sl/SL_Menu.py:2272 sl/SL_Menu.py:2403 sl/SL_Menu.py:2427 sl/SL_Menu.py:2703 msgid "Next" msgstr "Siguiente" -#: sl/SL_Menu.py:2203 sl/SL_Menu.py:2633 +#: sl/SL_Menu.py:2287 sl/SL_Menu.py:2717 msgid "No project selected. Please start again." msgstr "Ningún proyecto seleccionado. Por favor, empieza de nuevo." -#: sl/SL_Menu.py:2208 +#: sl/SL_Menu.py:2292 msgid "To Project:" msgstr "Al proyecto:" -#: sl/SL_Menu.py:2229 +#: sl/SL_Menu.py:2313 msgid "Name of the new task" msgstr "Nombre de la nueva tarea" -#: sl/SL_Menu.py:2235 +#: sl/SL_Menu.py:2319 msgid "Due date" msgstr "Fecha de vencimiento" -#: sl/SL_Menu.py:2241 sl/SL_Menu.py:2413 +#: sl/SL_Menu.py:2325 sl/SL_Menu.py:2497 msgid "Recurring" msgstr "Recurrente" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "daily" msgstr "diario" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "monthly" msgstr "mensual" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "on all business days" msgstr "todos los días hábiles" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "userdefined" msgstr "definido por el usuario" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "weekly" msgstr "semanal" -#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2437 +#: sl/SL_Menu.py:2345 sl/SL_Menu.py:2521 msgid "Frequency" msgstr "Frecuencia" -#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2440 +#: sl/SL_Menu.py:2349 sl/SL_Menu.py:2524 msgid "Days" msgstr "Días" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Edit" msgstr "Editar" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Preview" msgstr "Vista previa" -#: sl/SL_Menu.py:2274 sl/SL_Menu.py:2447 +#: sl/SL_Menu.py:2358 sl/SL_Menu.py:2531 msgid "No notes provided." msgstr "No se proporcionaron notas." -#: sl/SL_Menu.py:2279 sl/SL_Menu.py:2452 +#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2536 msgid "A due date is required for recurring tasks." msgstr "Se requiere una fecha de vencimiento para las tareas recurrentes." -#: sl/SL_Menu.py:2287 +#: sl/SL_Menu.py:2371 msgid "Please enter a name." msgstr "Por favor ingrese un nombre." -#: sl/SL_Menu.py:2299 +#: sl/SL_Menu.py:2383 #, python-brace-format msgid "Task '{sub_name}' added to '{main_name}'." msgstr "Tarea '{sub_name}' agregada a '{main_name}'." -#: sl/SL_Menu.py:2331 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:2415 sl/SL_Menu.py:2722 msgid "Step 2: Select Task from" msgstr "Paso 2: Seleccione Tarea de" -#: sl/SL_Menu.py:2334 +#: sl/SL_Menu.py:2418 msgid "No open tasks found." msgstr "No se encontraron tareas abiertas." -#: sl/SL_Menu.py:2362 +#: sl/SL_Menu.py:2446 msgid "Task not found." msgstr "Tarea no encontrada." -#: sl/SL_Menu.py:2456 +#: sl/SL_Menu.py:2540 msgid "Save Changes" msgstr "Guardar cambios" -#: sl/SL_Menu.py:2481 +#: sl/SL_Menu.py:2565 msgid "Error: Could not update task." msgstr "Error: No se pudo actualizar la tarea." -#: sl/SL_Menu.py:2494 +#: sl/SL_Menu.py:2578 msgid "Start Work on Task" msgstr "Comenzar a trabajar en la tarea" -#: sl/SL_Menu.py:2509 +#: sl/SL_Menu.py:2593 #, python-brace-format msgid "No open tasks to start work on in '{name}'." msgstr "No hay tareas abiertas para comenzar a trabajar en '{name}'." -#: sl/SL_Menu.py:2520 +#: sl/SL_Menu.py:2604 msgid "Start Work" msgstr "Iniciar trabajo" -#: sl/SL_Menu.py:2548 +#: sl/SL_Menu.py:2632 msgid "Task" msgstr "Tarea" -#: sl/SL_Menu.py:2549 +#: sl/SL_Menu.py:2633 msgid "Started at" msgstr "Comenzó en" -#: sl/SL_Menu.py:2550 tt/TimeTracker.py:1446 +#: sl/SL_Menu.py:2634 tt/TimeTracker.py:1454 msgid "Duration" msgstr "Duración" -#: sl/SL_Menu.py:2564 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2648 sl/SL_Menu.py:2780 msgid "Select Date" msgstr "Seleccionar fecha" -#: sl/SL_Menu.py:2565 sl/SL_Menu.py:2589 sl/SL_Menu.py:2653 sl/SL_Menu.py:2679 -#: sl/SL_Menu.py:2697 +#: sl/SL_Menu.py:2649 sl/SL_Menu.py:2673 sl/SL_Menu.py:2737 sl/SL_Menu.py:2763 +#: sl/SL_Menu.py:2781 msgid "Generate Report" msgstr "Generar Informe" -#: sl/SL_Menu.py:2585 +#: sl/SL_Menu.py:2669 msgid "Start Date" msgstr "Fecha de inicio" -#: sl/SL_Menu.py:2587 +#: sl/SL_Menu.py:2671 msgid "End Date" msgstr "Fecha de finalización" -#: sl/SL_Menu.py:2712 +#: sl/SL_Menu.py:2796 msgid "Report Result" msgstr "Resultado del Informe" -#: sl/SL_Menu.py:2741 +#: sl/SL_Menu.py:2825 msgid "Export Report" msgstr "Exportar informe" @@ -2384,7 +2404,7 @@ msgstr "Proyecto principal de destino '{name}' no encontrado." msgid "Task '{task_name}' moved successfully." msgstr "Tarea '{task_name}' movida con éxito." -#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1408 +#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1416 #, python-brace-format msgid "Task '{task_name}' not found in '{main_name}'." msgstr "Tarea '{task_name}' no encontrada en '{main_name}'." @@ -2442,22 +2462,22 @@ msgstr "Sin asunto" msgid "Unknown Task" msgstr "Tarea desconocida" -#: tt/TimeTracker.py:1365 +#: tt/TimeTracker.py:1373 #, python-brace-format msgid "- {name}: {hours} hours" msgstr "- {name}: {hours} horas" -#: tt/TimeTracker.py:1373 +#: tt/TimeTracker.py:1381 #, python-brace-format msgid "## {name} ({hours} hours)\n" msgstr "## {name} ({hours} horas)\n" -#: tt/TimeTracker.py:1382 +#: tt/TimeTracker.py:1390 #, python-brace-format msgid "# Daily Time Report: {date}\n" msgstr "# Informe de Tiempo Diario: {date}\n" -#: tt/TimeTracker.py:1383 +#: tt/TimeTracker.py:1391 #, python-brace-format msgid "" "\n" @@ -2466,104 +2486,104 @@ msgstr "" "\n" "**Tiempo diario total:{hours}horas**" -#: tt/TimeTracker.py:1387 tt/TimeTracker.py:1700 +#: tt/TimeTracker.py:1395 tt/TimeTracker.py:1708 #, python-brace-format msgid "No time tracked for {date}." msgstr "No hay tiempo registrado para {date}." -#: tt/TimeTracker.py:1404 tt/TimeTracker.py:1499 +#: tt/TimeTracker.py:1412 tt/TimeTracker.py:1507 #, python-brace-format msgid "Main project '{name}' not found." msgstr "Proyecto principal '{name}' no encontrado." -#: tt/TimeTracker.py:1412 +#: tt/TimeTracker.py:1420 #, python-brace-format msgid "No time entries found for task '{task_name}'." msgstr "No se encontraron entradas de tiempo para la tarea '{task_name}'." -#: tt/TimeTracker.py:1445 tt/TimeTracker.py:1675 +#: tt/TimeTracker.py:1453 tt/TimeTracker.py:1683 msgid "now" msgstr "ahora" -#: tt/TimeTracker.py:1450 +#: tt/TimeTracker.py:1458 #, python-brace-format msgid "# Detailed Report for Task: {name}" msgstr "# Informe detallado de la tarea: {name}" -#: tt/TimeTracker.py:1451 +#: tt/TimeTracker.py:1459 #, python-brace-format msgid "Part of Main Project: {name}" msgstr "Parte del Proyecto Principal: {name}" -#: tt/TimeTracker.py:1454 +#: tt/TimeTracker.py:1462 msgid "Active (currently running)" msgstr "Activo (actualmente en ejecución)" -#: tt/TimeTracker.py:1454 tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1559 msgid "Inactive" msgstr "Inactivo" -#: tt/TimeTracker.py:1455 tt/TimeTracker.py:1552 +#: tt/TimeTracker.py:1463 tt/TimeTracker.py:1560 msgid "Status" msgstr "Estado" -#: tt/TimeTracker.py:1457 tt/TimeTracker.py:1554 +#: tt/TimeTracker.py:1465 tt/TimeTracker.py:1562 msgid "First entry" msgstr "Primera entrada" -#: tt/TimeTracker.py:1459 tt/TimeTracker.py:1556 +#: tt/TimeTracker.py:1467 tt/TimeTracker.py:1564 msgid "Last activity" msgstr "Última actividad" -#: tt/TimeTracker.py:1461 tt/TimeTracker.py:1558 +#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1566 msgid "Total recorded time" msgstr "Tiempo total registrado" -#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1560 +#: tt/TimeTracker.py:1470 tt/TimeTracker.py:1568 msgid "Total work sessions" msgstr "Total de sesiones de trabajo" -#: tt/TimeTracker.py:1466 tt/TimeTracker.py:1564 +#: tt/TimeTracker.py:1474 tt/TimeTracker.py:1572 msgid "Average session duration" msgstr "Duración media de la sesión" -#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1567 +#: tt/TimeTracker.py:1477 tt/TimeTracker.py:1575 msgid "Weekday Distribution" msgstr "Distribución por día de la semana" -#: tt/TimeTracker.py:1479 +#: tt/TimeTracker.py:1487 msgid "Daily Breakdown" msgstr "Desglose diario" -#: tt/TimeTracker.py:1548 +#: tt/TimeTracker.py:1556 #, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "# Informe Detallado del Proyecto Principal: {name}" -#: tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1559 #, python-brace-format msgid "Active (working on '{task_name}')" msgstr "Activo (trabajando en '{task_name}')" -#: tt/TimeTracker.py:1559 +#: tt/TimeTracker.py:1567 msgid "Number of tasks" msgstr "Número de tareas" -#: tt/TimeTracker.py:1578 +#: tt/TimeTracker.py:1586 msgid "Task Breakdown" msgstr "Desglose de tareas" -#: tt/TimeTracker.py:1587 +#: tt/TimeTracker.py:1595 #, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} sesiones" -#: tt/TimeTracker.py:1640 +#: tt/TimeTracker.py:1648 #, python-brace-format msgid "# Time Report: {start_date} to {end_date}\n" msgstr "# Informe de Tiempo: {start_date} a {end_date}\n" -#: tt/TimeTracker.py:1641 +#: tt/TimeTracker.py:1649 #, python-brace-format msgid "" "\n" @@ -2572,12 +2592,12 @@ msgstr "" "\n" "**Tiempo Total en el Periodo: {total_time}**" -#: tt/TimeTracker.py:1645 +#: tt/TimeTracker.py:1653 #, python-brace-format msgid "No time tracked between {start_date} and {end_date}." msgstr "No hay tiempo registrado entre {start_date} y {end_date}." -#: tt/TimeTracker.py:1661 +#: tt/TimeTracker.py:1669 #, python-brace-format msgid "# Detailed Daily Report: {date}" msgstr "# Informe Diario Detallado: {date}" @@ -2590,11 +2610,6 @@ msgstr "" "Advertencia: Comprobación de actualizaciones omitida. 'github_repo' no " "encontrado en config.json o el archivo es inválido." -#: update.py:49 -#, python-brace-format -msgid "A new version ({version}) is available." -msgstr "Una nueva versión ({version}) está disponible." - #: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "Error: No se encontró la URL de descarga para la nueva versión." @@ -2622,52 +2637,56 @@ msgstr "Descarga completa. La actualización se instalará en el próximo inicio msgid "Error downloading the update: {error}" msgstr "Error al descargar la actualización: {error}" -#: update.py:108 +#: update.py:98 +msgid "Restarting application to apply the update..." +msgstr "Reiniciando la aplicación para aplicar la actualización..." + +#: update.py:122 msgid "Creating backup of current version before update..." msgstr "" "Creando copia de seguridad de la versión actual antes de la actualización..." -#: update.py:118 +#: update.py:132 #, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Copia de seguridad creada con éxito como {filename}." -#: update.py:120 +#: update.py:134 #, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "Advertencia: No se pudo crear la copia de seguridad. Error: {error}" -#: update.py:122 +#: update.py:136 msgid "Installing update..." msgstr "Instalando actualización..." -#: update.py:142 +#: update.py:156 #, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "Omitiendo archivo protegido: {filename}. No será sobrescrito." -#: update.py:151 +#: update.py:165 msgid "Update installed successfully." msgstr "Actualización instalada con éxito." -#: update.py:153 +#: update.py:167 #, python-brace-format msgid "Error during update installation: {error}" msgstr "Error durante la instalación de la actualización: {error}" -#: update.py:168 +#: update.py:182 #, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "" "Error: No se encontró la copia de seguridad de la versión anterior " "'{filename}'." -#: update.py:171 +#: update.py:185 #, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Restaurando la versión anterior desde '{filename}'..." -#: update.py:192 +#: update.py:206 #, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " @@ -2676,36 +2695,39 @@ msgstr "" "Omitiendo archivo de datos de usuario: {filename}. No será sobrescrito " "durante la restauración." -#: update.py:199 +#: update.py:213 msgid "Previous version restored successfully." msgstr "Versión anterior restaurada con éxito." -#: update.py:201 +#: update.py:215 msgid "Restarting application to apply changes..." msgstr "Reiniciando la aplicación para aplicar los cambios..." -#: update.py:204 +#: update.py:218 #, python-brace-format msgid "Error during restoration: {error}" msgstr "Error durante la restauración: {error}" -#: update.py:205 +#: update.py:219 #, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "El archivo de copia de seguridad '{filename}' no fue eliminado." -#: update.py:212 +#: update.py:226 msgid "Error: Could not import TimeTracker to get the current version." msgstr "Error: No se pudo importar TimeTracker para obtener la versión actual." -#: update.py:215 +#: update.py:229 msgid "Checking for updates..." msgstr "Buscando actualizaciones..." -#: update.py:222 +#: update.py:236 msgid "No updates available." msgstr "No hay actualizaciones disponibles." +#~ msgid "Back to Main Menu" +#~ msgstr "Volver al Menú Principal" + #~ msgid "" #~ "\n" #~ "Error: Failed to install dependencies. Please install them manually " diff --git a/locale/fr/LC_MESSAGES/timetracker.mo b/locale/fr/LC_MESSAGES/timetracker.mo index ea465e3..fc7d4c5 100644 Binary files a/locale/fr/LC_MESSAGES/timetracker.mo and b/locale/fr/LC_MESSAGES/timetracker.mo differ diff --git a/locale/fr/LC_MESSAGES/timetracker.po b/locale/fr/LC_MESSAGES/timetracker.po index 8d86f17..4f4a705 100644 --- a/locale/fr/LC_MESSAGES/timetracker.po +++ b/locale/fr/LC_MESSAGES/timetracker.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-05 09:08+0200\n" +"POT-Creation-Date: 2026-08-05 18:15+0200\n" "PO-Revision-Date: 2026-01-01 15:00+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: French\n" @@ -119,8 +119,8 @@ msgstr "" "\n" "--- Liste des projets principaux ---" -#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1880 -#: sl/SL_Menu.py:1944 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1964 +#: sl/SL_Menu.py:2028 msgid "closed" msgstr "fermé" @@ -163,7 +163,7 @@ msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "" "Le projet principal '{old_name}' a été renommé avec succès en '{new_name}'." -#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1917 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:2001 #, python-brace-format msgid "Error: Could not rename. The new name '{new_name}' might already exist." msgstr "" @@ -462,22 +462,22 @@ msgid "Select the main project whose tasks you want to list:" msgstr "" "Sélectionnez le projet principal dont vous souhaitez lister les tâches :" -#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1941 +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:2025 #, python-brace-format msgid "Tasks for '{name}':" msgstr "Tâches pour '{name}' :" -#: TimeTrackerCLI.py:308 sl/SL_Menu.py:745 sl/SL_Menu.py:895 +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:785 sl/SL_Menu.py:977 msgid "Due" msgstr "Due" -#: TimeTrackerCLI.py:309 sl/SL_Menu.py:596 sl/SL_Menu.py:616 sl/SL_Menu.py:682 -#: sl/SL_Menu.py:768 sl/SL_Menu.py:1077 sl/SL_Menu.py:2238 sl/SL_Menu.py:2409 +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:636 sl/SL_Menu.py:656 sl/SL_Menu.py:722 +#: sl/SL_Menu.py:808 sl/SL_Menu.py:1161 sl/SL_Menu.py:2322 sl/SL_Menu.py:2493 msgid "Today" msgstr "Aujourd'hui" -#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1950 -#: sl/SL_Menu.py:2642 +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:2034 +#: sl/SL_Menu.py:2726 #, python-brace-format msgid "No tasks found for '{name}'." msgstr "Aucune tâche trouvée pour '{name}'." @@ -516,7 +516,7 @@ msgstr "Sélectionnez une tâche parmi '{name}' à renommer :" msgid "Enter the number of the task: " msgstr "Entrez le numéro de la tâche :" -#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1993 +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:2077 #, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "Tâche '{old_name}' renommée en '{new_name}'." @@ -553,7 +553,7 @@ msgid "Task '{task_name}' in '{main_name}' has been closed." msgstr "La tâche «{task_name}» dans «{main_name}» a été fermée." #: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 -#: sl/SL_Menu.py:1579 sl/SL_Menu.py:1624 sl/SL_Menu.py:1670 +#: sl/SL_Menu.py:1663 sl/SL_Menu.py:1708 sl/SL_Menu.py:1754 msgid "Error: Main project or task not found." msgstr "Erreur : projet ou tâche principal introuvable." @@ -691,7 +691,7 @@ msgstr "" msgid " Task: {name}" msgstr "Tâche : {name}" -#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1752 +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1836 #, python-brace-format msgid "No tasks found inactive for more than {weeks} weeks." msgstr "" @@ -705,7 +705,7 @@ msgstr "" "\n" "--- Liste de toutes les tâches fermées ---" -#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1777 sl/SL_Menu.py:1800 +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1861 sl/SL_Menu.py:1884 msgid "No closed tasks found." msgstr "Aucune tâche fermée trouvée." @@ -764,9 +764,9 @@ msgstr "" "\n" "--- Modifier la tâche ---" -#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1547 sl/SL_Menu.py:1592 -#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1683 sl/SL_Menu.py:1832 sl/SL_Menu.py:1963 -#: sl/SL_Menu.py:2122 sl/SL_Menu.py:2315 +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1631 sl/SL_Menu.py:1676 +#: sl/SL_Menu.py:1721 sl/SL_Menu.py:1767 sl/SL_Menu.py:1916 sl/SL_Menu.py:2047 +#: sl/SL_Menu.py:2206 sl/SL_Menu.py:2399 msgid "No open projects found." msgstr "Aucun projet ouvert trouvé." @@ -818,7 +818,7 @@ msgstr "" "Cette tâche est-elle terminée ? (actuel :{current}, o/n, appuyez sur Entrée " "pour conserver) :" -#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2475 +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2559 msgid "Task updated successfully." msgstr "Tâche mise à jour avec succès." @@ -918,7 +918,7 @@ msgstr "Laisser vide pour annuler." msgid "New Path: " msgstr "Nouveau chemin : " -#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1334 +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1418 #, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Erreur : Le répertoire '{dir}' n'existe pas." @@ -933,11 +933,11 @@ msgstr "" "Voulez-vous déplacer les données existantes vers le nouvel emplacement ? (o/" "n) : " -#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1344 +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1428 msgid "Data moved successfully." msgstr "Données déplacées avec succès." -#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1346 +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1430 #, python-brace-format msgid "Error moving data: {error}" msgstr "Erreur lors du déplacement des données : {error}" @@ -1050,7 +1050,7 @@ msgstr "Entrez la date de début (AAAA-MM-JJ) : " msgid "Enter the end date (YYYY-MM-DD): " msgstr "Entrez la date de fin (AAAA-MM-JJ) : " -#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2593 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2677 msgid "Error: The start date cannot be after the end date." msgstr "" "Erreur : La date de début ne peut pas être postérieure à la date de fin." @@ -1063,8 +1063,8 @@ msgstr "" "\n" "--- Rapport détaillé de tâche ---" -#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1883 -#: sl/SL_Menu.py:1930 sl/SL_Menu.py:2070 sl/SL_Menu.py:2611 sl/SL_Menu.py:2670 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1967 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2154 sl/SL_Menu.py:2695 sl/SL_Menu.py:2754 msgid "No projects found." msgstr "Aucun projet trouvé." @@ -1210,12 +1210,12 @@ msgstr "" msgid "Select a task from '{name}':" msgstr "Sélectionnez une tâche de '{name}' :" -#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2526 +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2610 #, python-brace-format msgid "Work started on '{task_name}' in project '{main_name}'." msgstr "Travail commencé sur '{task_name}' dans le projet '{main_name}'." -#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2530 +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2614 msgid "Error starting work." msgstr "Erreur lors du démarrage du travail." @@ -1251,7 +1251,7 @@ msgstr " Démarré à : {date}" msgid " Duration: {duration}" msgstr " Durée : {duration}" -#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:559 sl/SL_Menu.py:2552 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:870 sl/SL_Menu.py:2636 msgid "No active work session." msgstr "Aucune session de travail active." @@ -1263,11 +1263,11 @@ msgstr "" "\n" "--- Arrêter le travail ---" -#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:504 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:594 msgid "Work session stopped successfully." msgstr "Session de travail arrêtée avec succès." -#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:506 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:596 msgid "No active work session to stop." msgstr "Aucune session de travail active à arrêter." @@ -1283,391 +1283,405 @@ msgstr "" msgid "Exiting application. Goodbye!" msgstr "Fermeture de l'application. Au revoir !" -#: sl/SL_Menu.py:399 +#: sl/SL_Menu.py:278 sl/SL_Menu.py:989 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 +msgid "Priority" +msgstr "Priorité" + +#: sl/SL_Menu.py:450 +#, python-brace-format +msgid "Version {version}" +msgstr "Version {version}" + +#: sl/SL_Menu.py:455 update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "Une nouvelle version ({version}) est disponible." + +#: sl/SL_Menu.py:457 +msgid "Restart and install the update" +msgstr "Redémarrer et installer la mise à jour" + +#: sl/SL_Menu.py:458 +msgid "Downloading and installing update..." +msgstr "Téléchargement et installation de la mise à jour..." + +#: sl/SL_Menu.py:489 msgid "New" msgstr "Nouveau" -#: sl/SL_Menu.py:400 +#: sl/SL_Menu.py:490 msgid "New Project" msgstr "Nouveau projet" -#: sl/SL_Menu.py:403 +#: sl/SL_Menu.py:493 msgid "New Task" msgstr "Nouvelle tâche" -#: sl/SL_Menu.py:408 +#: sl/SL_Menu.py:498 msgid "Project & Task Management" msgstr "Gestion des projets et des tâches" -#: sl/SL_Menu.py:409 sl/SL_Menu.py:1117 +#: sl/SL_Menu.py:499 sl/SL_Menu.py:1201 msgid "Main Project Management" msgstr "Gestion du projet principal" -#: sl/SL_Menu.py:410 sl/SL_Menu.py:1133 sl/SL_Menu.py:1528 +#: sl/SL_Menu.py:500 sl/SL_Menu.py:1217 sl/SL_Menu.py:1612 msgid "Add Project" msgstr "Ajouter un projet" -#: sl/SL_Menu.py:413 sl/SL_Menu.py:1136 sl/SL_Menu.py:1876 +#: sl/SL_Menu.py:503 sl/SL_Menu.py:1220 sl/SL_Menu.py:1960 msgid "List Projects" msgstr "Liste des projets" -#: sl/SL_Menu.py:416 sl/SL_Menu.py:1139 sl/SL_Menu.py:1891 +#: sl/SL_Menu.py:506 sl/SL_Menu.py:1223 sl/SL_Menu.py:1975 msgid "Rename Project" msgstr "Renommer le projet" -#: sl/SL_Menu.py:419 sl/SL_Menu.py:1142 sl/SL_Menu.py:2006 sl/SL_Menu.py:2019 +#: sl/SL_Menu.py:509 sl/SL_Menu.py:1226 sl/SL_Menu.py:2090 sl/SL_Menu.py:2103 msgid "Close Project" msgstr "Fermer le projet" -#: sl/SL_Menu.py:422 sl/SL_Menu.py:1145 sl/SL_Menu.py:2036 sl/SL_Menu.py:2049 +#: sl/SL_Menu.py:512 sl/SL_Menu.py:1229 sl/SL_Menu.py:2120 sl/SL_Menu.py:2133 msgid "Re-open Project" msgstr "Rouvrir le projet" -#: sl/SL_Menu.py:425 sl/SL_Menu.py:1148 sl/SL_Menu.py:2066 sl/SL_Menu.py:2080 +#: sl/SL_Menu.py:515 sl/SL_Menu.py:1232 sl/SL_Menu.py:2150 sl/SL_Menu.py:2164 msgid "Delete Project" msgstr "Supprimer le projet" -#: sl/SL_Menu.py:428 sl/SL_Menu.py:1151 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:518 sl/SL_Menu.py:1235 sl/SL_Menu.py:2181 msgid "List Inactive Projects" msgstr "Liste des projets inactifs" -#: sl/SL_Menu.py:431 sl/SL_Menu.py:1154 +#: sl/SL_Menu.py:521 sl/SL_Menu.py:1238 msgid "Demote Project to Task" msgstr "Rétrograder le projet en tâche" -#: sl/SL_Menu.py:434 sl/SL_Menu.py:1157 sl/SL_Menu.py:2159 +#: sl/SL_Menu.py:524 sl/SL_Menu.py:1241 sl/SL_Menu.py:2243 msgid "List Completed Projects" msgstr "Liste des projets terminés" -#: sl/SL_Menu.py:438 sl/SL_Menu.py:1119 sl/SL_Menu.py:1170 +#: sl/SL_Menu.py:528 sl/SL_Menu.py:1203 sl/SL_Menu.py:1254 msgid "Task Management" msgstr "Gestion des tâches" -#: sl/SL_Menu.py:439 sl/SL_Menu.py:1172 sl/SL_Menu.py:2177 sl/SL_Menu.py:2208 -#: sl/SL_Menu.py:2283 +#: sl/SL_Menu.py:529 sl/SL_Menu.py:1256 sl/SL_Menu.py:2261 sl/SL_Menu.py:2292 +#: sl/SL_Menu.py:2367 msgid "Add Task" msgstr "Ajouter une tâche" -#: sl/SL_Menu.py:442 sl/SL_Menu.py:1175 sl/SL_Menu.py:1926 +#: sl/SL_Menu.py:532 sl/SL_Menu.py:1259 sl/SL_Menu.py:2010 msgid "List Tasks" msgstr "Liste des tâches" -#: sl/SL_Menu.py:445 sl/SL_Menu.py:1178 sl/SL_Menu.py:1959 +#: sl/SL_Menu.py:535 sl/SL_Menu.py:1262 sl/SL_Menu.py:2043 msgid "Rename Task" msgstr "Renommer la tâche" -#: sl/SL_Menu.py:448 sl/SL_Menu.py:1181 sl/SL_Menu.py:1543 sl/SL_Menu.py:1569 -#: sl/SL_Menu.py:1748 +#: sl/SL_Menu.py:538 sl/SL_Menu.py:1265 sl/SL_Menu.py:1627 sl/SL_Menu.py:1653 +#: sl/SL_Menu.py:1832 msgid "Close Task" msgstr "Fermer la tâche" -#: sl/SL_Menu.py:451 sl/SL_Menu.py:1184 sl/SL_Menu.py:1588 sl/SL_Menu.py:1614 +#: sl/SL_Menu.py:541 sl/SL_Menu.py:1268 sl/SL_Menu.py:1672 sl/SL_Menu.py:1698 msgid "Re-open Task" msgstr "Rouvrir la tâche" -#: sl/SL_Menu.py:454 sl/SL_Menu.py:1187 sl/SL_Menu.py:1633 sl/SL_Menu.py:1660 +#: sl/SL_Menu.py:544 sl/SL_Menu.py:1271 sl/SL_Menu.py:1717 sl/SL_Menu.py:1744 msgid "Delete Task" msgstr "Supprimer la tâche" -#: sl/SL_Menu.py:457 sl/SL_Menu.py:1190 sl/SL_Menu.py:1679 sl/SL_Menu.py:1715 +#: sl/SL_Menu.py:547 sl/SL_Menu.py:1274 sl/SL_Menu.py:1763 sl/SL_Menu.py:1799 msgid "Move Task" msgstr "Déplacer la tâche" -#: sl/SL_Menu.py:460 sl/SL_Menu.py:1193 sl/SL_Menu.py:1734 +#: sl/SL_Menu.py:550 sl/SL_Menu.py:1277 sl/SL_Menu.py:1818 msgid "List Inactive Tasks" msgstr "Liste des tâches inactives" -#: sl/SL_Menu.py:463 sl/SL_Menu.py:1196 sl/SL_Menu.py:1761 +#: sl/SL_Menu.py:553 sl/SL_Menu.py:1280 sl/SL_Menu.py:1845 msgid "List All Closed Tasks" msgstr "Liste de toutes les tâches fermées" -#: sl/SL_Menu.py:466 sl/SL_Menu.py:675 sl/SL_Menu.py:761 sl/SL_Menu.py:929 -#: sl/SL_Menu.py:1199 sl/SL_Menu.py:2311 sl/SL_Menu.py:2331 sl/SL_Menu.py:2366 +#: sl/SL_Menu.py:556 sl/SL_Menu.py:715 sl/SL_Menu.py:801 sl/SL_Menu.py:1011 +#: sl/SL_Menu.py:1283 sl/SL_Menu.py:2395 sl/SL_Menu.py:2415 sl/SL_Menu.py:2450 msgid "Edit Task" msgstr "Modifier la tâche" -#: sl/SL_Menu.py:469 sl/SL_Menu.py:1202 sl/SL_Menu.py:1786 +#: sl/SL_Menu.py:559 sl/SL_Menu.py:1286 sl/SL_Menu.py:1870 msgid "Delete All Closed Tasks" msgstr "Supprimer toutes les tâches fermées" -#: sl/SL_Menu.py:472 sl/SL_Menu.py:1205 sl/SL_Menu.py:1828 +#: sl/SL_Menu.py:562 sl/SL_Menu.py:1289 sl/SL_Menu.py:1912 msgid "Promote Task to Project" msgstr "Promouvoir la tâche en projet" -#: sl/SL_Menu.py:477 +#: sl/SL_Menu.py:567 msgid "Today View" msgstr "Vue du jour" -#: sl/SL_Menu.py:482 sl/SL_Menu.py:591 +#: sl/SL_Menu.py:572 sl/SL_Menu.py:631 msgid "Task Planning" msgstr "Planification des tâches" -#: sl/SL_Menu.py:487 sl/SL_Menu.py:962 +#: sl/SL_Menu.py:577 sl/SL_Menu.py:1046 msgid "E-Mail Task Assignment" msgstr "Attribution des tâches par e-mail" -#: sl/SL_Menu.py:492 sl/SL_Menu.py:671 sl/SL_Menu.py:757 sl/SL_Menu.py:925 +#: sl/SL_Menu.py:582 sl/SL_Menu.py:711 sl/SL_Menu.py:797 sl/SL_Menu.py:1007 msgid "Start work on task" msgstr "Démarrer le travail sur la tâche" -#: sl/SL_Menu.py:497 +#: sl/SL_Menu.py:587 msgid "Show current work" msgstr "Afficher le travail en cours" -#: sl/SL_Menu.py:502 +#: sl/SL_Menu.py:592 msgid "Stop current work" msgstr "Arrêter le travail en cours" -#: sl/SL_Menu.py:510 sl/SL_Menu.py:1218 +#: sl/SL_Menu.py:600 sl/SL_Menu.py:1302 msgid "Reporting" msgstr "Rapports" -#: sl/SL_Menu.py:511 sl/SL_Menu.py:1221 +#: sl/SL_Menu.py:601 sl/SL_Menu.py:1305 msgid "Daily Report (Today)" msgstr "Rapport quotidien (aujourd'hui)" -#: sl/SL_Menu.py:516 sl/SL_Menu.py:1227 sl/SL_Menu.py:2561 +#: sl/SL_Menu.py:606 sl/SL_Menu.py:1311 sl/SL_Menu.py:2645 msgid "Daily Report (Specific Day)" msgstr "Rapport journalier (Jour spécifique)" -#: sl/SL_Menu.py:519 sl/SL_Menu.py:1230 sl/SL_Menu.py:2580 +#: sl/SL_Menu.py:609 sl/SL_Menu.py:1314 sl/SL_Menu.py:2664 msgid "Date Range Report" msgstr "Rapport par plage de dates" -#: sl/SL_Menu.py:522 sl/SL_Menu.py:1233 sl/SL_Menu.py:2607 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:612 sl/SL_Menu.py:1317 sl/SL_Menu.py:2691 sl/SL_Menu.py:2722 msgid "Detailed Task Report" msgstr "Rapport détaillé de tâche" -#: sl/SL_Menu.py:525 sl/SL_Menu.py:1236 sl/SL_Menu.py:2666 +#: sl/SL_Menu.py:615 sl/SL_Menu.py:1320 sl/SL_Menu.py:2750 msgid "Detailed Project Report" msgstr "Rapport détaillé de projet" -#: sl/SL_Menu.py:528 sl/SL_Menu.py:1239 sl/SL_Menu.py:2693 +#: sl/SL_Menu.py:618 sl/SL_Menu.py:1323 sl/SL_Menu.py:2777 msgid "Detailed Daily Report" msgstr "Rapport journalier détaillé" -#: sl/SL_Menu.py:533 sl/SL_Menu.py:1256 +#: sl/SL_Menu.py:623 sl/SL_Menu.py:1340 msgid "Settings" msgstr "Paramètres" -#: sl/SL_Menu.py:557 sl/SL_Menu.py:2539 -msgid "Current Active Work" -msgstr "Travail actif en cours" - -#: sl/SL_Menu.py:562 sl/SL_Menu.py:695 sl/SL_Menu.py:781 sl/SL_Menu.py:936 -#: sl/SL_Menu.py:2411 -msgid "Done" -msgstr "Terminé" - -#: sl/SL_Menu.py:576 -msgid "Edit current task" -msgstr "Modifier la tâche actuelle" - -#: sl/SL_Menu.py:584 -msgid "Exit" -msgstr "Quitter" - -#: sl/SL_Menu.py:597 sl/SL_Menu.py:617 +#: sl/SL_Menu.py:637 sl/SL_Menu.py:657 msgid "Tomorrow" msgstr "Demain" -#: sl/SL_Menu.py:598 sl/SL_Menu.py:618 +#: sl/SL_Menu.py:638 sl/SL_Menu.py:658 msgid "Weekly overview" msgstr "Aperçu hebdomadaire" -#: sl/SL_Menu.py:599 sl/SL_Menu.py:619 +#: sl/SL_Menu.py:639 sl/SL_Menu.py:659 msgid "Overdue tasks" msgstr "Tâches en retard" -#: sl/SL_Menu.py:600 sl/SL_Menu.py:620 +#: sl/SL_Menu.py:640 sl/SL_Menu.py:660 msgid "Unplanned tasks" msgstr "Tâches non planifiées" -#: sl/SL_Menu.py:601 +#: sl/SL_Menu.py:641 msgid "All" msgstr "Tous" -#: sl/SL_Menu.py:608 +#: sl/SL_Menu.py:648 msgid "Filter" msgstr "Filtrer" -#: sl/SL_Menu.py:627 +#: sl/SL_Menu.py:667 msgid "Tasks" msgstr "Tâches" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Friday" msgstr "Vendredi" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Monday" msgstr "Lundi" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Saturday" msgstr "Samedi" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Sunday" msgstr "Dimanche" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Thursday" msgstr "Jeudi" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Tuesday" msgstr "Mardi" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Wednesday" msgstr "Mercredi" -#: sl/SL_Menu.py:796 +#: sl/SL_Menu.py:735 sl/SL_Menu.py:821 sl/SL_Menu.py:873 sl/SL_Menu.py:1018 +#: sl/SL_Menu.py:2495 +msgid "Done" +msgstr "Terminé" + +#: sl/SL_Menu.py:836 msgid "No tasks found." msgstr "Aucune tâche trouvée." -#: sl/SL_Menu.py:798 sl/SL_Menu.py:955 sl/SL_Menu.py:1106 sl/SL_Menu.py:1163 -#: sl/SL_Menu.py:1211 sl/SL_Menu.py:1515 sl/SL_Menu.py:1548 sl/SL_Menu.py:1559 -#: sl/SL_Menu.py:1593 sl/SL_Menu.py:1604 sl/SL_Menu.py:1638 sl/SL_Menu.py:1649 -#: sl/SL_Menu.py:1684 sl/SL_Menu.py:1695 sl/SL_Menu.py:1703 sl/SL_Menu.py:1754 -#: sl/SL_Menu.py:1779 sl/SL_Menu.py:1801 sl/SL_Menu.py:1833 sl/SL_Menu.py:1844 -#: sl/SL_Menu.py:1884 sl/SL_Menu.py:1896 sl/SL_Menu.py:1931 sl/SL_Menu.py:1952 -#: sl/SL_Menu.py:1964 sl/SL_Menu.py:1975 sl/SL_Menu.py:2011 sl/SL_Menu.py:2041 -#: sl/SL_Menu.py:2071 sl/SL_Menu.py:2111 sl/SL_Menu.py:2123 sl/SL_Menu.py:2170 -#: sl/SL_Menu.py:2182 sl/SL_Menu.py:2316 sl/SL_Menu.py:2335 sl/SL_Menu.py:2348 -#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2500 sl/SL_Menu.py:2510 sl/SL_Menu.py:2554 -#: sl/SL_Menu.py:2573 sl/SL_Menu.py:2600 sl/SL_Menu.py:2612 sl/SL_Menu.py:2624 -#: sl/SL_Menu.py:2643 sl/SL_Menu.py:2659 sl/SL_Menu.py:2671 sl/SL_Menu.py:2686 -#: sl/SL_Menu.py:2705 sl/SL_Menu.py:2746 sl/SL_Menu.py:2761 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:1190 sl/SL_Menu.py:1208 sl/SL_Menu.py:1247 +#: sl/SL_Menu.py:1295 sl/SL_Menu.py:1329 sl/SL_Menu.py:1599 sl/SL_Menu.py:1632 +#: sl/SL_Menu.py:1643 sl/SL_Menu.py:1677 sl/SL_Menu.py:1688 sl/SL_Menu.py:1722 +#: sl/SL_Menu.py:1733 sl/SL_Menu.py:1768 sl/SL_Menu.py:1779 sl/SL_Menu.py:1787 +#: sl/SL_Menu.py:1838 sl/SL_Menu.py:1863 sl/SL_Menu.py:1885 sl/SL_Menu.py:1917 +#: sl/SL_Menu.py:1928 sl/SL_Menu.py:1968 sl/SL_Menu.py:1980 sl/SL_Menu.py:2015 +#: sl/SL_Menu.py:2036 sl/SL_Menu.py:2048 sl/SL_Menu.py:2059 sl/SL_Menu.py:2095 +#: sl/SL_Menu.py:2125 sl/SL_Menu.py:2155 sl/SL_Menu.py:2195 sl/SL_Menu.py:2207 +#: sl/SL_Menu.py:2254 sl/SL_Menu.py:2266 sl/SL_Menu.py:2400 sl/SL_Menu.py:2419 +#: sl/SL_Menu.py:2432 sl/SL_Menu.py:2447 sl/SL_Menu.py:2584 sl/SL_Menu.py:2594 +#: sl/SL_Menu.py:2638 sl/SL_Menu.py:2657 sl/SL_Menu.py:2684 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2708 sl/SL_Menu.py:2727 sl/SL_Menu.py:2743 sl/SL_Menu.py:2755 +#: sl/SL_Menu.py:2770 sl/SL_Menu.py:2789 sl/SL_Menu.py:2830 sl/SL_Menu.py:2845 msgid "Back" msgstr "Retour" -#: sl/SL_Menu.py:805 +#: sl/SL_Menu.py:849 msgid "Today's Tasks" msgstr "Tâches du jour" -#: sl/SL_Menu.py:826 +#: sl/SL_Menu.py:868 sl/SL_Menu.py:2623 +msgid "Current Active Work" +msgstr "Travail actif en cours" + +#: sl/SL_Menu.py:887 +msgid "Edit current task" +msgstr "Modifier la tâche actuelle" + +#: sl/SL_Menu.py:908 msgid "Show only open tasks" msgstr "Afficher uniquement les tâches ouvertes" -#: sl/SL_Menu.py:838 +#: sl/SL_Menu.py:920 msgid "Sort by priority" msgstr "Trier par priorité" -#: sl/SL_Menu.py:907 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 -msgid "Priority" -msgstr "Priorité" - -#: sl/SL_Menu.py:910 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 +#: sl/SL_Menu.py:992 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 msgid "0 (lowest) to 9 (highest)" msgstr "0 (la plus basse) à 9 (la plus élevée)" -#: sl/SL_Menu.py:951 +#: sl/SL_Menu.py:1033 msgid "No open tasks for today." msgstr "Aucune tâche ouverte pour aujourd'hui." -#: sl/SL_Menu.py:953 +#: sl/SL_Menu.py:1035 msgid "No tasks for today." msgstr "Aucune tâche pour aujourd'hui." -#: sl/SL_Menu.py:968 +#: sl/SL_Menu.py:1039 +msgid "Exit" +msgstr "Quitter" + +#: sl/SL_Menu.py:1052 msgid "Fetching emails..." msgstr "Récupération des e-mails..." -#: sl/SL_Menu.py:971 +#: sl/SL_Menu.py:1055 #, python-brace-format msgid "Error fetching emails: {error}" msgstr "Erreur lors de la récupération des e-mails : {error}" -#: sl/SL_Menu.py:974 +#: sl/SL_Menu.py:1058 #, python-brace-format msgid "{count} new tasks created from emails." msgstr "{count} nouvelles tâches créées à partir des e-mails." -#: sl/SL_Menu.py:976 +#: sl/SL_Menu.py:1060 msgid "No new emails found." msgstr "Aucun nouvel e-mail trouvé." -#: sl/SL_Menu.py:1001 +#: sl/SL_Menu.py:1085 #, python-brace-format msgid "{remaining} of {total} emails still to process" msgstr "{remaining} e-mails sur {total} restants à traiter" -#: sl/SL_Menu.py:1005 +#: sl/SL_Menu.py:1089 msgid "No unassigned email tasks available." msgstr "Aucune tâche par e-mail non attribuée disponible." -#: sl/SL_Menu.py:1017 +#: sl/SL_Menu.py:1101 msgid "Assign Project" msgstr "Attribuer un projet" -#: sl/SL_Menu.py:1028 +#: sl/SL_Menu.py:1112 msgid "Are you sure you want to delete this task?" msgstr "Êtes-vous sûr de vouloir supprimer cette tâche ?" -#: sl/SL_Menu.py:1031 +#: sl/SL_Menu.py:1115 msgid "Yes, delete" msgstr "Oui, supprimer" -#: sl/SL_Menu.py:1036 +#: sl/SL_Menu.py:1120 msgid "No, cancel" msgstr "Non, annuler" -#: sl/SL_Menu.py:1043 +#: sl/SL_Menu.py:1127 msgid "Delete" msgstr "Supprimer" -#: sl/SL_Menu.py:1047 +#: sl/SL_Menu.py:1131 msgid "Edit Details" msgstr "Modifier les détails" -#: sl/SL_Menu.py:1055 sl/SL_Menu.py:2395 +#: sl/SL_Menu.py:1139 sl/SL_Menu.py:2479 msgid "Task Name" msgstr "Nom de la tâche" -#: sl/SL_Menu.py:1064 sl/SL_Menu.py:2399 +#: sl/SL_Menu.py:1148 sl/SL_Menu.py:2483 msgid "Due Date" msgstr "Date d'échéance" -#: sl/SL_Menu.py:1072 sl/SL_Menu.py:2403 +#: sl/SL_Menu.py:1156 sl/SL_Menu.py:2487 msgid "Clear" msgstr "Effacer" -#: sl/SL_Menu.py:1079 sl/SL_Menu.py:2271 sl/SL_Menu.py:2444 +#: sl/SL_Menu.py:1163 sl/SL_Menu.py:2355 sl/SL_Menu.py:2528 msgid "Notes (Markdown)" msgstr "Aucun temps suivi entre le {start_date} et le {end_date}." -#: sl/SL_Menu.py:1098 +#: sl/SL_Menu.py:1182 msgid "Task details updated successfully." msgstr "Détails de la tâche mis à jour avec succès." -#: sl/SL_Menu.py:1104 +#: sl/SL_Menu.py:1188 msgid "Error updating task details." msgstr "Erreur lors de la mise à jour des détails de la tâche." -#: sl/SL_Menu.py:1115 sl/SL_Menu.py:1131 +#: sl/SL_Menu.py:1199 sl/SL_Menu.py:1215 msgid "Project Management" msgstr "Gestion de projet" -#: sl/SL_Menu.py:1124 sl/SL_Menu.py:1245 -msgid "Back to Main Menu" -msgstr "Retour au menu principal" - -#: sl/SL_Menu.py:1259 +#: sl/SL_Menu.py:1343 msgid "Change Language" msgstr "1. Changer de langue" -#: sl/SL_Menu.py:1277 +#: sl/SL_Menu.py:1361 msgid "Select Language" msgstr "Sélectionner la langue" -#: sl/SL_Menu.py:1278 sl/SL_Menu.py:1318 sl/SL_Menu.py:1359 sl/SL_Menu.py:1372 -#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1426 sl/SL_Menu.py:1449 sl/SL_Menu.py:1504 +#: sl/SL_Menu.py:1362 sl/SL_Menu.py:1402 sl/SL_Menu.py:1443 sl/SL_Menu.py:1456 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1510 sl/SL_Menu.py:1533 sl/SL_Menu.py:1588 msgid "Save" msgstr "Enregistrer" -#: sl/SL_Menu.py:1284 +#: sl/SL_Menu.py:1368 msgid "" "Language changed. Please restart the application for the changes to take " "effect." @@ -1675,22 +1689,22 @@ msgstr "" "Langue changée. Veuillez redémarrer l'application pour que les changements " "prennent effet." -#: sl/SL_Menu.py:1287 +#: sl/SL_Menu.py:1371 msgid "Restore Previous Version" msgstr "Restaurer la version précédente" -#: sl/SL_Menu.py:1290 +#: sl/SL_Menu.py:1374 msgid "The 'update' module is not available. This feature is disabled." msgstr "" "Le module 'mise à jour' n'est pas disponible. Cette fonctionnalité est " "désactivée." -#: sl/SL_Menu.py:1292 +#: sl/SL_Menu.py:1376 #, python-brace-format msgid "No previous version backup '{filename}' found." msgstr "Aucune sauvegarde de la version précédente '{filename}' trouvée." -#: sl/SL_Menu.py:1294 +#: sl/SL_Menu.py:1378 msgid "" "This will restore the application to the previously backed-up version. The " "application will then restart. You may need to manually refresh your browser " @@ -1700,35 +1714,35 @@ msgstr "" "L'application redémarrera ensuite. Vous devrez peut-être actualiser " "manuellement votre navigateur s'il ne se reconnecte pas automatiquement." -#: sl/SL_Menu.py:1295 +#: sl/SL_Menu.py:1379 msgid "Restore and Restart" msgstr "Restaurer et redémarrer" -#: sl/SL_Menu.py:1296 +#: sl/SL_Menu.py:1380 msgid "Restoring and restarting..." msgstr "Restauration et redémarrage..." -#: sl/SL_Menu.py:1299 +#: sl/SL_Menu.py:1383 msgid "Restore complete. Please restart the application." msgstr "Restauration terminée. Veuillez redémarrer l'application." -#: sl/SL_Menu.py:1301 +#: sl/SL_Menu.py:1385 msgid "Change Data Storage Location" msgstr "Changer l'emplacement de stockage des données" -#: sl/SL_Menu.py:1303 +#: sl/SL_Menu.py:1387 msgid "Current data file" msgstr "Fichier de données actuel" -#: sl/SL_Menu.py:1306 +#: sl/SL_Menu.py:1390 msgid "New Path for data file" msgstr "Nouveau chemin pour le fichier de données" -#: sl/SL_Menu.py:1312 +#: sl/SL_Menu.py:1396 msgid "Move existing data to the new location" msgstr "Déplacer les données existantes vers le nouvel emplacement" -#: sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:1399 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." @@ -1736,11 +1750,11 @@ msgstr "" "Si décoché, l'ancien fichier de données restera, et un nouveau fichier vide " "pourrait être créé au nouvel emplacement au redémarrage." -#: sl/SL_Menu.py:1322 +#: sl/SL_Menu.py:1406 msgid "Please enter a new path." msgstr "Veuillez entrer un nouveau chemin." -#: sl/SL_Menu.py:1330 +#: sl/SL_Menu.py:1414 msgid "" "Error: For security, the data file must be located within the application " "directory." @@ -1748,7 +1762,7 @@ msgstr "" "Erreur : Pour des raisons de sécurité, le fichier de données doit être situé " "dans le répertoire de l'application." -#: sl/SL_Menu.py:1339 +#: sl/SL_Menu.py:1423 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." @@ -1756,80 +1770,80 @@ msgstr "" "Emplacement de stockage mis à jour. Veuillez redémarrer l'application pour " "que les changements prennent effet." -#: sl/SL_Menu.py:1353 +#: sl/SL_Menu.py:1437 msgid "Report Format" msgstr "Format du rapport" -#: sl/SL_Menu.py:1358 +#: sl/SL_Menu.py:1442 msgid "Select Format" msgstr "Sélectionnez le format" -#: sl/SL_Menu.py:1363 +#: sl/SL_Menu.py:1447 msgid "Report format updated." msgstr "Format de rapport mis à jour." -#: sl/SL_Menu.py:1366 +#: sl/SL_Menu.py:1450 msgid "Streamlit Port Settings" msgstr "Paramètres du port Streamlit" -#: sl/SL_Menu.py:1368 +#: sl/SL_Menu.py:1452 msgid "Current Streamlit Port" msgstr "Port Streamlit actuel" -#: sl/SL_Menu.py:1371 +#: sl/SL_Menu.py:1455 msgid "New Port" msgstr "Nouveau port" -#: sl/SL_Menu.py:1376 +#: sl/SL_Menu.py:1460 #, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "Port mis à jour vers {port}. Veuillez redémarrer Streamlit." -#: sl/SL_Menu.py:1379 +#: sl/SL_Menu.py:1463 msgid "Email Settings" msgstr "Paramètres de messagerie" -#: sl/SL_Menu.py:1385 +#: sl/SL_Menu.py:1469 msgid "Enable email import" msgstr "Activer l'importation d'e-mails" -#: sl/SL_Menu.py:1386 +#: sl/SL_Menu.py:1470 msgid "IMAP Server" msgstr "Serveur IMAP" -#: sl/SL_Menu.py:1387 +#: sl/SL_Menu.py:1471 msgid "Port" msgstr "Port" -#: sl/SL_Menu.py:1388 +#: sl/SL_Menu.py:1472 msgid "Username" msgstr "Nom d'utilisateur" -#: sl/SL_Menu.py:1389 +#: sl/SL_Menu.py:1473 msgid "Password" msgstr "Mot de passe" -#: sl/SL_Menu.py:1390 +#: sl/SL_Menu.py:1474 msgid "Use SSL" msgstr "Utiliser SSL" -#: sl/SL_Menu.py:1403 +#: sl/SL_Menu.py:1487 msgid "Email settings saved." msgstr "Paramètres de messagerie enregistrés." -#: sl/SL_Menu.py:1406 +#: sl/SL_Menu.py:1490 msgid "Change CSS Style" msgstr "Changer le style CSS" -#: sl/SL_Menu.py:1408 +#: sl/SL_Menu.py:1492 msgid "Current CSS file" msgstr "Fichier CSS actuel" -#: sl/SL_Menu.py:1425 +#: sl/SL_Menu.py:1509 msgid "Select CSS File" msgstr "Sélectionner le fichier CSS" -#: sl/SL_Menu.py:1431 +#: sl/SL_Menu.py:1515 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." @@ -1837,23 +1851,23 @@ msgstr "" "Style CSS mis à jour. Veuillez redémarrer l'application pour que les " "changements prennent effet." -#: sl/SL_Menu.py:1434 +#: sl/SL_Menu.py:1518 msgid "Change View Mode" msgstr "Changer le mode d'affichage" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "App Window (Webview)" msgstr "Fenêtre d'application (Webview)" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "System Browser" msgstr "Navigateur système" -#: sl/SL_Menu.py:1448 +#: sl/SL_Menu.py:1532 msgid "Select View Mode" msgstr "Sélectionner le mode d'affichage" -#: sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1539 msgid "" "View mode updated. Please restart the application for the changes to take " "effect." @@ -1861,155 +1875,161 @@ msgstr "" "Mode d'affichage mis à jour. Veuillez redémarrer l'application pour que les " "changements prennent effet." -#: sl/SL_Menu.py:1458 +#: sl/SL_Menu.py:1542 msgid "MCP Server Settings" msgstr "Paramètres du serveur MCP" -#: sl/SL_Menu.py:1460 +#: sl/SL_Menu.py:1544 msgid "HTTP (Streamable HTTP)" msgstr "HTTP (Streamable HTTP)" -#: sl/SL_Menu.py:1461 +#: sl/SL_Menu.py:1545 msgid "stdio (recommended for Claude Desktop)" msgstr "stdio (recommandé pour Claude Desktop)" -#: sl/SL_Menu.py:1475 +#: sl/SL_Menu.py:1559 msgid "Transport" msgstr "Transport" -#: sl/SL_Menu.py:1486 +#: sl/SL_Menu.py:1570 msgid "Enable MCP server" msgstr "Activer le serveur MCP" -#: sl/SL_Menu.py:1489 +#: sl/SL_Menu.py:1573 msgid "" "Not used with stdio - the MCP client starts and stops the server itself." -msgstr "Non utilisé avec stdio - le client MCP démarre et arrête lui-même le serveur." +msgstr "" +"Non utilisé avec stdio - le client MCP démarre et arrête lui-même le serveur." -#: sl/SL_Menu.py:1492 +#: sl/SL_Menu.py:1576 msgid "Port (HTTP only)" msgstr "Port (HTTP uniquement)" -#: sl/SL_Menu.py:1499 +#: sl/SL_Menu.py:1583 msgid "" "With stdio, the app does not start the MCP server itself - the MCP client " "(e.g. Claude Desktop) launches it directly, and the port is ignored." -msgstr "Avec stdio, l'application ne démarre pas elle-même le serveur MCP - le client MCP (par ex. Claude Desktop) le lance directement, et le port est ignoré." +msgstr "" +"Avec stdio, l'application ne démarre pas elle-même le serveur MCP - le " +"client MCP (par ex. Claude Desktop) le lance directement, et le port est " +"ignoré." -#: sl/SL_Menu.py:1510 +#: sl/SL_Menu.py:1594 msgid "" "MCP server settings saved. Please restart the application for the changes to " "take effect." -msgstr "Paramètres du serveur MCP enregistrés. Veuillez redémarrer l'application pour que les changements prennent effet." +msgstr "" +"Paramètres du serveur MCP enregistrés. Veuillez redémarrer l'application " +"pour que les changements prennent effet." -#: sl/SL_Menu.py:1524 +#: sl/SL_Menu.py:1608 msgid "Add New Project" msgstr "Ajouter un nouveau projet" -#: sl/SL_Menu.py:1527 +#: sl/SL_Menu.py:1611 msgid "Name of the project" msgstr "Nom du projet" -#: sl/SL_Menu.py:1531 +#: sl/SL_Menu.py:1615 #, python-brace-format msgid "Project '{name}' added." msgstr "Projet '{name}' ajouté." -#: sl/SL_Menu.py:1535 sl/SL_Menu.py:1581 sl/SL_Menu.py:1626 sl/SL_Menu.py:1672 -#: sl/SL_Menu.py:1727 sl/SL_Menu.py:1821 sl/SL_Menu.py:1869 sl/SL_Menu.py:1919 -#: sl/SL_Menu.py:1999 sl/SL_Menu.py:2029 sl/SL_Menu.py:2059 sl/SL_Menu.py:2090 -#: sl/SL_Menu.py:2152 sl/SL_Menu.py:2192 sl/SL_Menu.py:2304 sl/SL_Menu.py:2323 -#: sl/SL_Menu.py:2484 sl/SL_Menu.py:2532 +#: sl/SL_Menu.py:1619 sl/SL_Menu.py:1665 sl/SL_Menu.py:1710 sl/SL_Menu.py:1756 +#: sl/SL_Menu.py:1811 sl/SL_Menu.py:1905 sl/SL_Menu.py:1953 sl/SL_Menu.py:2003 +#: sl/SL_Menu.py:2083 sl/SL_Menu.py:2113 sl/SL_Menu.py:2143 sl/SL_Menu.py:2174 +#: sl/SL_Menu.py:2236 sl/SL_Menu.py:2276 sl/SL_Menu.py:2388 sl/SL_Menu.py:2407 +#: sl/SL_Menu.py:2568 sl/SL_Menu.py:2616 msgid "Cancel" msgstr "Annuler" -#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1598 sl/SL_Menu.py:1643 sl/SL_Menu.py:1838 -#: sl/SL_Menu.py:1901 sl/SL_Menu.py:1936 sl/SL_Menu.py:1969 sl/SL_Menu.py:2018 -#: sl/SL_Menu.py:2048 sl/SL_Menu.py:2078 sl/SL_Menu.py:2505 sl/SL_Menu.py:2617 -#: sl/SL_Menu.py:2678 +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1682 sl/SL_Menu.py:1727 sl/SL_Menu.py:1922 +#: sl/SL_Menu.py:1985 sl/SL_Menu.py:2020 sl/SL_Menu.py:2053 sl/SL_Menu.py:2102 +#: sl/SL_Menu.py:2132 sl/SL_Menu.py:2162 sl/SL_Menu.py:2589 sl/SL_Menu.py:2701 +#: sl/SL_Menu.py:2762 msgid "Select Project" msgstr "Sélectionner le projet" -#: sl/SL_Menu.py:1558 +#: sl/SL_Menu.py:1642 #, python-brace-format msgid "No open tasks to close in '{name}'." msgstr "Aucune tâche ouverte à fermer dans '{name}'." -#: sl/SL_Menu.py:1565 sl/SL_Menu.py:1610 sl/SL_Menu.py:1655 sl/SL_Menu.py:1709 -#: sl/SL_Menu.py:1850 sl/SL_Menu.py:1979 sl/SL_Menu.py:2338 sl/SL_Menu.py:2516 -#: sl/SL_Menu.py:2648 +#: sl/SL_Menu.py:1649 sl/SL_Menu.py:1694 sl/SL_Menu.py:1739 sl/SL_Menu.py:1793 +#: sl/SL_Menu.py:1934 sl/SL_Menu.py:2063 sl/SL_Menu.py:2422 sl/SL_Menu.py:2600 +#: sl/SL_Menu.py:2732 msgid "Select Task" msgstr "Sélectionner une tâche" -#: sl/SL_Menu.py:1575 +#: sl/SL_Menu.py:1659 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been closed." msgstr "La tâche '{sub_name}' dans '{main_name}' a été fermée." -#: sl/SL_Menu.py:1603 +#: sl/SL_Menu.py:1687 #, python-brace-format msgid "No closed tasks to reopen in '{name}'." msgstr "Aucune tâche fermée à rouvrir dans '{name}'." -#: sl/SL_Menu.py:1620 +#: sl/SL_Menu.py:1704 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been reopened." msgstr "La tâche '{sub_name}' dans '{main_name}' a été rouverte." -#: sl/SL_Menu.py:1648 +#: sl/SL_Menu.py:1732 #, python-brace-format msgid "No open tasks to delete in '{name}'." msgstr "Aucune tâche ouverte à supprimer dans '{name}'." -#: sl/SL_Menu.py:1659 +#: sl/SL_Menu.py:1743 msgid "This action cannot be undone." msgstr "Cette action ne peut pas être annulée." -#: sl/SL_Menu.py:1666 +#: sl/SL_Menu.py:1750 #, python-brace-format msgid "Task '{sub_name}' deleted from '{main_name}'." msgstr "Tâche '{sub_name}' supprimée de '{main_name}'." -#: sl/SL_Menu.py:1689 +#: sl/SL_Menu.py:1773 msgid "Select Source Project" msgstr "Sélectionnez le projet source" -#: sl/SL_Menu.py:1694 +#: sl/SL_Menu.py:1778 #, python-brace-format msgid "No tasks found in '{name}'." msgstr "Aucune tâche trouvée dans '{name}'." -#: sl/SL_Menu.py:1702 +#: sl/SL_Menu.py:1786 msgid "No other projects available to move to." msgstr "Aucun autre projet disponible vers lequel migrer." -#: sl/SL_Menu.py:1713 sl/SL_Menu.py:2138 +#: sl/SL_Menu.py:1797 sl/SL_Menu.py:2222 msgid "Select Target Project" msgstr "Sélectionnez le projet cible" -#: sl/SL_Menu.py:1721 +#: sl/SL_Menu.py:1805 #, python-brace-format msgid "Task '{sub}' moved from '{src}' to '{dst}'." msgstr "La tâche «{sub}» a été déplacée de «{src}» à «{dst}»." -#: sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1809 msgid "Error: Could not move task." msgstr "Erreur : impossible de déplacer la tâche." -#: sl/SL_Menu.py:1736 sl/SL_Menu.py:2099 +#: sl/SL_Menu.py:1820 sl/SL_Menu.py:2183 msgid "Weeks of inactivity" msgstr "Semaines d'inactivité" -#: sl/SL_Menu.py:1741 +#: sl/SL_Menu.py:1825 #, python-brace-format msgid "Inactive Tasks (> {weeks} weeks):" msgstr "Tâches inactives (> {weeks} semaines) :" -#: sl/SL_Menu.py:1746 sl/SL_Menu.py:2107 +#: sl/SL_Menu.py:1830 sl/SL_Menu.py:2191 msgid "Last Activity" msgstr "Dernière activité" -#: sl/SL_Menu.py:1805 +#: sl/SL_Menu.py:1889 #, python-brace-format msgid "" "Are you sure you want to delete {count} closed tasks? This action cannot be " @@ -2018,25 +2038,25 @@ msgstr "" "Êtes-vous sûr de vouloir supprimer{count}tâches fermées ? Cette action ne " "peut pas être annulée." -#: sl/SL_Menu.py:1807 +#: sl/SL_Menu.py:1891 msgid "Show projects to delete" msgstr "Afficher les projets à supprimer" -#: sl/SL_Menu.py:1811 +#: sl/SL_Menu.py:1895 msgid "Delete All" msgstr "Supprimer tout" -#: sl/SL_Menu.py:1817 +#: sl/SL_Menu.py:1901 #, python-brace-format msgid "Successfully deleted {count} tasks." msgstr "Tâches {count} supprimées avec succès." -#: sl/SL_Menu.py:1843 +#: sl/SL_Menu.py:1927 #, python-brace-format msgid "No open tasks to promote in '{name}'." msgstr "Aucune tâche ouverte à promouvoir dans '{name}'." -#: sl/SL_Menu.py:1854 +#: sl/SL_Menu.py:1938 msgid "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." @@ -2044,67 +2064,67 @@ msgstr "" "Cela créera un nouveau projet avec le nom de la tâche et déplacera toutes " "les entrées de temps vers une tâche « Générale » à l'intérieur de celui-ci." -#: sl/SL_Menu.py:1856 +#: sl/SL_Menu.py:1940 msgid "Promote to Project" msgstr "Promouvoir vers le projet" -#: sl/SL_Menu.py:1895 +#: sl/SL_Menu.py:1979 msgid "No open projects to rename." msgstr "Aucun projet ouvert à renommer." -#: sl/SL_Menu.py:1904 sl/SL_Menu.py:1984 +#: sl/SL_Menu.py:1988 sl/SL_Menu.py:2068 msgid "New Name" msgstr "Nouveau nom" -#: sl/SL_Menu.py:1905 sl/SL_Menu.py:1985 +#: sl/SL_Menu.py:1989 sl/SL_Menu.py:2069 msgid "Rename" msgstr "Renommer" -#: sl/SL_Menu.py:1909 sl/SL_Menu.py:1989 +#: sl/SL_Menu.py:1993 sl/SL_Menu.py:2073 msgid "Please enter a new name." msgstr "Veuillez saisir un nouveau nom." -#: sl/SL_Menu.py:1911 sl/SL_Menu.py:1991 +#: sl/SL_Menu.py:1995 sl/SL_Menu.py:2075 msgid "New name is the same as the old name." msgstr "Le nouveau nom est le même que l'ancien nom." -#: sl/SL_Menu.py:1913 +#: sl/SL_Menu.py:1997 #, python-brace-format msgid "Project '{old_name}' successfully renamed to '{new_name}'." msgstr "Le projet '{old_name}' a été renommé en '{new_name}' avec succès." -#: sl/SL_Menu.py:1974 +#: sl/SL_Menu.py:2058 #, python-brace-format msgid "No open tasks to rename in '{name}'." msgstr "Aucune tâche ouverte à renommer dans '{name}'." -#: sl/SL_Menu.py:1997 +#: sl/SL_Menu.py:2081 msgid "Error: Could not rename. The new name might already exist." msgstr "Erreur : impossible de renommer. Le nouveau nom existe peut-être déjà." -#: sl/SL_Menu.py:2010 +#: sl/SL_Menu.py:2094 msgid "No open projects to close." msgstr "Aucun projet ouvert à fermer." -#: sl/SL_Menu.py:2023 +#: sl/SL_Menu.py:2107 #, python-brace-format msgid "Project '{name}' has been closed." msgstr "Le projet '{name}' a été clôturé." -#: sl/SL_Menu.py:2027 sl/SL_Menu.py:2057 sl/SL_Menu.py:2088 +#: sl/SL_Menu.py:2111 sl/SL_Menu.py:2141 sl/SL_Menu.py:2172 msgid "Error: Project not found." msgstr "Erreur : projet introuvable." -#: sl/SL_Menu.py:2040 +#: sl/SL_Menu.py:2124 msgid "No closed projects to reopen." msgstr "Aucun projet fermé à rouvrir." -#: sl/SL_Menu.py:2053 +#: sl/SL_Menu.py:2137 #, python-brace-format msgid "Project '{name}' has been reopened." msgstr "Le projet '{name}' a été rouvert." -#: sl/SL_Menu.py:2079 +#: sl/SL_Menu.py:2163 msgid "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." @@ -2112,203 +2132,203 @@ msgstr "" "Cette action ne peut pas être annulée. Toutes les tâches et entrées de temps " "associées seront supprimées." -#: sl/SL_Menu.py:2084 +#: sl/SL_Menu.py:2168 #, python-brace-format msgid "Project '{name}' has been deleted." msgstr "Le projet '{name}' a été supprimé." -#: sl/SL_Menu.py:2104 +#: sl/SL_Menu.py:2188 #, python-brace-format msgid "Inactive Projects (> {weeks} weeks):" msgstr "Projets inactifs (> {weeks} semaines) :" -#: sl/SL_Menu.py:2109 +#: sl/SL_Menu.py:2193 #, python-brace-format msgid "No projects found inactive for more than {weeks} weeks." msgstr "Aucun projet trouvé inactif pendant plus de {weeks} semaines." -#: sl/SL_Menu.py:2118 sl/SL_Menu.py:2141 +#: sl/SL_Menu.py:2202 sl/SL_Menu.py:2225 msgid "Demote Project" msgstr "Rétrograder le projet" -#: sl/SL_Menu.py:2130 +#: sl/SL_Menu.py:2214 msgid "Select Project to Demote" msgstr "Sélectionner le projet à rétrograder" -#: sl/SL_Menu.py:2136 +#: sl/SL_Menu.py:2220 msgid "No other projects available to demote into." msgstr "Aucun autre projet disponible pour rétrograder." -#: sl/SL_Menu.py:2139 +#: sl/SL_Menu.py:2223 #, python-brace-format msgid "This will convert '{src}' into a task of '{dst}'." msgstr "Cela convertira '{src}' en une tâche de '{dst}'." -#: sl/SL_Menu.py:2164 +#: sl/SL_Menu.py:2248 msgid "Projects with only closed or no tasks:" msgstr "Projets avec uniquement des tâches fermées ou aucune tâche :" -#: sl/SL_Menu.py:2168 +#: sl/SL_Menu.py:2252 msgid "No completed projects found." msgstr "Aucun projet terminé trouvé." -#: sl/SL_Menu.py:2177 sl/SL_Menu.py:2311 sl/SL_Menu.py:2607 +#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2395 sl/SL_Menu.py:2691 msgid "Step 1: Select Project" msgstr "Étape 1 : Sélectionner le projet" -#: sl/SL_Menu.py:2181 sl/SL_Menu.py:2499 +#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2583 msgid "No open projects found. Please add one first." msgstr "Aucun projet ouvert trouvé. Veuillez d'abord en ajouter un." -#: sl/SL_Menu.py:2186 sl/SL_Menu.py:2318 sl/SL_Menu.py:2547 +#: sl/SL_Menu.py:2270 sl/SL_Menu.py:2402 sl/SL_Menu.py:2631 msgid "Project" msgstr "Projet" -#: sl/SL_Menu.py:2188 sl/SL_Menu.py:2319 sl/SL_Menu.py:2343 sl/SL_Menu.py:2619 +#: sl/SL_Menu.py:2272 sl/SL_Menu.py:2403 sl/SL_Menu.py:2427 sl/SL_Menu.py:2703 msgid "Next" msgstr "Suivant" -#: sl/SL_Menu.py:2203 sl/SL_Menu.py:2633 +#: sl/SL_Menu.py:2287 sl/SL_Menu.py:2717 msgid "No project selected. Please start again." msgstr "Aucun projet sélectionné. S'il vous plaît, recommencez." -#: sl/SL_Menu.py:2208 +#: sl/SL_Menu.py:2292 msgid "To Project:" msgstr "Au projet :" -#: sl/SL_Menu.py:2229 +#: sl/SL_Menu.py:2313 msgid "Name of the new task" msgstr "Nom de la nouvelle tâche" -#: sl/SL_Menu.py:2235 +#: sl/SL_Menu.py:2319 msgid "Due date" msgstr "Date d'échéance" -#: sl/SL_Menu.py:2241 sl/SL_Menu.py:2413 +#: sl/SL_Menu.py:2325 sl/SL_Menu.py:2497 msgid "Recurring" msgstr "Récurrent" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "daily" msgstr "quotidien" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "monthly" msgstr "mensuel" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "on all business days" msgstr "tous les jours ouvrables" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "userdefined" msgstr "# Rapport de temps journalier : {date}" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "weekly" msgstr "hebdomadaire" -#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2437 +#: sl/SL_Menu.py:2345 sl/SL_Menu.py:2521 msgid "Frequency" msgstr "Fréquence" -#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2440 +#: sl/SL_Menu.py:2349 sl/SL_Menu.py:2524 msgid "Days" msgstr "Aucun temps suivi pour le {date}." -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Edit" msgstr "Modifier" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Preview" msgstr "Aperçu" -#: sl/SL_Menu.py:2274 sl/SL_Menu.py:2447 +#: sl/SL_Menu.py:2358 sl/SL_Menu.py:2531 msgid "No notes provided." msgstr "Aucune note fournie." -#: sl/SL_Menu.py:2279 sl/SL_Menu.py:2452 +#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2536 msgid "A due date is required for recurring tasks." msgstr "Une date d'échéance est requise pour les tâches récurrentes." -#: sl/SL_Menu.py:2287 +#: sl/SL_Menu.py:2371 msgid "Please enter a name." msgstr "Veuillez entrer un nom." -#: sl/SL_Menu.py:2299 +#: sl/SL_Menu.py:2383 #, python-brace-format msgid "Task '{sub_name}' added to '{main_name}'." msgstr "Tâche '{sub_name}' ajoutée à '{main_name}'." -#: sl/SL_Menu.py:2331 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:2415 sl/SL_Menu.py:2722 msgid "Step 2: Select Task from" msgstr "Étape 2 : Sélectionner la tâche de" -#: sl/SL_Menu.py:2334 +#: sl/SL_Menu.py:2418 msgid "No open tasks found." msgstr "Aucune tâche ouverte trouvée." -#: sl/SL_Menu.py:2362 +#: sl/SL_Menu.py:2446 msgid "Task not found." msgstr "Tâche non trouvée." -#: sl/SL_Menu.py:2456 +#: sl/SL_Menu.py:2540 msgid "Save Changes" msgstr "Enregistrer les modifications" -#: sl/SL_Menu.py:2481 +#: sl/SL_Menu.py:2565 msgid "Error: Could not update task." msgstr "Erreur : Impossible de mettre à jour la tâche." -#: sl/SL_Menu.py:2494 +#: sl/SL_Menu.py:2578 msgid "Start Work on Task" msgstr "Démarrer le travail sur la tâche" -#: sl/SL_Menu.py:2509 +#: sl/SL_Menu.py:2593 #, python-brace-format msgid "No open tasks to start work on in '{name}'." msgstr "" "Aucune tâche ouverte sur laquelle commencer à travailler dans '{name}'." -#: sl/SL_Menu.py:2520 +#: sl/SL_Menu.py:2604 msgid "Start Work" msgstr "Démarrer le travail" -#: sl/SL_Menu.py:2548 +#: sl/SL_Menu.py:2632 msgid "Task" msgstr "Tâche" -#: sl/SL_Menu.py:2549 +#: sl/SL_Menu.py:2633 msgid "Started at" msgstr "Démarré à" -#: sl/SL_Menu.py:2550 tt/TimeTracker.py:1446 +#: sl/SL_Menu.py:2634 tt/TimeTracker.py:1454 msgid "Duration" msgstr "Durée" -#: sl/SL_Menu.py:2564 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2648 sl/SL_Menu.py:2780 msgid "Select Date" msgstr "Sélectionner la date" -#: sl/SL_Menu.py:2565 sl/SL_Menu.py:2589 sl/SL_Menu.py:2653 sl/SL_Menu.py:2679 -#: sl/SL_Menu.py:2697 +#: sl/SL_Menu.py:2649 sl/SL_Menu.py:2673 sl/SL_Menu.py:2737 sl/SL_Menu.py:2763 +#: sl/SL_Menu.py:2781 msgid "Generate Report" msgstr "Générer le rapport" -#: sl/SL_Menu.py:2585 +#: sl/SL_Menu.py:2669 msgid "Start Date" msgstr "Date de début" -#: sl/SL_Menu.py:2587 +#: sl/SL_Menu.py:2671 msgid "End Date" msgstr "Date de fin" -#: sl/SL_Menu.py:2712 +#: sl/SL_Menu.py:2796 msgid "Report Result" msgstr "Résultat du rapport" -#: sl/SL_Menu.py:2741 +#: sl/SL_Menu.py:2825 msgid "Export Report" msgstr "Rapport d'exportation" @@ -2393,7 +2413,7 @@ msgstr "Projet principal de destination «{name}» introuvable." msgid "Task '{task_name}' moved successfully." msgstr "La tâche '{task_name}' a été déplacée avec succès." -#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1408 +#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1416 #, python-brace-format msgid "Task '{task_name}' not found in '{main_name}'." msgstr "La tâche '{task_name}' n'a pas été trouvée dans '{main_name}'." @@ -2451,22 +2471,22 @@ msgstr "Aucun sujet" msgid "Unknown Task" msgstr "Tâche inconnue" -#: tt/TimeTracker.py:1365 +#: tt/TimeTracker.py:1373 #, python-brace-format msgid "- {name}: {hours} hours" msgstr "- {name}: {hours} heures" -#: tt/TimeTracker.py:1373 +#: tt/TimeTracker.py:1381 #, python-brace-format msgid "## {name} ({hours} hours)\n" msgstr "## {name} ({hours} heures)\n" -#: tt/TimeTracker.py:1382 +#: tt/TimeTracker.py:1390 #, python-brace-format msgid "# Daily Time Report: {date}\n" msgstr "# Rapport de temps journalier : {date}\n" -#: tt/TimeTracker.py:1383 +#: tt/TimeTracker.py:1391 #, python-brace-format msgid "" "\n" @@ -2475,104 +2495,104 @@ msgstr "" "\n" "**Durée quotidienne totale :{hours}heures**" -#: tt/TimeTracker.py:1387 tt/TimeTracker.py:1700 +#: tt/TimeTracker.py:1395 tt/TimeTracker.py:1708 #, python-brace-format msgid "No time tracked for {date}." msgstr "Aucun temps suivi pour le {date}." -#: tt/TimeTracker.py:1404 tt/TimeTracker.py:1499 +#: tt/TimeTracker.py:1412 tt/TimeTracker.py:1507 #, python-brace-format msgid "Main project '{name}' not found." msgstr "Projet principal «{name}» introuvable." -#: tt/TimeTracker.py:1412 +#: tt/TimeTracker.py:1420 #, python-brace-format msgid "No time entries found for task '{task_name}'." msgstr "Aucune entrée de temps trouvée pour la tâche '{task_name}'." -#: tt/TimeTracker.py:1445 tt/TimeTracker.py:1675 +#: tt/TimeTracker.py:1453 tt/TimeTracker.py:1683 msgid "now" msgstr "maintenant" -#: tt/TimeTracker.py:1450 +#: tt/TimeTracker.py:1458 #, python-brace-format msgid "# Detailed Report for Task: {name}" msgstr "# Rapport détaillé pour la tâche : {name}" -#: tt/TimeTracker.py:1451 +#: tt/TimeTracker.py:1459 #, python-brace-format msgid "Part of Main Project: {name}" msgstr "Fait partie du projet principal : {name}" -#: tt/TimeTracker.py:1454 +#: tt/TimeTracker.py:1462 msgid "Active (currently running)" msgstr "Actif (en cours)" -#: tt/TimeTracker.py:1454 tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1559 msgid "Inactive" msgstr "Inactif" -#: tt/TimeTracker.py:1455 tt/TimeTracker.py:1552 +#: tt/TimeTracker.py:1463 tt/TimeTracker.py:1560 msgid "Status" msgstr "Statut" -#: tt/TimeTracker.py:1457 tt/TimeTracker.py:1554 +#: tt/TimeTracker.py:1465 tt/TimeTracker.py:1562 msgid "First entry" msgstr "Première entrée" -#: tt/TimeTracker.py:1459 tt/TimeTracker.py:1556 +#: tt/TimeTracker.py:1467 tt/TimeTracker.py:1564 msgid "Last activity" msgstr "Dernière activité" -#: tt/TimeTracker.py:1461 tt/TimeTracker.py:1558 +#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1566 msgid "Total recorded time" msgstr "Temps total enregistré" -#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1560 +#: tt/TimeTracker.py:1470 tt/TimeTracker.py:1568 msgid "Total work sessions" msgstr "Nombre total de sessions de travail" -#: tt/TimeTracker.py:1466 tt/TimeTracker.py:1564 +#: tt/TimeTracker.py:1474 tt/TimeTracker.py:1572 msgid "Average session duration" msgstr "Durée moyenne des sessions" -#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1567 +#: tt/TimeTracker.py:1477 tt/TimeTracker.py:1575 msgid "Weekday Distribution" msgstr "Répartition par jour de la semaine" -#: tt/TimeTracker.py:1479 +#: tt/TimeTracker.py:1487 msgid "Daily Breakdown" msgstr "Répartition journalière" -#: tt/TimeTracker.py:1548 +#: tt/TimeTracker.py:1556 #, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "# Rapport détaillé pour le projet principal : {name}" -#: tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1559 #, python-brace-format msgid "Active (working on '{task_name}')" msgstr "Actif (travail sur '{task_name}')" -#: tt/TimeTracker.py:1559 +#: tt/TimeTracker.py:1567 msgid "Number of tasks" msgstr "Nombre de tâches" -#: tt/TimeTracker.py:1578 +#: tt/TimeTracker.py:1586 msgid "Task Breakdown" msgstr "Répartition par tâche" -#: tt/TimeTracker.py:1587 +#: tt/TimeTracker.py:1595 #, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} sessions" -#: tt/TimeTracker.py:1640 +#: tt/TimeTracker.py:1648 #, python-brace-format msgid "# Time Report: {start_date} to {end_date}\n" msgstr "# Rapport de temps : du {start_date} au {end_date}\n" -#: tt/TimeTracker.py:1641 +#: tt/TimeTracker.py:1649 #, python-brace-format msgid "" "\n" @@ -2581,12 +2601,12 @@ msgstr "" "\n" "**Temps total sur la période : {total_time}**" -#: tt/TimeTracker.py:1645 +#: tt/TimeTracker.py:1653 #, python-brace-format msgid "No time tracked between {start_date} and {end_date}." msgstr "Aucun temps suivi entre le {start_date} et le {end_date}." -#: tt/TimeTracker.py:1661 +#: tt/TimeTracker.py:1669 #, python-brace-format msgid "# Detailed Daily Report: {date}" msgstr "# Rapport journalier détaillé : {date}" @@ -2599,11 +2619,6 @@ msgstr "" "Avertissement : Vérification de mise à jour ignorée. 'github_repo' non " "trouvé dans config.json ou fichier invalide." -#: update.py:49 -#, python-brace-format -msgid "A new version ({version}) is available." -msgstr "Une nouvelle version ({version}) est disponible." - #: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "Erreur : URL de téléchargement pour la nouvelle version non trouvée." @@ -2635,51 +2650,55 @@ msgstr "" msgid "Error downloading the update: {error}" msgstr "Erreur lors du téléchargement de la mise à jour : {error}" -#: update.py:108 +#: update.py:98 +msgid "Restarting application to apply the update..." +msgstr "Redémarrage de l'application pour appliquer la mise à jour..." + +#: update.py:122 msgid "Creating backup of current version before update..." msgstr "" "Création d'une sauvegarde de la version actuelle avant la mise à jour..." -#: update.py:118 +#: update.py:132 #, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Sauvegarde créée avec succès sous le nom {filename}." -#: update.py:120 +#: update.py:134 #, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "Avertissement : Impossible de créer la sauvegarde. Erreur : {error}" -#: update.py:122 +#: update.py:136 msgid "Installing update..." msgstr "Installation de la mise à jour..." -#: update.py:142 +#: update.py:156 #, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "Fichier protégé ignoré : {filename}. Il ne sera pas écrasé." -#: update.py:151 +#: update.py:165 msgid "Update installed successfully." msgstr "Mise à jour installée avec succès." -#: update.py:153 +#: update.py:167 #, python-brace-format msgid "Error during update installation: {error}" msgstr "Erreur lors de l'installation de la mise à jour : {error}" -#: update.py:168 +#: update.py:182 #, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "" "Erreur : Aucune sauvegarde de la version précédente '{filename}' trouvée." -#: update.py:171 +#: update.py:185 #, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Restauration de la version précédente depuis '{filename}'..." -#: update.py:192 +#: update.py:206 #, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " @@ -2688,37 +2707,40 @@ msgstr "" "Ignorer le fichier de données utilisateur : {filename}. Il ne sera pas " "écrasé lors de la restauration." -#: update.py:199 +#: update.py:213 msgid "Previous version restored successfully." msgstr "Version précédente restaurée avec succès." -#: update.py:201 +#: update.py:215 msgid "Restarting application to apply changes..." msgstr "Redémarrage de l'application pour appliquer les modifications..." -#: update.py:204 +#: update.py:218 #, python-brace-format msgid "Error during restoration: {error}" msgstr "Erreur lors de la restauration : {error}" -#: update.py:205 +#: update.py:219 #, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "Le fichier de sauvegarde '{filename}' n'a pas été supprimé." -#: update.py:212 +#: update.py:226 msgid "Error: Could not import TimeTracker to get the current version." msgstr "" "Erreur : Impossible d'importer TimeTracker pour obtenir la version actuelle." -#: update.py:215 +#: update.py:229 msgid "Checking for updates..." msgstr "Vérification des mises à jour..." -#: update.py:222 +#: update.py:236 msgid "No updates available." msgstr "Aucune mise à jour disponible." +#~ msgid "Back to Main Menu" +#~ msgstr "Retour au menu principal" + #~ msgid "" #~ "\n" #~ "Error: Failed to install dependencies. Please install them manually " diff --git a/locale/timetracker.pot b/locale/timetracker.pot index ab80b97..b2c7ab3 100644 --- a/locale/timetracker.pot +++ b/locale/timetracker.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-05 09:08+0200\n" +"POT-Creation-Date: 2026-08-05 18:15+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -112,8 +112,8 @@ msgid "" "--- List Main Projects ---" msgstr "" -#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1880 -#: sl/SL_Menu.py:1944 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1964 +#: sl/SL_Menu.py:2028 msgid "closed" msgstr "" @@ -153,7 +153,7 @@ msgstr "" msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "" -#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1917 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:2001 #, python-brace-format msgid "Error: Could not rename. The new name '{new_name}' might already exist." msgstr "" @@ -422,22 +422,22 @@ msgstr "" msgid "Select the main project whose tasks you want to list:" msgstr "" -#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1941 +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:2025 #, python-brace-format msgid "Tasks for '{name}':" msgstr "" -#: TimeTrackerCLI.py:308 sl/SL_Menu.py:745 sl/SL_Menu.py:895 +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:785 sl/SL_Menu.py:977 msgid "Due" msgstr "" -#: TimeTrackerCLI.py:309 sl/SL_Menu.py:596 sl/SL_Menu.py:616 sl/SL_Menu.py:682 -#: sl/SL_Menu.py:768 sl/SL_Menu.py:1077 sl/SL_Menu.py:2238 sl/SL_Menu.py:2409 +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:636 sl/SL_Menu.py:656 sl/SL_Menu.py:722 +#: sl/SL_Menu.py:808 sl/SL_Menu.py:1161 sl/SL_Menu.py:2322 sl/SL_Menu.py:2493 msgid "Today" msgstr "" -#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1950 -#: sl/SL_Menu.py:2642 +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:2034 +#: sl/SL_Menu.py:2726 #, python-brace-format msgid "No tasks found for '{name}'." msgstr "" @@ -474,7 +474,7 @@ msgstr "" msgid "Enter the number of the task: " msgstr "" -#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1993 +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:2077 #, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "" @@ -507,7 +507,7 @@ msgid "Task '{task_name}' in '{main_name}' has been closed." msgstr "" #: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 -#: sl/SL_Menu.py:1579 sl/SL_Menu.py:1624 sl/SL_Menu.py:1670 +#: sl/SL_Menu.py:1663 sl/SL_Menu.py:1708 sl/SL_Menu.py:1754 msgid "Error: Main project or task not found." msgstr "" @@ -627,7 +627,7 @@ msgstr "" msgid " Task: {name}" msgstr "" -#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1752 +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1836 #, python-brace-format msgid "No tasks found inactive for more than {weeks} weeks." msgstr "" @@ -638,7 +638,7 @@ msgid "" "--- List All Closed Tasks ---" msgstr "" -#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1777 sl/SL_Menu.py:1800 +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1861 sl/SL_Menu.py:1884 msgid "No closed tasks found." msgstr "" @@ -689,9 +689,9 @@ msgid "" "--- Edit Task ---" msgstr "" -#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1547 sl/SL_Menu.py:1592 -#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1683 sl/SL_Menu.py:1832 sl/SL_Menu.py:1963 -#: sl/SL_Menu.py:2122 sl/SL_Menu.py:2315 +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:1631 sl/SL_Menu.py:1676 +#: sl/SL_Menu.py:1721 sl/SL_Menu.py:1767 sl/SL_Menu.py:1916 sl/SL_Menu.py:2047 +#: sl/SL_Menu.py:2206 sl/SL_Menu.py:2399 msgid "No open projects found." msgstr "" @@ -737,7 +737,7 @@ msgstr "" msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " msgstr "" -#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2475 +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:2559 msgid "Task updated successfully." msgstr "" @@ -829,7 +829,7 @@ msgstr "" msgid "New Path: " msgstr "" -#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1334 +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1418 #, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "" @@ -842,11 +842,11 @@ msgstr "" msgid "Do you want to move the existing data to the new location? (y/n): " msgstr "" -#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1344 +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1428 msgid "Data moved successfully." msgstr "" -#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1346 +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1430 #, python-brace-format msgid "Error moving data: {error}" msgstr "" @@ -945,7 +945,7 @@ msgstr "" msgid "Enter the end date (YYYY-MM-DD): " msgstr "" -#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2593 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2677 msgid "Error: The start date cannot be after the end date." msgstr "" @@ -955,8 +955,8 @@ msgid "" "--- Detailed Task Report ---" msgstr "" -#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1883 -#: sl/SL_Menu.py:1930 sl/SL_Menu.py:2070 sl/SL_Menu.py:2611 sl/SL_Menu.py:2670 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1967 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2154 sl/SL_Menu.py:2695 sl/SL_Menu.py:2754 msgid "No projects found." msgstr "" @@ -1085,12 +1085,12 @@ msgstr "" msgid "Select a task from '{name}':" msgstr "" -#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2526 +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:2610 #, python-brace-format msgid "Work started on '{task_name}' in project '{main_name}'." msgstr "" -#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2530 +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:2614 msgid "Error starting work." msgstr "" @@ -1124,7 +1124,7 @@ msgstr "" msgid " Duration: {duration}" msgstr "" -#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:559 sl/SL_Menu.py:2552 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:870 sl/SL_Menu.py:2636 msgid "No active work session." msgstr "" @@ -1134,11 +1134,11 @@ msgid "" "--- Stop Work ---" msgstr "" -#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:504 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:594 msgid "Work session stopped successfully." msgstr "" -#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:506 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:596 msgid "No active work session to stop." msgstr "" @@ -1152,1008 +1152,1022 @@ msgstr "" msgid "Exiting application. Goodbye!" msgstr "" -#: sl/SL_Menu.py:399 +#: sl/SL_Menu.py:278 sl/SL_Menu.py:989 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 +msgid "Priority" +msgstr "" + +#: sl/SL_Menu.py:450 +#, python-brace-format +msgid "Version {version}" +msgstr "" + +#: sl/SL_Menu.py:455 update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "" + +#: sl/SL_Menu.py:457 +msgid "Restart and install the update" +msgstr "" + +#: sl/SL_Menu.py:458 +msgid "Downloading and installing update..." +msgstr "" + +#: sl/SL_Menu.py:489 msgid "New" msgstr "" -#: sl/SL_Menu.py:400 +#: sl/SL_Menu.py:490 msgid "New Project" msgstr "" -#: sl/SL_Menu.py:403 +#: sl/SL_Menu.py:493 msgid "New Task" msgstr "" -#: sl/SL_Menu.py:408 +#: sl/SL_Menu.py:498 msgid "Project & Task Management" msgstr "" -#: sl/SL_Menu.py:409 sl/SL_Menu.py:1117 +#: sl/SL_Menu.py:499 sl/SL_Menu.py:1201 msgid "Main Project Management" msgstr "" -#: sl/SL_Menu.py:410 sl/SL_Menu.py:1133 sl/SL_Menu.py:1528 +#: sl/SL_Menu.py:500 sl/SL_Menu.py:1217 sl/SL_Menu.py:1612 msgid "Add Project" msgstr "" -#: sl/SL_Menu.py:413 sl/SL_Menu.py:1136 sl/SL_Menu.py:1876 +#: sl/SL_Menu.py:503 sl/SL_Menu.py:1220 sl/SL_Menu.py:1960 msgid "List Projects" msgstr "" -#: sl/SL_Menu.py:416 sl/SL_Menu.py:1139 sl/SL_Menu.py:1891 +#: sl/SL_Menu.py:506 sl/SL_Menu.py:1223 sl/SL_Menu.py:1975 msgid "Rename Project" msgstr "" -#: sl/SL_Menu.py:419 sl/SL_Menu.py:1142 sl/SL_Menu.py:2006 sl/SL_Menu.py:2019 +#: sl/SL_Menu.py:509 sl/SL_Menu.py:1226 sl/SL_Menu.py:2090 sl/SL_Menu.py:2103 msgid "Close Project" msgstr "" -#: sl/SL_Menu.py:422 sl/SL_Menu.py:1145 sl/SL_Menu.py:2036 sl/SL_Menu.py:2049 +#: sl/SL_Menu.py:512 sl/SL_Menu.py:1229 sl/SL_Menu.py:2120 sl/SL_Menu.py:2133 msgid "Re-open Project" msgstr "" -#: sl/SL_Menu.py:425 sl/SL_Menu.py:1148 sl/SL_Menu.py:2066 sl/SL_Menu.py:2080 +#: sl/SL_Menu.py:515 sl/SL_Menu.py:1232 sl/SL_Menu.py:2150 sl/SL_Menu.py:2164 msgid "Delete Project" msgstr "" -#: sl/SL_Menu.py:428 sl/SL_Menu.py:1151 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:518 sl/SL_Menu.py:1235 sl/SL_Menu.py:2181 msgid "List Inactive Projects" msgstr "" -#: sl/SL_Menu.py:431 sl/SL_Menu.py:1154 +#: sl/SL_Menu.py:521 sl/SL_Menu.py:1238 msgid "Demote Project to Task" msgstr "" -#: sl/SL_Menu.py:434 sl/SL_Menu.py:1157 sl/SL_Menu.py:2159 +#: sl/SL_Menu.py:524 sl/SL_Menu.py:1241 sl/SL_Menu.py:2243 msgid "List Completed Projects" msgstr "" -#: sl/SL_Menu.py:438 sl/SL_Menu.py:1119 sl/SL_Menu.py:1170 +#: sl/SL_Menu.py:528 sl/SL_Menu.py:1203 sl/SL_Menu.py:1254 msgid "Task Management" msgstr "" -#: sl/SL_Menu.py:439 sl/SL_Menu.py:1172 sl/SL_Menu.py:2177 sl/SL_Menu.py:2208 -#: sl/SL_Menu.py:2283 +#: sl/SL_Menu.py:529 sl/SL_Menu.py:1256 sl/SL_Menu.py:2261 sl/SL_Menu.py:2292 +#: sl/SL_Menu.py:2367 msgid "Add Task" msgstr "" -#: sl/SL_Menu.py:442 sl/SL_Menu.py:1175 sl/SL_Menu.py:1926 +#: sl/SL_Menu.py:532 sl/SL_Menu.py:1259 sl/SL_Menu.py:2010 msgid "List Tasks" msgstr "" -#: sl/SL_Menu.py:445 sl/SL_Menu.py:1178 sl/SL_Menu.py:1959 +#: sl/SL_Menu.py:535 sl/SL_Menu.py:1262 sl/SL_Menu.py:2043 msgid "Rename Task" msgstr "" -#: sl/SL_Menu.py:448 sl/SL_Menu.py:1181 sl/SL_Menu.py:1543 sl/SL_Menu.py:1569 -#: sl/SL_Menu.py:1748 +#: sl/SL_Menu.py:538 sl/SL_Menu.py:1265 sl/SL_Menu.py:1627 sl/SL_Menu.py:1653 +#: sl/SL_Menu.py:1832 msgid "Close Task" msgstr "" -#: sl/SL_Menu.py:451 sl/SL_Menu.py:1184 sl/SL_Menu.py:1588 sl/SL_Menu.py:1614 +#: sl/SL_Menu.py:541 sl/SL_Menu.py:1268 sl/SL_Menu.py:1672 sl/SL_Menu.py:1698 msgid "Re-open Task" msgstr "" -#: sl/SL_Menu.py:454 sl/SL_Menu.py:1187 sl/SL_Menu.py:1633 sl/SL_Menu.py:1660 +#: sl/SL_Menu.py:544 sl/SL_Menu.py:1271 sl/SL_Menu.py:1717 sl/SL_Menu.py:1744 msgid "Delete Task" msgstr "" -#: sl/SL_Menu.py:457 sl/SL_Menu.py:1190 sl/SL_Menu.py:1679 sl/SL_Menu.py:1715 +#: sl/SL_Menu.py:547 sl/SL_Menu.py:1274 sl/SL_Menu.py:1763 sl/SL_Menu.py:1799 msgid "Move Task" msgstr "" -#: sl/SL_Menu.py:460 sl/SL_Menu.py:1193 sl/SL_Menu.py:1734 +#: sl/SL_Menu.py:550 sl/SL_Menu.py:1277 sl/SL_Menu.py:1818 msgid "List Inactive Tasks" msgstr "" -#: sl/SL_Menu.py:463 sl/SL_Menu.py:1196 sl/SL_Menu.py:1761 +#: sl/SL_Menu.py:553 sl/SL_Menu.py:1280 sl/SL_Menu.py:1845 msgid "List All Closed Tasks" msgstr "" -#: sl/SL_Menu.py:466 sl/SL_Menu.py:675 sl/SL_Menu.py:761 sl/SL_Menu.py:929 -#: sl/SL_Menu.py:1199 sl/SL_Menu.py:2311 sl/SL_Menu.py:2331 sl/SL_Menu.py:2366 +#: sl/SL_Menu.py:556 sl/SL_Menu.py:715 sl/SL_Menu.py:801 sl/SL_Menu.py:1011 +#: sl/SL_Menu.py:1283 sl/SL_Menu.py:2395 sl/SL_Menu.py:2415 sl/SL_Menu.py:2450 msgid "Edit Task" msgstr "" -#: sl/SL_Menu.py:469 sl/SL_Menu.py:1202 sl/SL_Menu.py:1786 +#: sl/SL_Menu.py:559 sl/SL_Menu.py:1286 sl/SL_Menu.py:1870 msgid "Delete All Closed Tasks" msgstr "" -#: sl/SL_Menu.py:472 sl/SL_Menu.py:1205 sl/SL_Menu.py:1828 +#: sl/SL_Menu.py:562 sl/SL_Menu.py:1289 sl/SL_Menu.py:1912 msgid "Promote Task to Project" msgstr "" -#: sl/SL_Menu.py:477 +#: sl/SL_Menu.py:567 msgid "Today View" msgstr "" -#: sl/SL_Menu.py:482 sl/SL_Menu.py:591 +#: sl/SL_Menu.py:572 sl/SL_Menu.py:631 msgid "Task Planning" msgstr "" -#: sl/SL_Menu.py:487 sl/SL_Menu.py:962 +#: sl/SL_Menu.py:577 sl/SL_Menu.py:1046 msgid "E-Mail Task Assignment" msgstr "" -#: sl/SL_Menu.py:492 sl/SL_Menu.py:671 sl/SL_Menu.py:757 sl/SL_Menu.py:925 +#: sl/SL_Menu.py:582 sl/SL_Menu.py:711 sl/SL_Menu.py:797 sl/SL_Menu.py:1007 msgid "Start work on task" msgstr "" -#: sl/SL_Menu.py:497 +#: sl/SL_Menu.py:587 msgid "Show current work" msgstr "" -#: sl/SL_Menu.py:502 +#: sl/SL_Menu.py:592 msgid "Stop current work" msgstr "" -#: sl/SL_Menu.py:510 sl/SL_Menu.py:1218 +#: sl/SL_Menu.py:600 sl/SL_Menu.py:1302 msgid "Reporting" msgstr "" -#: sl/SL_Menu.py:511 sl/SL_Menu.py:1221 +#: sl/SL_Menu.py:601 sl/SL_Menu.py:1305 msgid "Daily Report (Today)" msgstr "" -#: sl/SL_Menu.py:516 sl/SL_Menu.py:1227 sl/SL_Menu.py:2561 +#: sl/SL_Menu.py:606 sl/SL_Menu.py:1311 sl/SL_Menu.py:2645 msgid "Daily Report (Specific Day)" msgstr "" -#: sl/SL_Menu.py:519 sl/SL_Menu.py:1230 sl/SL_Menu.py:2580 +#: sl/SL_Menu.py:609 sl/SL_Menu.py:1314 sl/SL_Menu.py:2664 msgid "Date Range Report" msgstr "" -#: sl/SL_Menu.py:522 sl/SL_Menu.py:1233 sl/SL_Menu.py:2607 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:612 sl/SL_Menu.py:1317 sl/SL_Menu.py:2691 sl/SL_Menu.py:2722 msgid "Detailed Task Report" msgstr "" -#: sl/SL_Menu.py:525 sl/SL_Menu.py:1236 sl/SL_Menu.py:2666 +#: sl/SL_Menu.py:615 sl/SL_Menu.py:1320 sl/SL_Menu.py:2750 msgid "Detailed Project Report" msgstr "" -#: sl/SL_Menu.py:528 sl/SL_Menu.py:1239 sl/SL_Menu.py:2693 +#: sl/SL_Menu.py:618 sl/SL_Menu.py:1323 sl/SL_Menu.py:2777 msgid "Detailed Daily Report" msgstr "" -#: sl/SL_Menu.py:533 sl/SL_Menu.py:1256 +#: sl/SL_Menu.py:623 sl/SL_Menu.py:1340 msgid "Settings" msgstr "" -#: sl/SL_Menu.py:557 sl/SL_Menu.py:2539 -msgid "Current Active Work" -msgstr "" - -#: sl/SL_Menu.py:562 sl/SL_Menu.py:695 sl/SL_Menu.py:781 sl/SL_Menu.py:936 -#: sl/SL_Menu.py:2411 -msgid "Done" -msgstr "" - -#: sl/SL_Menu.py:576 -msgid "Edit current task" -msgstr "" - -#: sl/SL_Menu.py:584 -msgid "Exit" -msgstr "" - -#: sl/SL_Menu.py:597 sl/SL_Menu.py:617 +#: sl/SL_Menu.py:637 sl/SL_Menu.py:657 msgid "Tomorrow" msgstr "" -#: sl/SL_Menu.py:598 sl/SL_Menu.py:618 +#: sl/SL_Menu.py:638 sl/SL_Menu.py:658 msgid "Weekly overview" msgstr "" -#: sl/SL_Menu.py:599 sl/SL_Menu.py:619 +#: sl/SL_Menu.py:639 sl/SL_Menu.py:659 msgid "Overdue tasks" msgstr "" -#: sl/SL_Menu.py:600 sl/SL_Menu.py:620 +#: sl/SL_Menu.py:640 sl/SL_Menu.py:660 msgid "Unplanned tasks" msgstr "" -#: sl/SL_Menu.py:601 +#: sl/SL_Menu.py:641 msgid "All" msgstr "" -#: sl/SL_Menu.py:608 +#: sl/SL_Menu.py:648 msgid "Filter" msgstr "" -#: sl/SL_Menu.py:627 +#: sl/SL_Menu.py:667 msgid "Tasks" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Friday" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Monday" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Saturday" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Sunday" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Thursday" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Tuesday" msgstr "" -#: sl/SL_Menu.py:634 tt/TimeTracker.py:1471 tt/TimeTracker.py:1569 +#: sl/SL_Menu.py:674 tt/TimeTracker.py:1479 tt/TimeTracker.py:1577 msgid "Wednesday" msgstr "" -#: sl/SL_Menu.py:796 +#: sl/SL_Menu.py:735 sl/SL_Menu.py:821 sl/SL_Menu.py:873 sl/SL_Menu.py:1018 +#: sl/SL_Menu.py:2495 +msgid "Done" +msgstr "" + +#: sl/SL_Menu.py:836 msgid "No tasks found." msgstr "" -#: sl/SL_Menu.py:798 sl/SL_Menu.py:955 sl/SL_Menu.py:1106 sl/SL_Menu.py:1163 -#: sl/SL_Menu.py:1211 sl/SL_Menu.py:1515 sl/SL_Menu.py:1548 sl/SL_Menu.py:1559 -#: sl/SL_Menu.py:1593 sl/SL_Menu.py:1604 sl/SL_Menu.py:1638 sl/SL_Menu.py:1649 -#: sl/SL_Menu.py:1684 sl/SL_Menu.py:1695 sl/SL_Menu.py:1703 sl/SL_Menu.py:1754 -#: sl/SL_Menu.py:1779 sl/SL_Menu.py:1801 sl/SL_Menu.py:1833 sl/SL_Menu.py:1844 -#: sl/SL_Menu.py:1884 sl/SL_Menu.py:1896 sl/SL_Menu.py:1931 sl/SL_Menu.py:1952 -#: sl/SL_Menu.py:1964 sl/SL_Menu.py:1975 sl/SL_Menu.py:2011 sl/SL_Menu.py:2041 -#: sl/SL_Menu.py:2071 sl/SL_Menu.py:2111 sl/SL_Menu.py:2123 sl/SL_Menu.py:2170 -#: sl/SL_Menu.py:2182 sl/SL_Menu.py:2316 sl/SL_Menu.py:2335 sl/SL_Menu.py:2348 -#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2500 sl/SL_Menu.py:2510 sl/SL_Menu.py:2554 -#: sl/SL_Menu.py:2573 sl/SL_Menu.py:2600 sl/SL_Menu.py:2612 sl/SL_Menu.py:2624 -#: sl/SL_Menu.py:2643 sl/SL_Menu.py:2659 sl/SL_Menu.py:2671 sl/SL_Menu.py:2686 -#: sl/SL_Menu.py:2705 sl/SL_Menu.py:2746 sl/SL_Menu.py:2761 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:1190 sl/SL_Menu.py:1208 sl/SL_Menu.py:1247 +#: sl/SL_Menu.py:1295 sl/SL_Menu.py:1329 sl/SL_Menu.py:1599 sl/SL_Menu.py:1632 +#: sl/SL_Menu.py:1643 sl/SL_Menu.py:1677 sl/SL_Menu.py:1688 sl/SL_Menu.py:1722 +#: sl/SL_Menu.py:1733 sl/SL_Menu.py:1768 sl/SL_Menu.py:1779 sl/SL_Menu.py:1787 +#: sl/SL_Menu.py:1838 sl/SL_Menu.py:1863 sl/SL_Menu.py:1885 sl/SL_Menu.py:1917 +#: sl/SL_Menu.py:1928 sl/SL_Menu.py:1968 sl/SL_Menu.py:1980 sl/SL_Menu.py:2015 +#: sl/SL_Menu.py:2036 sl/SL_Menu.py:2048 sl/SL_Menu.py:2059 sl/SL_Menu.py:2095 +#: sl/SL_Menu.py:2125 sl/SL_Menu.py:2155 sl/SL_Menu.py:2195 sl/SL_Menu.py:2207 +#: sl/SL_Menu.py:2254 sl/SL_Menu.py:2266 sl/SL_Menu.py:2400 sl/SL_Menu.py:2419 +#: sl/SL_Menu.py:2432 sl/SL_Menu.py:2447 sl/SL_Menu.py:2584 sl/SL_Menu.py:2594 +#: sl/SL_Menu.py:2638 sl/SL_Menu.py:2657 sl/SL_Menu.py:2684 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2708 sl/SL_Menu.py:2727 sl/SL_Menu.py:2743 sl/SL_Menu.py:2755 +#: sl/SL_Menu.py:2770 sl/SL_Menu.py:2789 sl/SL_Menu.py:2830 sl/SL_Menu.py:2845 msgid "Back" msgstr "" -#: sl/SL_Menu.py:805 +#: sl/SL_Menu.py:849 msgid "Today's Tasks" msgstr "" -#: sl/SL_Menu.py:826 -msgid "Show only open tasks" +#: sl/SL_Menu.py:868 sl/SL_Menu.py:2623 +msgid "Current Active Work" msgstr "" -#: sl/SL_Menu.py:838 -msgid "Sort by priority" +#: sl/SL_Menu.py:887 +msgid "Edit current task" msgstr "" -#: sl/SL_Menu.py:907 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 -msgid "Priority" +#: sl/SL_Menu.py:908 +msgid "Show only open tasks" +msgstr "" + +#: sl/SL_Menu.py:920 +msgid "Sort by priority" msgstr "" -#: sl/SL_Menu.py:910 sl/SL_Menu.py:2243 sl/SL_Menu.py:2415 +#: sl/SL_Menu.py:992 sl/SL_Menu.py:2327 sl/SL_Menu.py:2499 msgid "0 (lowest) to 9 (highest)" msgstr "" -#: sl/SL_Menu.py:951 +#: sl/SL_Menu.py:1033 msgid "No open tasks for today." msgstr "" -#: sl/SL_Menu.py:953 +#: sl/SL_Menu.py:1035 msgid "No tasks for today." msgstr "" -#: sl/SL_Menu.py:968 +#: sl/SL_Menu.py:1039 +msgid "Exit" +msgstr "" + +#: sl/SL_Menu.py:1052 msgid "Fetching emails..." msgstr "" -#: sl/SL_Menu.py:971 +#: sl/SL_Menu.py:1055 #, python-brace-format msgid "Error fetching emails: {error}" msgstr "" -#: sl/SL_Menu.py:974 +#: sl/SL_Menu.py:1058 #, python-brace-format msgid "{count} new tasks created from emails." msgstr "" -#: sl/SL_Menu.py:976 +#: sl/SL_Menu.py:1060 msgid "No new emails found." msgstr "" -#: sl/SL_Menu.py:1001 +#: sl/SL_Menu.py:1085 #, python-brace-format msgid "{remaining} of {total} emails still to process" msgstr "" -#: sl/SL_Menu.py:1005 +#: sl/SL_Menu.py:1089 msgid "No unassigned email tasks available." msgstr "" -#: sl/SL_Menu.py:1017 +#: sl/SL_Menu.py:1101 msgid "Assign Project" msgstr "" -#: sl/SL_Menu.py:1028 +#: sl/SL_Menu.py:1112 msgid "Are you sure you want to delete this task?" msgstr "" -#: sl/SL_Menu.py:1031 +#: sl/SL_Menu.py:1115 msgid "Yes, delete" msgstr "" -#: sl/SL_Menu.py:1036 +#: sl/SL_Menu.py:1120 msgid "No, cancel" msgstr "" -#: sl/SL_Menu.py:1043 +#: sl/SL_Menu.py:1127 msgid "Delete" msgstr "" -#: sl/SL_Menu.py:1047 +#: sl/SL_Menu.py:1131 msgid "Edit Details" msgstr "" -#: sl/SL_Menu.py:1055 sl/SL_Menu.py:2395 +#: sl/SL_Menu.py:1139 sl/SL_Menu.py:2479 msgid "Task Name" msgstr "" -#: sl/SL_Menu.py:1064 sl/SL_Menu.py:2399 +#: sl/SL_Menu.py:1148 sl/SL_Menu.py:2483 msgid "Due Date" msgstr "" -#: sl/SL_Menu.py:1072 sl/SL_Menu.py:2403 +#: sl/SL_Menu.py:1156 sl/SL_Menu.py:2487 msgid "Clear" msgstr "" -#: sl/SL_Menu.py:1079 sl/SL_Menu.py:2271 sl/SL_Menu.py:2444 +#: sl/SL_Menu.py:1163 sl/SL_Menu.py:2355 sl/SL_Menu.py:2528 msgid "Notes (Markdown)" msgstr "" -#: sl/SL_Menu.py:1098 +#: sl/SL_Menu.py:1182 msgid "Task details updated successfully." msgstr "" -#: sl/SL_Menu.py:1104 +#: sl/SL_Menu.py:1188 msgid "Error updating task details." msgstr "" -#: sl/SL_Menu.py:1115 sl/SL_Menu.py:1131 +#: sl/SL_Menu.py:1199 sl/SL_Menu.py:1215 msgid "Project Management" msgstr "" -#: sl/SL_Menu.py:1124 sl/SL_Menu.py:1245 -msgid "Back to Main Menu" -msgstr "" - -#: sl/SL_Menu.py:1259 +#: sl/SL_Menu.py:1343 msgid "Change Language" msgstr "" -#: sl/SL_Menu.py:1277 +#: sl/SL_Menu.py:1361 msgid "Select Language" msgstr "" -#: sl/SL_Menu.py:1278 sl/SL_Menu.py:1318 sl/SL_Menu.py:1359 sl/SL_Menu.py:1372 -#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1426 sl/SL_Menu.py:1449 sl/SL_Menu.py:1504 +#: sl/SL_Menu.py:1362 sl/SL_Menu.py:1402 sl/SL_Menu.py:1443 sl/SL_Menu.py:1456 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1510 sl/SL_Menu.py:1533 sl/SL_Menu.py:1588 msgid "Save" msgstr "" -#: sl/SL_Menu.py:1284 +#: sl/SL_Menu.py:1368 msgid "" "Language changed. Please restart the application for the changes to take " "effect." msgstr "" -#: sl/SL_Menu.py:1287 +#: sl/SL_Menu.py:1371 msgid "Restore Previous Version" msgstr "" -#: sl/SL_Menu.py:1290 +#: sl/SL_Menu.py:1374 msgid "The 'update' module is not available. This feature is disabled." msgstr "" -#: sl/SL_Menu.py:1292 +#: sl/SL_Menu.py:1376 #, python-brace-format msgid "No previous version backup '{filename}' found." msgstr "" -#: sl/SL_Menu.py:1294 +#: sl/SL_Menu.py:1378 msgid "" "This will restore the application to the previously backed-up version. The " "application will then restart. You may need to manually refresh your browser " "if it does not reconnect automatically." msgstr "" -#: sl/SL_Menu.py:1295 +#: sl/SL_Menu.py:1379 msgid "Restore and Restart" msgstr "" -#: sl/SL_Menu.py:1296 +#: sl/SL_Menu.py:1380 msgid "Restoring and restarting..." msgstr "" -#: sl/SL_Menu.py:1299 +#: sl/SL_Menu.py:1383 msgid "Restore complete. Please restart the application." msgstr "" -#: sl/SL_Menu.py:1301 +#: sl/SL_Menu.py:1385 msgid "Change Data Storage Location" msgstr "" -#: sl/SL_Menu.py:1303 +#: sl/SL_Menu.py:1387 msgid "Current data file" msgstr "" -#: sl/SL_Menu.py:1306 +#: sl/SL_Menu.py:1390 msgid "New Path for data file" msgstr "" -#: sl/SL_Menu.py:1312 +#: sl/SL_Menu.py:1396 msgid "Move existing data to the new location" msgstr "" -#: sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:1399 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." msgstr "" -#: sl/SL_Menu.py:1322 +#: sl/SL_Menu.py:1406 msgid "Please enter a new path." msgstr "" -#: sl/SL_Menu.py:1330 +#: sl/SL_Menu.py:1414 msgid "" "Error: For security, the data file must be located within the application " "directory." msgstr "" -#: sl/SL_Menu.py:1339 +#: sl/SL_Menu.py:1423 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." msgstr "" -#: sl/SL_Menu.py:1353 +#: sl/SL_Menu.py:1437 msgid "Report Format" msgstr "" -#: sl/SL_Menu.py:1358 +#: sl/SL_Menu.py:1442 msgid "Select Format" msgstr "" -#: sl/SL_Menu.py:1363 +#: sl/SL_Menu.py:1447 msgid "Report format updated." msgstr "" -#: sl/SL_Menu.py:1366 +#: sl/SL_Menu.py:1450 msgid "Streamlit Port Settings" msgstr "" -#: sl/SL_Menu.py:1368 +#: sl/SL_Menu.py:1452 msgid "Current Streamlit Port" msgstr "" -#: sl/SL_Menu.py:1371 +#: sl/SL_Menu.py:1455 msgid "New Port" msgstr "" -#: sl/SL_Menu.py:1376 +#: sl/SL_Menu.py:1460 #, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "" -#: sl/SL_Menu.py:1379 +#: sl/SL_Menu.py:1463 msgid "Email Settings" msgstr "" -#: sl/SL_Menu.py:1385 +#: sl/SL_Menu.py:1469 msgid "Enable email import" msgstr "" -#: sl/SL_Menu.py:1386 +#: sl/SL_Menu.py:1470 msgid "IMAP Server" msgstr "" -#: sl/SL_Menu.py:1387 +#: sl/SL_Menu.py:1471 msgid "Port" msgstr "" -#: sl/SL_Menu.py:1388 +#: sl/SL_Menu.py:1472 msgid "Username" msgstr "" -#: sl/SL_Menu.py:1389 +#: sl/SL_Menu.py:1473 msgid "Password" msgstr "" -#: sl/SL_Menu.py:1390 +#: sl/SL_Menu.py:1474 msgid "Use SSL" msgstr "" -#: sl/SL_Menu.py:1403 +#: sl/SL_Menu.py:1487 msgid "Email settings saved." msgstr "" -#: sl/SL_Menu.py:1406 +#: sl/SL_Menu.py:1490 msgid "Change CSS Style" msgstr "" -#: sl/SL_Menu.py:1408 +#: sl/SL_Menu.py:1492 msgid "Current CSS file" msgstr "" -#: sl/SL_Menu.py:1425 +#: sl/SL_Menu.py:1509 msgid "Select CSS File" msgstr "" -#: sl/SL_Menu.py:1431 +#: sl/SL_Menu.py:1515 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." msgstr "" -#: sl/SL_Menu.py:1434 +#: sl/SL_Menu.py:1518 msgid "Change View Mode" msgstr "" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "App Window (Webview)" msgstr "" -#: sl/SL_Menu.py:1438 +#: sl/SL_Menu.py:1522 msgid "System Browser" msgstr "" -#: sl/SL_Menu.py:1448 +#: sl/SL_Menu.py:1532 msgid "Select View Mode" msgstr "" -#: sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1539 msgid "" "View mode updated. Please restart the application for the changes to take " "effect." msgstr "" -#: sl/SL_Menu.py:1458 +#: sl/SL_Menu.py:1542 msgid "MCP Server Settings" msgstr "" -#: sl/SL_Menu.py:1460 +#: sl/SL_Menu.py:1544 msgid "HTTP (Streamable HTTP)" msgstr "" -#: sl/SL_Menu.py:1461 +#: sl/SL_Menu.py:1545 msgid "stdio (recommended for Claude Desktop)" msgstr "" -#: sl/SL_Menu.py:1475 +#: sl/SL_Menu.py:1559 msgid "Transport" msgstr "" -#: sl/SL_Menu.py:1486 +#: sl/SL_Menu.py:1570 msgid "Enable MCP server" msgstr "" -#: sl/SL_Menu.py:1489 +#: sl/SL_Menu.py:1573 msgid "" "Not used with stdio - the MCP client starts and stops the server itself." msgstr "" -#: sl/SL_Menu.py:1492 +#: sl/SL_Menu.py:1576 msgid "Port (HTTP only)" msgstr "" -#: sl/SL_Menu.py:1499 +#: sl/SL_Menu.py:1583 msgid "" "With stdio, the app does not start the MCP server itself - the MCP client " "(e.g. Claude Desktop) launches it directly, and the port is ignored." msgstr "" -#: sl/SL_Menu.py:1510 +#: sl/SL_Menu.py:1594 msgid "" "MCP server settings saved. Please restart the application for the changes to " "take effect." msgstr "" -#: sl/SL_Menu.py:1524 +#: sl/SL_Menu.py:1608 msgid "Add New Project" msgstr "" -#: sl/SL_Menu.py:1527 +#: sl/SL_Menu.py:1611 msgid "Name of the project" msgstr "" -#: sl/SL_Menu.py:1531 +#: sl/SL_Menu.py:1615 #, python-brace-format msgid "Project '{name}' added." msgstr "" -#: sl/SL_Menu.py:1535 sl/SL_Menu.py:1581 sl/SL_Menu.py:1626 sl/SL_Menu.py:1672 -#: sl/SL_Menu.py:1727 sl/SL_Menu.py:1821 sl/SL_Menu.py:1869 sl/SL_Menu.py:1919 -#: sl/SL_Menu.py:1999 sl/SL_Menu.py:2029 sl/SL_Menu.py:2059 sl/SL_Menu.py:2090 -#: sl/SL_Menu.py:2152 sl/SL_Menu.py:2192 sl/SL_Menu.py:2304 sl/SL_Menu.py:2323 -#: sl/SL_Menu.py:2484 sl/SL_Menu.py:2532 +#: sl/SL_Menu.py:1619 sl/SL_Menu.py:1665 sl/SL_Menu.py:1710 sl/SL_Menu.py:1756 +#: sl/SL_Menu.py:1811 sl/SL_Menu.py:1905 sl/SL_Menu.py:1953 sl/SL_Menu.py:2003 +#: sl/SL_Menu.py:2083 sl/SL_Menu.py:2113 sl/SL_Menu.py:2143 sl/SL_Menu.py:2174 +#: sl/SL_Menu.py:2236 sl/SL_Menu.py:2276 sl/SL_Menu.py:2388 sl/SL_Menu.py:2407 +#: sl/SL_Menu.py:2568 sl/SL_Menu.py:2616 msgid "Cancel" msgstr "" -#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1598 sl/SL_Menu.py:1643 sl/SL_Menu.py:1838 -#: sl/SL_Menu.py:1901 sl/SL_Menu.py:1936 sl/SL_Menu.py:1969 sl/SL_Menu.py:2018 -#: sl/SL_Menu.py:2048 sl/SL_Menu.py:2078 sl/SL_Menu.py:2505 sl/SL_Menu.py:2617 -#: sl/SL_Menu.py:2678 +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1682 sl/SL_Menu.py:1727 sl/SL_Menu.py:1922 +#: sl/SL_Menu.py:1985 sl/SL_Menu.py:2020 sl/SL_Menu.py:2053 sl/SL_Menu.py:2102 +#: sl/SL_Menu.py:2132 sl/SL_Menu.py:2162 sl/SL_Menu.py:2589 sl/SL_Menu.py:2701 +#: sl/SL_Menu.py:2762 msgid "Select Project" msgstr "" -#: sl/SL_Menu.py:1558 +#: sl/SL_Menu.py:1642 #, python-brace-format msgid "No open tasks to close in '{name}'." msgstr "" -#: sl/SL_Menu.py:1565 sl/SL_Menu.py:1610 sl/SL_Menu.py:1655 sl/SL_Menu.py:1709 -#: sl/SL_Menu.py:1850 sl/SL_Menu.py:1979 sl/SL_Menu.py:2338 sl/SL_Menu.py:2516 -#: sl/SL_Menu.py:2648 +#: sl/SL_Menu.py:1649 sl/SL_Menu.py:1694 sl/SL_Menu.py:1739 sl/SL_Menu.py:1793 +#: sl/SL_Menu.py:1934 sl/SL_Menu.py:2063 sl/SL_Menu.py:2422 sl/SL_Menu.py:2600 +#: sl/SL_Menu.py:2732 msgid "Select Task" msgstr "" -#: sl/SL_Menu.py:1575 +#: sl/SL_Menu.py:1659 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been closed." msgstr "" -#: sl/SL_Menu.py:1603 +#: sl/SL_Menu.py:1687 #, python-brace-format msgid "No closed tasks to reopen in '{name}'." msgstr "" -#: sl/SL_Menu.py:1620 +#: sl/SL_Menu.py:1704 #, python-brace-format msgid "Task '{sub_name}' in '{main_name}' has been reopened." msgstr "" -#: sl/SL_Menu.py:1648 +#: sl/SL_Menu.py:1732 #, python-brace-format msgid "No open tasks to delete in '{name}'." msgstr "" -#: sl/SL_Menu.py:1659 +#: sl/SL_Menu.py:1743 msgid "This action cannot be undone." msgstr "" -#: sl/SL_Menu.py:1666 +#: sl/SL_Menu.py:1750 #, python-brace-format msgid "Task '{sub_name}' deleted from '{main_name}'." msgstr "" -#: sl/SL_Menu.py:1689 +#: sl/SL_Menu.py:1773 msgid "Select Source Project" msgstr "" -#: sl/SL_Menu.py:1694 +#: sl/SL_Menu.py:1778 #, python-brace-format msgid "No tasks found in '{name}'." msgstr "" -#: sl/SL_Menu.py:1702 +#: sl/SL_Menu.py:1786 msgid "No other projects available to move to." msgstr "" -#: sl/SL_Menu.py:1713 sl/SL_Menu.py:2138 +#: sl/SL_Menu.py:1797 sl/SL_Menu.py:2222 msgid "Select Target Project" msgstr "" -#: sl/SL_Menu.py:1721 +#: sl/SL_Menu.py:1805 #, python-brace-format msgid "Task '{sub}' moved from '{src}' to '{dst}'." msgstr "" -#: sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1809 msgid "Error: Could not move task." msgstr "" -#: sl/SL_Menu.py:1736 sl/SL_Menu.py:2099 +#: sl/SL_Menu.py:1820 sl/SL_Menu.py:2183 msgid "Weeks of inactivity" msgstr "" -#: sl/SL_Menu.py:1741 +#: sl/SL_Menu.py:1825 #, python-brace-format msgid "Inactive Tasks (> {weeks} weeks):" msgstr "" -#: sl/SL_Menu.py:1746 sl/SL_Menu.py:2107 +#: sl/SL_Menu.py:1830 sl/SL_Menu.py:2191 msgid "Last Activity" msgstr "" -#: sl/SL_Menu.py:1805 +#: sl/SL_Menu.py:1889 #, python-brace-format msgid "" "Are you sure you want to delete {count} closed tasks? This action cannot be " "undone." msgstr "" -#: sl/SL_Menu.py:1807 +#: sl/SL_Menu.py:1891 msgid "Show projects to delete" msgstr "" -#: sl/SL_Menu.py:1811 +#: sl/SL_Menu.py:1895 msgid "Delete All" msgstr "" -#: sl/SL_Menu.py:1817 +#: sl/SL_Menu.py:1901 #, python-brace-format msgid "Successfully deleted {count} tasks." msgstr "" -#: sl/SL_Menu.py:1843 +#: sl/SL_Menu.py:1927 #, python-brace-format msgid "No open tasks to promote in '{name}'." msgstr "" -#: sl/SL_Menu.py:1854 +#: sl/SL_Menu.py:1938 msgid "" "This will create a new Project with the task's name and move all time " "entries to a 'General' task within it." msgstr "" -#: sl/SL_Menu.py:1856 +#: sl/SL_Menu.py:1940 msgid "Promote to Project" msgstr "" -#: sl/SL_Menu.py:1895 +#: sl/SL_Menu.py:1979 msgid "No open projects to rename." msgstr "" -#: sl/SL_Menu.py:1904 sl/SL_Menu.py:1984 +#: sl/SL_Menu.py:1988 sl/SL_Menu.py:2068 msgid "New Name" msgstr "" -#: sl/SL_Menu.py:1905 sl/SL_Menu.py:1985 +#: sl/SL_Menu.py:1989 sl/SL_Menu.py:2069 msgid "Rename" msgstr "" -#: sl/SL_Menu.py:1909 sl/SL_Menu.py:1989 +#: sl/SL_Menu.py:1993 sl/SL_Menu.py:2073 msgid "Please enter a new name." msgstr "" -#: sl/SL_Menu.py:1911 sl/SL_Menu.py:1991 +#: sl/SL_Menu.py:1995 sl/SL_Menu.py:2075 msgid "New name is the same as the old name." msgstr "" -#: sl/SL_Menu.py:1913 +#: sl/SL_Menu.py:1997 #, python-brace-format msgid "Project '{old_name}' successfully renamed to '{new_name}'." msgstr "" -#: sl/SL_Menu.py:1974 +#: sl/SL_Menu.py:2058 #, python-brace-format msgid "No open tasks to rename in '{name}'." msgstr "" -#: sl/SL_Menu.py:1997 +#: sl/SL_Menu.py:2081 msgid "Error: Could not rename. The new name might already exist." msgstr "" -#: sl/SL_Menu.py:2010 +#: sl/SL_Menu.py:2094 msgid "No open projects to close." msgstr "" -#: sl/SL_Menu.py:2023 +#: sl/SL_Menu.py:2107 #, python-brace-format msgid "Project '{name}' has been closed." msgstr "" -#: sl/SL_Menu.py:2027 sl/SL_Menu.py:2057 sl/SL_Menu.py:2088 +#: sl/SL_Menu.py:2111 sl/SL_Menu.py:2141 sl/SL_Menu.py:2172 msgid "Error: Project not found." msgstr "" -#: sl/SL_Menu.py:2040 +#: sl/SL_Menu.py:2124 msgid "No closed projects to reopen." msgstr "" -#: sl/SL_Menu.py:2053 +#: sl/SL_Menu.py:2137 #, python-brace-format msgid "Project '{name}' has been reopened." msgstr "" -#: sl/SL_Menu.py:2079 +#: sl/SL_Menu.py:2163 msgid "" "This action cannot be undone. All associated tasks and time entries will be " "deleted." msgstr "" -#: sl/SL_Menu.py:2084 +#: sl/SL_Menu.py:2168 #, python-brace-format msgid "Project '{name}' has been deleted." msgstr "" -#: sl/SL_Menu.py:2104 +#: sl/SL_Menu.py:2188 #, python-brace-format msgid "Inactive Projects (> {weeks} weeks):" msgstr "" -#: sl/SL_Menu.py:2109 +#: sl/SL_Menu.py:2193 #, python-brace-format msgid "No projects found inactive for more than {weeks} weeks." msgstr "" -#: sl/SL_Menu.py:2118 sl/SL_Menu.py:2141 +#: sl/SL_Menu.py:2202 sl/SL_Menu.py:2225 msgid "Demote Project" msgstr "" -#: sl/SL_Menu.py:2130 +#: sl/SL_Menu.py:2214 msgid "Select Project to Demote" msgstr "" -#: sl/SL_Menu.py:2136 +#: sl/SL_Menu.py:2220 msgid "No other projects available to demote into." msgstr "" -#: sl/SL_Menu.py:2139 +#: sl/SL_Menu.py:2223 #, python-brace-format msgid "This will convert '{src}' into a task of '{dst}'." msgstr "" -#: sl/SL_Menu.py:2164 +#: sl/SL_Menu.py:2248 msgid "Projects with only closed or no tasks:" msgstr "" -#: sl/SL_Menu.py:2168 +#: sl/SL_Menu.py:2252 msgid "No completed projects found." msgstr "" -#: sl/SL_Menu.py:2177 sl/SL_Menu.py:2311 sl/SL_Menu.py:2607 +#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2395 sl/SL_Menu.py:2691 msgid "Step 1: Select Project" msgstr "" -#: sl/SL_Menu.py:2181 sl/SL_Menu.py:2499 +#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2583 msgid "No open projects found. Please add one first." msgstr "" -#: sl/SL_Menu.py:2186 sl/SL_Menu.py:2318 sl/SL_Menu.py:2547 +#: sl/SL_Menu.py:2270 sl/SL_Menu.py:2402 sl/SL_Menu.py:2631 msgid "Project" msgstr "" -#: sl/SL_Menu.py:2188 sl/SL_Menu.py:2319 sl/SL_Menu.py:2343 sl/SL_Menu.py:2619 +#: sl/SL_Menu.py:2272 sl/SL_Menu.py:2403 sl/SL_Menu.py:2427 sl/SL_Menu.py:2703 msgid "Next" msgstr "" -#: sl/SL_Menu.py:2203 sl/SL_Menu.py:2633 +#: sl/SL_Menu.py:2287 sl/SL_Menu.py:2717 msgid "No project selected. Please start again." msgstr "" -#: sl/SL_Menu.py:2208 +#: sl/SL_Menu.py:2292 msgid "To Project:" msgstr "" -#: sl/SL_Menu.py:2229 +#: sl/SL_Menu.py:2313 msgid "Name of the new task" msgstr "" -#: sl/SL_Menu.py:2235 +#: sl/SL_Menu.py:2319 msgid "Due date" msgstr "" -#: sl/SL_Menu.py:2241 sl/SL_Menu.py:2413 +#: sl/SL_Menu.py:2325 sl/SL_Menu.py:2497 msgid "Recurring" msgstr "" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "daily" msgstr "" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "monthly" msgstr "" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "on all business days" msgstr "" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "userdefined" msgstr "" -#: sl/SL_Menu.py:2257 sl/SL_Menu.py:2428 +#: sl/SL_Menu.py:2341 sl/SL_Menu.py:2512 msgid "weekly" msgstr "" -#: sl/SL_Menu.py:2261 sl/SL_Menu.py:2437 +#: sl/SL_Menu.py:2345 sl/SL_Menu.py:2521 msgid "Frequency" msgstr "" -#: sl/SL_Menu.py:2265 sl/SL_Menu.py:2440 +#: sl/SL_Menu.py:2349 sl/SL_Menu.py:2524 msgid "Days" msgstr "" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Edit" msgstr "" -#: sl/SL_Menu.py:2269 sl/SL_Menu.py:2442 +#: sl/SL_Menu.py:2353 sl/SL_Menu.py:2526 msgid "Preview" msgstr "" -#: sl/SL_Menu.py:2274 sl/SL_Menu.py:2447 +#: sl/SL_Menu.py:2358 sl/SL_Menu.py:2531 msgid "No notes provided." msgstr "" -#: sl/SL_Menu.py:2279 sl/SL_Menu.py:2452 +#: sl/SL_Menu.py:2363 sl/SL_Menu.py:2536 msgid "A due date is required for recurring tasks." msgstr "" -#: sl/SL_Menu.py:2287 +#: sl/SL_Menu.py:2371 msgid "Please enter a name." msgstr "" -#: sl/SL_Menu.py:2299 +#: sl/SL_Menu.py:2383 #, python-brace-format msgid "Task '{sub_name}' added to '{main_name}'." msgstr "" -#: sl/SL_Menu.py:2331 sl/SL_Menu.py:2638 +#: sl/SL_Menu.py:2415 sl/SL_Menu.py:2722 msgid "Step 2: Select Task from" msgstr "" -#: sl/SL_Menu.py:2334 +#: sl/SL_Menu.py:2418 msgid "No open tasks found." msgstr "" -#: sl/SL_Menu.py:2362 +#: sl/SL_Menu.py:2446 msgid "Task not found." msgstr "" -#: sl/SL_Menu.py:2456 +#: sl/SL_Menu.py:2540 msgid "Save Changes" msgstr "" -#: sl/SL_Menu.py:2481 +#: sl/SL_Menu.py:2565 msgid "Error: Could not update task." msgstr "" -#: sl/SL_Menu.py:2494 +#: sl/SL_Menu.py:2578 msgid "Start Work on Task" msgstr "" -#: sl/SL_Menu.py:2509 +#: sl/SL_Menu.py:2593 #, python-brace-format msgid "No open tasks to start work on in '{name}'." msgstr "" -#: sl/SL_Menu.py:2520 +#: sl/SL_Menu.py:2604 msgid "Start Work" msgstr "" -#: sl/SL_Menu.py:2548 +#: sl/SL_Menu.py:2632 msgid "Task" msgstr "" -#: sl/SL_Menu.py:2549 +#: sl/SL_Menu.py:2633 msgid "Started at" msgstr "" -#: sl/SL_Menu.py:2550 tt/TimeTracker.py:1446 +#: sl/SL_Menu.py:2634 tt/TimeTracker.py:1454 msgid "Duration" msgstr "" -#: sl/SL_Menu.py:2564 sl/SL_Menu.py:2696 +#: sl/SL_Menu.py:2648 sl/SL_Menu.py:2780 msgid "Select Date" msgstr "" -#: sl/SL_Menu.py:2565 sl/SL_Menu.py:2589 sl/SL_Menu.py:2653 sl/SL_Menu.py:2679 -#: sl/SL_Menu.py:2697 +#: sl/SL_Menu.py:2649 sl/SL_Menu.py:2673 sl/SL_Menu.py:2737 sl/SL_Menu.py:2763 +#: sl/SL_Menu.py:2781 msgid "Generate Report" msgstr "" -#: sl/SL_Menu.py:2585 +#: sl/SL_Menu.py:2669 msgid "Start Date" msgstr "" -#: sl/SL_Menu.py:2587 +#: sl/SL_Menu.py:2671 msgid "End Date" msgstr "" -#: sl/SL_Menu.py:2712 +#: sl/SL_Menu.py:2796 msgid "Report Result" msgstr "" -#: sl/SL_Menu.py:2741 +#: sl/SL_Menu.py:2825 msgid "Export Report" msgstr "" @@ -2229,7 +2243,7 @@ msgstr "" msgid "Task '{task_name}' moved successfully." msgstr "" -#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1408 +#: tt/TimeTracker.py:892 tt/TimeTracker.py:927 tt/TimeTracker.py:1416 #, python-brace-format msgid "Task '{task_name}' not found in '{main_name}'." msgstr "" @@ -2285,138 +2299,138 @@ msgstr "" msgid "Unknown Task" msgstr "" -#: tt/TimeTracker.py:1365 +#: tt/TimeTracker.py:1373 #, python-brace-format msgid "- {name}: {hours} hours" msgstr "" -#: tt/TimeTracker.py:1373 +#: tt/TimeTracker.py:1381 #, python-brace-format msgid "## {name} ({hours} hours)\n" msgstr "" -#: tt/TimeTracker.py:1382 +#: tt/TimeTracker.py:1390 #, python-brace-format msgid "# Daily Time Report: {date}\n" msgstr "" -#: tt/TimeTracker.py:1383 +#: tt/TimeTracker.py:1391 #, python-brace-format msgid "" "\n" "**Total Daily Time: {hours} hours**" msgstr "" -#: tt/TimeTracker.py:1387 tt/TimeTracker.py:1700 +#: tt/TimeTracker.py:1395 tt/TimeTracker.py:1708 #, python-brace-format msgid "No time tracked for {date}." msgstr "" -#: tt/TimeTracker.py:1404 tt/TimeTracker.py:1499 +#: tt/TimeTracker.py:1412 tt/TimeTracker.py:1507 #, python-brace-format msgid "Main project '{name}' not found." msgstr "" -#: tt/TimeTracker.py:1412 +#: tt/TimeTracker.py:1420 #, python-brace-format msgid "No time entries found for task '{task_name}'." msgstr "" -#: tt/TimeTracker.py:1445 tt/TimeTracker.py:1675 +#: tt/TimeTracker.py:1453 tt/TimeTracker.py:1683 msgid "now" msgstr "" -#: tt/TimeTracker.py:1450 +#: tt/TimeTracker.py:1458 #, python-brace-format msgid "# Detailed Report for Task: {name}" msgstr "" -#: tt/TimeTracker.py:1451 +#: tt/TimeTracker.py:1459 #, python-brace-format msgid "Part of Main Project: {name}" msgstr "" -#: tt/TimeTracker.py:1454 +#: tt/TimeTracker.py:1462 msgid "Active (currently running)" msgstr "" -#: tt/TimeTracker.py:1454 tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1559 msgid "Inactive" msgstr "" -#: tt/TimeTracker.py:1455 tt/TimeTracker.py:1552 +#: tt/TimeTracker.py:1463 tt/TimeTracker.py:1560 msgid "Status" msgstr "" -#: tt/TimeTracker.py:1457 tt/TimeTracker.py:1554 +#: tt/TimeTracker.py:1465 tt/TimeTracker.py:1562 msgid "First entry" msgstr "" -#: tt/TimeTracker.py:1459 tt/TimeTracker.py:1556 +#: tt/TimeTracker.py:1467 tt/TimeTracker.py:1564 msgid "Last activity" msgstr "" -#: tt/TimeTracker.py:1461 tt/TimeTracker.py:1558 +#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1566 msgid "Total recorded time" msgstr "" -#: tt/TimeTracker.py:1462 tt/TimeTracker.py:1560 +#: tt/TimeTracker.py:1470 tt/TimeTracker.py:1568 msgid "Total work sessions" msgstr "" -#: tt/TimeTracker.py:1466 tt/TimeTracker.py:1564 +#: tt/TimeTracker.py:1474 tt/TimeTracker.py:1572 msgid "Average session duration" msgstr "" -#: tt/TimeTracker.py:1469 tt/TimeTracker.py:1567 +#: tt/TimeTracker.py:1477 tt/TimeTracker.py:1575 msgid "Weekday Distribution" msgstr "" -#: tt/TimeTracker.py:1479 +#: tt/TimeTracker.py:1487 msgid "Daily Breakdown" msgstr "" -#: tt/TimeTracker.py:1548 +#: tt/TimeTracker.py:1556 #, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "" -#: tt/TimeTracker.py:1551 +#: tt/TimeTracker.py:1559 #, python-brace-format msgid "Active (working on '{task_name}')" msgstr "" -#: tt/TimeTracker.py:1559 +#: tt/TimeTracker.py:1567 msgid "Number of tasks" msgstr "" -#: tt/TimeTracker.py:1578 +#: tt/TimeTracker.py:1586 msgid "Task Breakdown" msgstr "" -#: tt/TimeTracker.py:1587 +#: tt/TimeTracker.py:1595 #, python-brace-format msgid "{num_sessions} sessions" msgstr "" -#: tt/TimeTracker.py:1640 +#: tt/TimeTracker.py:1648 #, python-brace-format msgid "# Time Report: {start_date} to {end_date}\n" msgstr "" -#: tt/TimeTracker.py:1641 +#: tt/TimeTracker.py:1649 #, python-brace-format msgid "" "\n" "**Total Time in Period: {total_time}**" msgstr "" -#: tt/TimeTracker.py:1645 +#: tt/TimeTracker.py:1653 #, python-brace-format msgid "No time tracked between {start_date} and {end_date}." msgstr "" -#: tt/TimeTracker.py:1661 +#: tt/TimeTracker.py:1669 #, python-brace-format msgid "# Detailed Daily Report: {date}" msgstr "" @@ -2427,11 +2441,6 @@ msgid "" "file is invalid." msgstr "" -#: update.py:49 -#, python-brace-format -msgid "A new version ({version}) is available." -msgstr "" - #: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "" @@ -2459,81 +2468,85 @@ msgstr "" msgid "Error downloading the update: {error}" msgstr "" -#: update.py:108 +#: update.py:98 +msgid "Restarting application to apply the update..." +msgstr "" + +#: update.py:122 msgid "Creating backup of current version before update..." msgstr "" -#: update.py:118 +#: update.py:132 #, python-brace-format msgid "Backup created successfully as {filename}." msgstr "" -#: update.py:120 +#: update.py:134 #, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "" -#: update.py:122 +#: update.py:136 msgid "Installing update..." msgstr "" -#: update.py:142 +#: update.py:156 #, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "" -#: update.py:151 +#: update.py:165 msgid "Update installed successfully." msgstr "" -#: update.py:153 +#: update.py:167 #, python-brace-format msgid "Error during update installation: {error}" msgstr "" -#: update.py:168 +#: update.py:182 #, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "" -#: update.py:171 +#: update.py:185 #, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "" -#: update.py:192 +#: update.py:206 #, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " "restore." msgstr "" -#: update.py:199 +#: update.py:213 msgid "Previous version restored successfully." msgstr "" -#: update.py:201 +#: update.py:215 msgid "Restarting application to apply changes..." msgstr "" -#: update.py:204 +#: update.py:218 #, python-brace-format msgid "Error during restoration: {error}" msgstr "" -#: update.py:205 +#: update.py:219 #, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "" -#: update.py:212 +#: update.py:226 msgid "Error: Could not import TimeTracker to get the current version." msgstr "" -#: update.py:215 +#: update.py:229 msgid "Checking for updates..." msgstr "" -#: update.py:222 +#: update.py:236 msgid "No updates available." msgstr "" diff --git a/sl/SL_Menu.py b/sl/SL_Menu.py index c459277..e74b9a5 100644 --- a/sl/SL_Menu.py +++ b/sl/SL_Menu.py @@ -15,7 +15,7 @@ from i18n import _ try: - from update import restore_previous_version + from update import restore_previous_version, check_for_updates, apply_update UPDATE_MODULE_AVAILABLE = True except (ImportError, ModuleNotFoundError): UPDATE_MODULE_AVAILABLE = False @@ -303,6 +303,16 @@ def render_icon_button_css(): st.session_state.tracker = TimeTracker() st.session_state.tracker.initialize_dependencies() st.session_state.tracker.set_today_flag_for_due_tasks() # Set 'today' flag for tasks due today + + # One check per session, not per rerun (Streamlit reruns this whole + # script on every click) - a frozen build has no loose source files for + # the update mechanism to overwrite (see update.py/TimeTrackerSL_GUI.py), + # so there's nothing to offer there. + st.session_state.update_check = {'available': False} + if UPDATE_MODULE_AVAILABLE and not getattr(sys, 'frozen', False): + is_available, new_version, url = check_for_updates(st.session_state.tracker.get_version()) + if is_available: + st.session_state.update_check = {'available': True, 'version': new_version, 'url': url} else: # Reload from disk on every rerun (i.e. on every click/navigation), so # changes made by another process sharing the same data file - the SOAP @@ -430,11 +440,23 @@ def _auto_refresh_on_external_changes(): def render_header(title, subtitle=None): """ - Renders the standard header for a view, including title, optional subtitle, and feedback messages. + Renders the standard header for a view: the app version (always, at the + very top, above the title), the view's title, an optional subtitle + below it, and any pending feedback message. :param title: The main title of the view. :param subtitle: An optional subtitle. """ + st.caption(_("Version {version}").format(version=st.session_state.tracker.get_version())) + update_check = st.session_state.get('update_check', {}) + if update_check.get('available'): + col_update_msg, col_update_btn = st.columns([10, 1]) + with col_update_msg: + st.info(_("A new version ({version}) is available.").format(version=update_check['version'])) + with col_update_btn: + if st.button("⟳", help=_("Restart and install the update"), key="update_restart_btn"): + with st.spinner(_("Downloading and installing update...")): + apply_update(update_check['url']) st.title(title) if subtitle: st.caption(subtitle) diff --git a/update.py b/update.py index 4c52508..29c99ff 100644 --- a/update.py +++ b/update.py @@ -84,6 +84,20 @@ def download_update(url): os.remove(UPDATE_ZIP_FILE) # Clean up partial download return False +def apply_update(url): + """ + Downloads (if not already downloaded) and installs the given update, + then restarts the application in-place to run the new version. + + :param url: The download URL for the update, as returned by check_for_updates(). + """ + if not os.path.exists(UPDATE_ZIP_FILE): + if not download_update(url): + return + install_update() + print(_("Restarting application to apply the update...")) + os.execv(sys.executable, ['python'] + sys.argv) + def install_update(): """ Installs the downloaded update by extracting the zip file and overwriting old files.