diff --git a/locale/cs/LC_MESSAGES/timetracker.mo b/locale/cs/LC_MESSAGES/timetracker.mo index 91d33f1..18c47dd 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 cf1331a..cb3c532 100644 --- a/locale/cs/LC_MESSAGES/timetracker.po +++ b/locale/cs/LC_MESSAGES/timetracker.po @@ -3,9 +3,10 @@ # This file is distributed under the same license as the TimeTracker package. # msgid "" -msgstr "Project-Id-Version: TimeControl\n" -"Report-Msgid-Bugs-To: https://github.com/FrankFaulstich/TimeControl/issues\n" -"POT-Creation-Date: 2024-05-15 10:00+0200\n" +msgstr "" +"Project-Id-Version: TimeControl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-18 12:24+0200\n" "PO-Revision-Date: 2024-05-15 12:00+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: Czech\n" @@ -15,934 +16,2643 @@ msgstr "Project-Id-Version: TimeControl\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -msgid "Edit current task" -msgstr "Upravit aktuální úkol" - -msgid "Warning: Could not read {file}. Error: {error}" -msgstr "Varování: Nelze přečíst soubor {file}. Chyba: {error}" - -msgid "Some required packages are missing. Attempting to install them..." -msgstr "Některé požadované balíčky chybí. Pokouším se je nainstalovat..." - -msgid "Installing {package}..." -msgstr "Instaluji {package}..." - -msgid "\nDependencies installed successfully." -msgstr "\nZávislosti byly úspěšně nainstalovány." - -msgid "Please restart the application for the changes to take effect." -msgstr "Prosím, restartujte aplikaci, aby se změny projevily." - +#: TimeTrackerCLI.py:25 msgid "" "\n" -"Error: Failed to install dependencies. Please install them manually using: " -"pip install -r {requirements_path}" +"--- Project Management ---" msgstr "" "\n" -"Chyba: Instalace závislostí se nezdařila. Prosím, nainstalujte je ručně " -"pomocí: pip install -r {requirements_path}" +"--- Správa projektů ---" -msgid "An unexpected error occurred during dependency check: {error}" -msgstr "Během kontroly závislostí došlo k neočekávané chybě: {error}" +#: TimeTrackerCLI.py:26 +msgid "1. Main Project Management" +msgstr "1. Hlavní správa projektu" -msgid "Info: Report content has been copied to the clipboard." -msgstr "Info: Obsah zprávy byl zkopírován do schránky." +#: TimeTrackerCLI.py:27 +msgid "2. Task Management" +msgstr "2. Správa úloh" -msgid "Warning: Could not copy to clipboard. Error: {error}" -msgstr "Varování: Nelze kopírovat do schránky. Chyba: {error}" +#: TimeTrackerCLI.py:29 +msgid "0. Back to Main Menu" +msgstr "0. Zpět do hlavního menu" -msgid "" -"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " -"install pyperclip`)." -msgstr "" -"Varování: Nelze kopírovat do schránky. Prosím, nainstalujte 'pyperclip' " -"(`pip install pyperclip`)." +#: TimeTrackerCLI.py:32 TimeTrackerCLI.py:60 TimeTrackerCLI.py:257 +#: TimeTrackerCLI.py:662 TimeTrackerCLI.py:701 TimeTrackerCLI.py:811 +#: TimeTrackerCLI.py:953 +msgid "Choice: " +msgstr "Volba: " -msgid "{hours} hours ({dlp} DLP)" -msgid_plural "{hours} hours ({dlp} DLP)" -msgstr[0] "{hours} hodina ({dlp} DLP)" -msgstr[1] "{hours} hodiny ({dlp} DLP)" -msgstr[2] "{hours} hodin ({dlp} DLP)" +#: TimeTrackerCLI.py:41 +msgid "Invalid choice. Please enter a number from 0 to 2." +msgstr "Neplatná volba. Zadejte číslo od 0 do 2." -msgid "closed" -msgstr "uzavřeno" +#: TimeTrackerCLI.py:46 +msgid "" +"\n" +"--- Main Project Management ---" +msgstr "" +"\n" +"--- Správa hlavního projektu ---" -msgid "Source project '{name}' not found." -msgstr "Zdrojový projekt '{name}' nebyl nalezen." +#: TimeTrackerCLI.py:47 +msgid "1. Add Main Project" +msgstr "1. Přidat hlavní projekt" -msgid "Destination project '{name}' not found." -msgstr "Cílový projekt '{name}' nebyl nalezen." +#: TimeTrackerCLI.py:48 +msgid "2. List Main Projects" +msgstr "2. Seznam hlavních projektů" -msgid "A task named '{sub_name}' already exists in '{main_name}'." -msgstr "Úkol s názvem '{sub_name}' již v projektu '{main_name}' existuje." +#: TimeTrackerCLI.py:49 +msgid "3. Rename Main Project" +msgstr "3. Přejmenovat hlavní projekt" -msgid "Task '{name}' moved successfully." -msgstr "Úkol '{name}' byl úspěšně přesunut." +#: TimeTrackerCLI.py:50 +msgid "4. Close Main Project" +msgstr "4. Zavřít hlavní projekt" -msgid "No project selected. Please start again." -msgstr "Nebyl vybrán žádný projekt. Začněte prosím znovu." +#: TimeTrackerCLI.py:51 +msgid "5. Re-open Main Project" +msgstr "5. Smazat Znovu otevřít hlavní projekt" -msgid "A project named '{name}' already exists." -msgstr "Projekt s názvem '{name}' již existuje." +#: TimeTrackerCLI.py:52 +msgid "6. Delete Main Project" +msgstr "SPL" -msgid "Project '{old_name}' renamed to '{new_name}'." -msgstr "Projekt '{old_name}' přejmenován na '{new_name}'." +#: TimeTrackerCLI.py:53 +msgid "7. List Inactive Main Projects" +msgstr "7. Vypsat neaktivní hlavní projekty" -msgid "Task '{sub_name}' not found in '{main_name}'." -msgstr "Úkol '{sub_name}' nebyl v projektu '{main_name}' nalezen." +#: TimeTrackerCLI.py:54 +msgid "8. Demote Main-Project to Sub-Project" +msgstr "8. Snížit hlavní projekt na podprojekt" -msgid "General" -msgstr "Obecné" +#: TimeTrackerCLI.py:55 +msgid "9. List Completed Main Projects" +msgstr "9. Vypsat dokončené hlavní projekty" -msgid "Task '{name}' was promoted to a new project." -msgstr "Úkol '{name}' byl povýšen na nový projekt." +#: TimeTrackerCLI.py:57 TimeTrackerCLI.py:254 +msgid "0. Back" +msgstr "0. Zpět" -msgid "Project to demote '{name}' not found." -msgstr "Projekt k degradaci '{name}' nebyl nalezen." +#: TimeTrackerCLI.py:64 +msgid "" +"\n" +"--- Add New Main Project ---" +msgstr "" +"\n" +"--- Přidat nový hlavní projekt ---" -msgid "New parent project '{name}' not found." -msgstr "Nový nadřazený projekt '{name}' nebyl nalezen." +#: TimeTrackerCLI.py:65 +msgid "Name of the main project: " +msgstr "Název hlavního projektu:" -msgid "Task '{old_name}' has been renamed to '{new_name}'." -msgstr "Úkol '{old_name}' byl přejmenován na '{new_name}'." +#: TimeTrackerCLI.py:67 +#, python-brace-format +msgid "Main project '{name}' added." +msgstr "Přidán hlavní projekt '{name}'." +#: TimeTrackerCLI.py:70 msgid "" -"Project '{demoted_name}' was demoted to a task under " -"'{parent_name}'." +"\n" +"--- List Main Projects ---" msgstr "" -"Projekt '{demoted_name}' byl degradován na úkol pod '" -"{parent_name}'." - -msgid "No open projects found." -msgstr "Nebyly nalezeny žádné otevřené projekty." +"\n" +"--- Seznam hlavních projektů ---" -msgid "# Daily Time Report: {date}\n" -msgstr "# Denní zpráva o čase: {date}\n" +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1246 +#: sl/SL_Menu.py:1310 +msgid "closed" +msgstr "uzavřeno" -msgid "- {name}: {hours} hours" -msgid_plural "- {name}: {hours} hours" -msgstr[0] "- {name}: {hours} hodina" -msgstr[1] "- {name}: {hours} hodiny" -msgstr[2] "- {name}: {hours} hodin" +#: TimeTrackerCLI.py:79 +msgid "No main projects found." +msgstr "Nebyly nalezeny žádné hlavní projekty." -msgid "## {name} ({hours} hours)\n" -msgid_plural "## {name} ({hours} hours)\n" -msgstr[0] "## {name} ({hours} hodina)\n" -msgstr[1] "## {name} ({hours} hodiny)\n" -msgstr[2] "## {name} ({hours} hodin)\n" +#: TimeTrackerCLI.py:82 +msgid "" +"\n" +"--- Rename Main Project ---" +msgstr "" +"\n" +"--- Přejmenovat hlavní projekt ---" + +#: TimeTrackerCLI.py:85 +msgid "No main projects to rename." +msgstr "Žádné hlavní projekty k přejmenování." + +#: TimeTrackerCLI.py:88 +msgid "Select an open main project to rename:" +msgstr "Vyberte otevřený hlavní projekt, který chcete přejmenovat:" + +#: TimeTrackerCLI.py:93 TimeTrackerCLI.py:117 TimeTrackerCLI.py:139 +#: TimeTrackerCLI.py:162 TimeTrackerCLI.py:272 TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:333 TimeTrackerCLI.py:370 TimeTrackerCLI.py:405 +#: TimeTrackerCLI.py:441 TimeTrackerCLI.py:568 TimeTrackerCLI.py:604 +#: TimeTrackerCLI.py:855 TimeTrackerCLI.py:888 TimeTrackerCLI.py:969 +msgid "Enter the number of the main project: " +msgstr "Zadejte číslo hlavního projektu:" + +#: TimeTrackerCLI.py:96 TimeTrackerCLI.py:349 +#, python-brace-format +msgid "Enter the new name for '{name}': " +msgstr "Zadejte nový název pro '{name}': " -msgid "\n**Total Daily Time: {hours} hours**" -msgstr "\n**Celkový denní čas: {hours} hodin**" +#: TimeTrackerCLI.py:99 +#, python-brace-format +msgid "Main project '{old_name}' successfully renamed to '{new_name}'." +msgstr "Hlavní projekt '{old_name}' byl úspěšně přejmenován na '{new_name}'." -msgid "No time tracked for {date}." -msgstr "Pro den {date} nebyl zaznamenán žádný čas." +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1283 +#, 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." -msgid "# Time Report: {start_date} to {end_date}\n" -msgstr "# Zpráva o čase: od {start_date} do {end_date}\n" +#: TimeTrackerCLI.py:103 TimeTrackerCLI.py:125 TimeTrackerCLI.py:147 +#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:221 TimeTrackerCLI.py:287 +#: TimeTrackerCLI.py:319 TimeTrackerCLI.py:356 TimeTrackerCLI.py:391 +#: TimeTrackerCLI.py:426 TimeTrackerCLI.py:463 TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:589 TimeTrackerCLI.py:794 TimeTrackerCLI.py:875 +#: TimeTrackerCLI.py:894 TimeTrackerCLI.py:992 +msgid "Invalid input. Please enter a valid number." +msgstr "Neplatný vstup. Zadejte prosím platné číslo." -msgid "\n**Total Time in Period: {total_time}**" -msgstr "\n**Celkový čas v období: {total_time}**" +#: TimeTrackerCLI.py:106 +msgid "" +"\n" +"--- Close Main Project ---" +msgstr "" +"\n" +"--- Zavřít hlavní projekt ---" -msgid "No time tracked between {start_date} and {end_date}." -msgstr "Mezi {start_date} a {end_date} nebyl zaznamenán žádný čas." +#: TimeTrackerCLI.py:109 +msgid "No open main projects to close." +msgstr "Žádné otevřené hlavní projekty k uzavření." -msgid "\n--- Project Management ---" -msgstr "\n--- Správa projektů ---" +#: TimeTrackerCLI.py:112 +msgid "Select a main project to close:" +msgstr "Vyberte hlavní projekt k uzavření:" -msgid "1. Add Project" -msgstr "1. Přidat projekt" +#: TimeTrackerCLI.py:121 +#, python-brace-format +msgid "Main project '{name}' has been closed." +msgstr "Hlavní projekt '{name}' byl uzavřen." -msgid "2. List Projects" -msgstr "2. Vypsat projekty" +#: TimeTrackerCLI.py:123 TimeTrackerCLI.py:145 +msgid "Error: Main project not found." +msgstr "Chyba: Hlavní projekt nebyl nalezen." -msgid "3. Rename Project" -msgstr "3. Přejmenovat projekt" +#: TimeTrackerCLI.py:128 +msgid "" +"\n" +"--- Re-open Main Project ---" +msgstr "" +"\n" +"--- Znovu otevřít hlavní projekt ---" -msgid "4. Delete Project" -msgstr "4. Smazat projekt" +#: TimeTrackerCLI.py:131 +msgid "No closed main projects to reopen." +msgstr "Žádné uzavřené hlavní projekty ke znovuotevření." -msgid "5. List Inactive Projects" -msgstr "5. Vypsat neaktivní projekty" +#: TimeTrackerCLI.py:134 +msgid "Select a main project to reopen:" +msgstr "Vyberte hlavní projekt, který chcete znovu otevřít:" -msgid "6. Demote Project to Task" -msgstr "6. Degradovat projekt na úkol" +#: TimeTrackerCLI.py:143 +#, python-brace-format +msgid "Main project '{name}' has been reopened." +msgstr "Hlavní projekt '{name}' byl znovu otevřen." -msgid "7. Add Task" -msgstr "7. Přidat úkol" +#: TimeTrackerCLI.py:150 +msgid "" +"\n" +"--- Delete Main Project ---" +msgstr "" +"\n" +"--- Smazat hlavní projekt ---" -msgid "8. List Tasks" -msgstr "8. Vypsat úkoly" +#: TimeTrackerCLI.py:153 +msgid "No main projects to delete." +msgstr "Žádné hlavní projekty k odstranění." -msgid "9. Rename Task" -msgstr "9. Přejmenovat úkol" +#: TimeTrackerCLI.py:156 +msgid "Select a main project to delete:" +msgstr "Vyberte hlavní projekt, který chcete odstranit:" -msgid "10. Close Task" -msgstr "10. Uzavřít úkol" +#: TimeTrackerCLI.py:165 +#, python-brace-format +msgid "Main project '{name}' deleted." +msgstr "Hlavní projekt '{name}' byl odstraněn." -msgid "11. Re-open Task" -msgstr "11. Znovu otevřít úkol" +#: TimeTrackerCLI.py:167 TimeTrackerCLI.py:285 +#, python-brace-format +msgid "Error: Main project '{name}' not found." +msgstr "Chyba: Hlavní projekt '{name}' nebyl nalezen." -msgid "12. Delete Task" -msgstr "12. Smazat úkol" +#: TimeTrackerCLI.py:172 +msgid "" +"\n" +"--- List Inactive Main-Projects ---" +msgstr "" +"\n" +"--- Vypsat neaktivní hlavní projekty ---" -msgid "13. Move Task" -msgstr "13. Přesunout úkol" +#: TimeTrackerCLI.py:174 +msgid "Enter the number of weeks without activity (e.g., 8): " +msgstr "Zadejte počet týdnů bez aktivity (např. 8): " -msgid "14. List Inactive Tasks" -msgstr "14. Vypsat neaktivní úkoly" +#: TimeTrackerCLI.py:176 TimeTrackerCLI.py:518 +msgid "Please enter a positive number." +msgstr "Zadejte prosím kladné číslo." -msgid "15. List All Closed Tasks" -msgstr "15. Vypsat všechny uzavřené úkoly" +#: TimeTrackerCLI.py:182 +#, python-brace-format +msgid "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" +msgstr "" +"\n" +"Neaktivní hlavní projekty (>{weeks}týdnů):" -msgid "16. Delete All Closed Tasks" -msgstr "16. Smazat všechny uzavřené úkoly" +#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:526 +#, python-brace-format +msgid " - Main Project: {name}" +msgstr "- Hlavní projekt:{name}" -msgid "17. Promote Task to Project" -msgstr "17. Povýšit úkol na projekt" +#: TimeTrackerCLI.py:185 TimeTrackerCLI.py:528 +#, python-brace-format +msgid " Last Activity: {date}" +msgstr " Poslední aktivita: {date}" -msgid "0. Back to Main Menu" -msgstr "0. Zpět do hlavního menu" +#: TimeTrackerCLI.py:188 +#, python-brace-format +msgid "No main-projects found inactive for more than {weeks} weeks." +msgstr "" +"Žádné hlavní projekty nebyly nalezeny jako neaktivní déle než{weeks}týdnů." -msgid "Choice: " -msgstr "Volba: " +#: TimeTrackerCLI.py:191 TimeTrackerCLI.py:534 +msgid "Invalid input. Please enter a valid number for weeks." +msgstr "Neplatný vstup. Zadejte prosím platné číslo pro týdny." -msgid "\n--- Add New Project ---" -msgstr "\n--- Přidat nový projekt ---" +#: TimeTrackerCLI.py:194 +msgid "" +"\n" +"--- Demote Main-Project to Sub-Project ---" +msgstr "" +"\n" +"--- Snížit hlavní projekt na podprojekt ---" -msgid "Name of the project: " -msgstr "Název projektu: " +#: TimeTrackerCLI.py:197 +msgid "You need at least two open main projects for this operation." +msgstr "Pro tuto operaci potřebujete alespoň dva otevřené hlavní projekty." -msgid "Project '{name}' added." -msgstr "Projekt '{name}' byl přidán." +#: TimeTrackerCLI.py:202 +msgid "Select the main project to demote:" +msgstr "Vyberte hlavní projekt, který chcete snížit:" -msgid "\n--- List Projects ---" -msgstr "\n--- Seznam projektů ---" +#: TimeTrackerCLI.py:205 +msgid "Enter the number of the project to demote: " +msgstr "Zadejte číslo projektu k degradaci: " -msgid "No projects found." -msgstr "Nebyly nalezeny žádné projekty." +#: TimeTrackerCLI.py:209 +msgid "" +"\n" +"Select the new parent main project:" +msgstr "" +"\n" +"Vyberte nový nadřazený hlavní projekt:" -msgid "\n--- Rename Project ---" -msgstr "\n--- Přejmenovat projekt ---" +#: TimeTrackerCLI.py:213 +msgid "Enter the number of the new parent project: " +msgstr "Zadejte číslo nového nadřazeného projektu: " -msgid "No projects to rename." -msgstr "Žádné projekty k přejmenování." +#: TimeTrackerCLI.py:224 +msgid "" +"\n" +"--- List Completed Main Projects ---" +msgstr "" +"\n" +"--- Seznam dokončených hlavních projektů ---" -msgid "Select a project to rename:" -msgstr "Vyberte projekt k přejmenování:" +#: TimeTrackerCLI.py:227 +msgid "Main projects with only closed or no sub-projects:" +msgstr "Hlavní projekty pouze s uzavřenými nebo žádnými dílčími projekty:" -msgid "Enter the number of the project: " -msgstr "Zadejte číslo projektu: " +#: TimeTrackerCLI.py:231 +msgid "No completed main projects found." +msgstr "Nebyly nalezeny žádné dokončené hlavní projekty." -msgid "Enter the new name for '{name}': " -msgstr "Zadejte nový název pro '{name}': " +#: TimeTrackerCLI.py:235 +msgid "Invalid choice. Please enter a number from 0 to 9." +msgstr "Neplatná volba. Zadejte číslo od 0 do 9." +#: TimeTrackerCLI.py:240 msgid "" -"Project '{old_name}' successfully renamed to '{new_name}'." -msgstr "Projekt '{old_name}' byl úspěšně přejmenován na '{new_name}'." +"\n" +"--- Task Management ---" +msgstr "" +"\n" +"--- Správa úloh ---" -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." +#: TimeTrackerCLI.py:241 +msgid "1. Add Task" +msgstr "1. Přidat úkol" -msgid "Invalid input. Please enter a valid number." -msgstr "Neplatný vstup. Zadejte prosím platné číslo." +#: TimeTrackerCLI.py:242 +msgid "2. List Tasks" +msgstr "2. Seznam úkolů" -msgid "\n--- Delete Project ---" -msgstr "\n--- Smazat projekt ---" +#: TimeTrackerCLI.py:243 +msgid "3. Rename Task" +msgstr "3. Přejmenovat úkol" -msgid "No projects to delete." -msgstr "Žádné projekty ke smazání." +#: TimeTrackerCLI.py:244 +msgid "4. Close Task" +msgstr "4. Zavřít úkol" -msgid "Select a project to delete:" -msgstr "Vyberte projekt ke smazání:" +#: TimeTrackerCLI.py:245 +msgid "5. Re-open Task" +msgstr "5. Smazat Znovu otevřít úkol" -msgid "Project '{name}' deleted." -msgstr "Projekt '{name}' byl smazán." +#: TimeTrackerCLI.py:246 +msgid "6. Delete Task" +msgstr "SPLIT" -msgid "Error: Project '{name}' not found." -msgstr "Chyba: Projekt '{name}' nebyl nalezen." +#: TimeTrackerCLI.py:247 +msgid "7. Move Task" +msgstr "7. Přesunout úkol" -msgid "\n--- List Inactive Projects ---" -msgstr "\n--- Seznam neaktivních projektů ---" +#: TimeTrackerCLI.py:248 +msgid "8. List Inactive Tasks" +msgstr "8. Vypsat neaktivní úkoly" -msgid "Enter the number of weeks without activity (e.g., 8): " -msgstr "Zadejte počet týdnů bez aktivity (např. 8): " +#: TimeTrackerCLI.py:249 +msgid "9. List All Closed Tasks" +msgstr "9. Vypsat všechny uzavřené úkoly" -msgid "Please enter a positive number." -msgstr "Zadejte prosím kladné číslo." +#: TimeTrackerCLI.py:250 +msgid "10. Delete All Closed Tasks" +msgstr "10. Smazat všechny uzavřené úkoly" -msgid "\nInactive Projects (>{weeks} weeks):" -msgstr "\nNeaktivní projekty (>{weeks} týdnů):" +#: TimeTrackerCLI.py:251 +msgid "11. Promote Task to Main-Project" +msgstr "11. Povýšit úkol na hlavní projekt" -msgid " - Project: {name}" -msgstr " - Projekt: {name}" +#: TimeTrackerCLI.py:252 +msgid "12. Edit Task (Name & Due Date)" +msgstr "12. Upravit úkol (název a datum dokončení)" -msgid " Last Activity: {date}" -msgstr " Poslední aktivita: {date}" +#: TimeTrackerCLI.py:261 +msgid "" +"\n" +"--- Add New Task ---" +msgstr "" +"\n" +"--- Přidat nový úkol ---" -msgid "No projects found inactive for more than {weeks} week." -msgid_plural "No projects found inactive for more than {weeks} weeks." -msgstr[0] "Nebyl nalezen žádný projekt neaktivní déle než {weeks} týden." -msgstr[1] "Nebyly nalezeny žádné projekty neaktivní déle než {weeks} týdny." -msgstr[2] "Nebyly nalezeny žádné projekty neaktivní déle než {weeks} týdnů." +#: TimeTrackerCLI.py:264 TimeTrackerCLI.py:960 +msgid "No open main projects found. Please add one first." +msgstr "" +"Nebyly nalezeny žádné otevřené hlavní projekty. Nejprve přidejte jednu." -msgid "Invalid input. Please enter a valid number for weeks." -msgstr "Neplatný vstup. Zadejte prosím platné číslo pro týdny." +#: TimeTrackerCLI.py:267 +msgid "Select a main project to add a task to:" +msgstr "Vyberte hlavní projekt, do kterého chcete přidat úkol:" -msgid "\n--- Add New Task ---" -msgstr "\n--- Přidat nový úkol ---" +#: TimeTrackerCLI.py:275 +msgid "Name of the new task: " +msgstr "Název nového úkolu: " -msgid "No projects found. Please add one first." -msgstr "Nebyly nalezeny žádné projekty. Nejprve prosím nějaký přidejte." +#: TimeTrackerCLI.py:276 +msgid "Due date (YYYY-MM-DD, press Enter to skip): " +msgstr "Termín (RRRR-MM-DD, přeskočte stisknutím klávesy Enter):" -msgid "Select a project to add a task to:" -msgstr "Vyberte projekt, do kterého chcete přidat úkol:" +#: TimeTrackerCLI.py:278 +msgid "Add to 'Today' list? (y/n, default n): " +msgstr "Přidat do seznamu „Dnes“? (y/n, výchozí n):" -msgid "Name of the new task: " -msgstr "Název nového úkolu: " +#: TimeTrackerCLI.py:280 +msgid "Note (Markdown supported): " +msgstr "Poznámka (podporováno označení):" -msgid "Task '{sub_name}' added to '{main_name}'." -msgstr "Úkol '{sub_name}' byl přidán do '{main_name}'." +#: TimeTrackerCLI.py:283 +#, python-brace-format +msgid "Task '{task_name}' added." +msgstr "Úkol '{task_name}' přidán." -msgid "\n--- List Tasks ---" -msgstr "\n--- Seznam úkolů ---" +#: TimeTrackerCLI.py:290 +msgid "" +"\n" +"--- List Tasks ---" +msgstr "" +"\n" +"--- Seznam úkolů ---" -msgid "No projects found. Cannot list tasks." -msgstr "Nebyly nalezeny žádné projekty. Nelze vypsat úkoly." +#: TimeTrackerCLI.py:293 +msgid "No main projects found. Cannot list tasks." +msgstr "Nebyly nalezeny žádné hlavní projekty. Nelze vypsat úkoly." -msgid "Select the project whose tasks you want to list:" -msgstr "Vyberte projekt, jehož úkoly chcete vypsat:" +#: TimeTrackerCLI.py:296 +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:1307 +#, python-brace-format msgid "Tasks for '{name}':" msgstr "Úkoly pro '{name}':" +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:524 sl/SL_Menu.py:612 +msgid "Due" +msgstr "Termín" + +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:409 sl/SL_Menu.py:419 sl/SL_Menu.py:484 +#: sl/SL_Menu.py:546 sl/SL_Menu.py:747 sl/SL_Menu.py:1603 sl/SL_Menu.py:1771 +msgid "Today" +msgstr "Dnes" + +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:2276 +#, python-brace-format msgid "No tasks found for '{name}'." msgstr "Pro '{name}' nebyly nalezeny žádné úkoly." -msgid "\n--- Rename Task ---" -msgstr "\n--- Přejmenovat úkol ---" +#: TimeTrackerCLI.py:322 +msgid "" +"\n" +"--- Rename Task ---" +msgstr "" +"\n" +"--- Přejmenovat úkol ---" -msgid "Select the project:" -msgstr "Vyberte projekt:" +#: TimeTrackerCLI.py:325 TimeTrackerCLI.py:362 TimeTrackerCLI.py:397 +#: TimeTrackerCLI.py:432 TimeTrackerCLI.py:560 +msgid "No open main projects found." +msgstr "Nebyly nalezeny žádné otevřené hlavní projekty." +#: TimeTrackerCLI.py:328 TimeTrackerCLI.py:365 TimeTrackerCLI.py:400 +#: TimeTrackerCLI.py:435 TimeTrackerCLI.py:599 TimeTrackerCLI.py:852 +msgid "Select the main project:" +msgstr "Vyberte hlavní projekt:" + +#: TimeTrackerCLI.py:338 +#, python-brace-format msgid "No tasks to rename for '{name}'." msgstr "Žádné úkoly k přejmenování pro '{name}'." +#: TimeTrackerCLI.py:341 +#, python-brace-format msgid "Select a task from '{name}' to rename:" msgstr "Vyberte úkol z '{name}' k přejmenování:" +#: TimeTrackerCLI.py:345 TimeTrackerCLI.py:382 TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:453 TimeTrackerCLI.py:489 TimeTrackerCLI.py:580 +#: TimeTrackerCLI.py:867 TimeTrackerCLI.py:982 msgid "Enter the number of the task: " msgstr "Zadejte číslo úkolu: " +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1358 +#, python-brace-format msgid "Task '{old_name}' renamed to '{new_name}'." msgstr "Úkol '{old_name}' byl přejmenován na '{new_name}'." +#: TimeTrackerCLI.py:354 msgid "" -"Error: Could not rename. The new name might already exist or the project " -"was not found." +"Error: Could not rename. The new name might already exist or the project was" +" not found." msgstr "" "Chyba: Nelze přejmenovat. Nový název již možná existuje nebo projekt nebyl " "nalezen." -msgid "\n--- Delete Task ---" -msgstr "\n--- Smazat úkol ---" +#: TimeTrackerCLI.py:359 +msgid "" +"\n" +"--- Close Task ---" +msgstr "" +"\n" +"--- Zavřít úlohu ---" + +#: TimeTrackerCLI.py:375 +#, python-brace-format +msgid "No open tasks to close for '{name}'." +msgstr "Žádné otevřené úlohy k uzavření pro '{name}'." -msgid "No tasks to delete for '{name}'." -msgstr "Žádné úkoly ke smazání pro '{name}'." +#: TimeTrackerCLI.py:378 +#, python-brace-format +msgid "Select a task from '{name}' to close:" +msgstr "Vyberte úlohu z '{name}', kterou chcete zavřít:" -msgid "Select a task from '{name}' to delete:" -msgstr "Vyberte úkol z '{name}' ke smazání:" +#: TimeTrackerCLI.py:387 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been closed." +msgstr "Úloha '{task_name}' v '{main_name}' byla uzavřena." -msgid "Task '{sub_name}' deleted from '{main_name}'." -msgstr "Úkol '{sub_name}' byl smazán z '{main_name}'." +#: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 +#: sl/SL_Menu.py:945 sl/SL_Menu.py:990 sl/SL_Menu.py:1036 +msgid "Error: Main project or task not found." +msgstr "Chyba: Hlavní projekt nebo úkol nebyl nalezen." -msgid "\n--- List All Closed Tasks ---" -msgstr "\n--- Seznam všech uzavřených úkolů ---" +#: TimeTrackerCLI.py:394 +msgid "" +"\n" +"--- Re-open Task ---" +msgstr "" +"\n" +"--- Znovu otevřít úlohu ---" -msgid "No closed tasks found." -msgstr "Nebyly nalezeny žádné uzavřené úkoly." +#: TimeTrackerCLI.py:410 +#, python-brace-format +msgid "No closed tasks to reopen for '{name}'." +msgstr "Žádné uzavřené úlohy k opětovnému otevření pro '{name}'." -msgid "Error: Project or task not found." -msgstr "Chyba: Projekt nebo úkol nebyl nalezen." +#: TimeTrackerCLI.py:413 +#, python-brace-format +msgid "Select a task from '{name}' to reopen:" +msgstr "Vyberte úlohu z '{name}', kterou chcete znovu otevřít:" -msgid "\n--- List Inactive Tasks ---" -msgstr "\n--- Seznam neaktivních úkolů ---" +#: TimeTrackerCLI.py:422 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been reopened." +msgstr "Úloha '{task_name}' v '{main_name}' byla znovu otevřena." -msgid "Enter the number of weeks without activity (e.g., 4): " -msgstr "Zadejte počet týdnů bez aktivity (např. 4): " +#: TimeTrackerCLI.py:429 +msgid "" +"\n" +"--- Delete Task ---" +msgstr "" +"\n" +"--- Smazat úkol ---" -msgid "\nInactive Tasks (>{weeks} weeks):" -msgstr "\nNeaktivní úkoly (>{weeks} týdnů):" +#: TimeTrackerCLI.py:446 +#, python-brace-format +msgid "No tasks to delete for '{name}'." +msgstr "Žádné úkoly ke smazání pro '{name}'." -msgid " Task: {name}" -msgstr " Úkol: {name}" +#: TimeTrackerCLI.py:449 +#, python-brace-format +msgid "Select a task from '{name}' to delete:" +msgstr "Vyberte úkol z '{name}' ke smazání:" -msgid "No tasks found inactive for more than {weeks} week." -msgid_plural "No tasks found inactive for more than {weeks} weeks." -msgstr[0] "Nebyl nalezen žádný úkol neaktivní déle než {weeks} týden." -msgstr[1] "Nebyly nalezeny žádné úkoly neaktivní déle než {weeks} týdny." -msgstr[2] "Nebyly nalezeny žádné úkoly neaktivní déle než {weeks} týdnů." +#: TimeTrackerCLI.py:458 +#, python-brace-format +msgid "Task '{task_name}' deleted from '{main_name}'." +msgstr "Úloha '{task_name}' byla odstraněna z '{main_name}'." -msgid "\n--- Move Task ---" -msgstr "\n--- Přesunout úkol ---" +#: TimeTrackerCLI.py:466 +msgid "" +"\n" +"--- Move Task ---" +msgstr "" +"\n" +"--- Přesunout úkol ---" -msgid "You need at least two projects to move a task." -msgstr "K přesunutí úkolu potřebujete alespoň dva projekty." +#: TimeTrackerCLI.py:469 +msgid "You need at least two open main projects to move a task." +msgstr "K přesunutí úlohy potřebujete alespoň dva otevřené hlavní projekty." -msgid "Select the source project:" -msgstr "Vyberte zdrojový projekt:" +#: TimeTrackerCLI.py:474 +msgid "Select the source main project:" +msgstr "Vyberte zdrojový hlavní projekt:" -msgid "Enter the number of the source project: " -msgstr "Zadejte číslo zdrojového projektu: " +#: TimeTrackerCLI.py:477 +msgid "Enter the number of the source main project: " +msgstr "Zadejte číslo zdrojového hlavního projektu:" +#: TimeTrackerCLI.py:483 +#, python-brace-format msgid "No tasks to move from '{name}'." msgstr "Žádné úkoly k přesunutí z '{name}'." -msgid "\nSelect a task from '{name}' to move:" -msgstr "\nVyberte úkol z '{name}' k přesunutí:" +#: TimeTrackerCLI.py:486 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to move:" +msgstr "" +"\n" +"Vyberte úkol z '{name}' k přesunutí:" -msgid "\nSelect the destination project:" -msgstr "\nVyberte cílový projekt:" +#: TimeTrackerCLI.py:494 +msgid "" +"\n" +"Select the destination main project:" +msgstr "" +"\n" +"Vyberte cílový hlavní projekt:" -msgid "Enter the number of the destination project: " -msgstr "Zadejte číslo cílového projektu: " +#: TimeTrackerCLI.py:499 +msgid "Enter the number of the destination main project: " +msgstr "Zadejte číslo cílového hlavního projektu:" +#: TimeTrackerCLI.py:505 +#, python-brace-format msgid "" -"Successfully moved '{sub_name}' from '{source_name}' to '{dest_name}'." +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." msgstr "" -"Úkol '{sub_name}' byl úspěšně přesunut z '{source_name}' do " -"'{dest_name}'." +"Úspěšně přesunuto „{task_name}“ z „{source_main_project}“ do " +"„{dest_main_project}“." +#: TimeTrackerCLI.py:507 +#, python-brace-format msgid "Error: {message}" msgstr "Chyba: {message}" -msgid "\n--- Promote Task to Project ---" -msgstr "\n--- Povýšit úkol na projekt ---" +#: TimeTrackerCLI.py:514 +msgid "" +"\n" +"--- List Inactive Tasks ---" +msgstr "" +"\n" +"--- Seznam neaktivních úkolů ---" -msgid "Select the project containing the task to promote:" -msgstr "Vyberte projekt obsahující úkol k povýšení:" +#: TimeTrackerCLI.py:516 +msgid "Enter the number of weeks without activity (e.g., 4): " +msgstr "Zadejte počet týdnů bez aktivity (např. 4): " -msgid "No tasks to promote in '{name}'." -msgstr "Žádné úkoly k povýšení v '{name}'." +#: TimeTrackerCLI.py:524 +#, python-brace-format +msgid "" +"\n" +"Inactive Tasks (>{weeks} weeks):" +msgstr "" +"\n" +"Neaktivní úkoly (>{weeks} týdnů):" -msgid "\nSelect a task from '{name}' to promote:" -msgstr "\nVyberte úkol z '{name}' k povýšení:" +#: TimeTrackerCLI.py:527 +#, python-brace-format +msgid " Task: {name}" +msgstr " Úkol: {name}" -msgid "\n--- Demote Project to Task ---" -msgstr "\n--- Degradovat projekt na úkol ---" +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1118 +#, 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ů." -msgid "You need at least two projects for this operation." -msgstr "Pro tuto operaci potřebujete alespoň dva projekty." +#: TimeTrackerCLI.py:537 +msgid "" +"\n" +"--- List All Closed Tasks ---" +msgstr "" +"\n" +"--- Seznam všech uzavřených úkolů ---" -msgid "Select the project to demote:" -msgstr "Vyberte projekt k degradaci:" +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1143 sl/SL_Menu.py:1166 +msgid "No closed tasks found." +msgstr "Nebyly nalezeny žádné uzavřené úkoly." -msgid "Enter the number of the project to demote: " -msgstr "Zadejte číslo projektu k degradaci: " +#: TimeTrackerCLI.py:547 +msgid "" +"\n" +"--- Delete All Closed Tasks ---" +msgstr "" +"\n" +"--- Smazat všechny uzavřené úkoly ---" -msgid "\nSelect the new parent project:" -msgstr "\nVyberte nový nadřazený projekt:" +#: TimeTrackerCLI.py:548 +msgid "Are you sure you want to delete ALL closed tasks? (y/n): " +msgstr "Opravdu chcete smazat VŠECHNY uzavřené úkoly? (y/n):" -msgid "Enter the number of the new parent project: " -msgstr "Zadejte číslo nového nadřazeného projektu: " +#: TimeTrackerCLI.py:551 +#, python-brace-format +msgid "{count} closed tasks were deleted." +msgstr "{count}uzavřené úkoly byly smazány." -msgid "Invalid choice. Please enter a number from 0 to 17." -msgstr "Neplatná volba. Zadejte prosím číslo od 0 do 17." +#: TimeTrackerCLI.py:553 +msgid "Operation cancelled." +msgstr "Operace zrušena." -msgid "1. Daily Report (Today)" -msgstr "1. Denní zpráva (dnes)" +#: TimeTrackerCLI.py:557 +msgid "" +"\n" +"--- Promote Task to Main-Project ---" +msgstr "" +"\n" +"--- Povýšit úkol na hlavní projekt ---" -msgid "2. Daily Report (Specific Day)" -msgstr "2. Denní zpráva (konkrétní den)" +#: TimeTrackerCLI.py:565 +msgid "Select the main project containing the task to promote:" +msgstr "Vyberte hlavní projekt obsahující úkol k podpoře:" -msgid "3. Date Range Report" -msgstr "3. Zpráva za období" +#: TimeTrackerCLI.py:574 +#, python-brace-format +msgid "No tasks to promote in '{name}'." +msgstr "Žádné úkoly k povýšení v '{name}'." -msgid "4. Detailed Task Report" -msgstr "4. Podrobná zpráva o úkolu" +#: TimeTrackerCLI.py:577 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to promote:" +msgstr "" +"\n" +"Vyberte úkol z '{name}' k povýšení:" -msgid "5. Detailed Project Report" -msgstr "5. Podrobná zpráva o projektu" +#: TimeTrackerCLI.py:593 +msgid "" +"\n" +"--- Edit Task ---" +msgstr "" +"\n" +"--- Upravit úkol ---" -msgid "\n--- Generate Daily Report (Today) ---" -msgstr "\n--- Generovat denní zprávu (dnes) ---" +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:913 sl/SL_Menu.py:958 +#: sl/SL_Menu.py:1003 sl/SL_Menu.py:1049 sl/SL_Menu.py:1198 sl/SL_Menu.py:1328 +#: sl/SL_Menu.py:1487 sl/SL_Menu.py:1677 +msgid "No open projects found." +msgstr "Nebyly nalezeny žádné otevřené projekty." -msgid "\n--- Generate Daily Report for a specific Day ---" -msgstr "\n--- Generovat denní zprávu pro konkrétní den ---" +#: TimeTrackerCLI.py:609 +#, python-brace-format +msgid "No open tasks in '{name}'." +msgstr "Žádné otevřené úkoly v '{name}'." -msgid "Enter the date (YYYY-MM-DD): " -msgstr "Zadejte datum (RRRR-MM-DD): " +#: TimeTrackerCLI.py:612 +msgid "Select a task to edit:" +msgstr "Vyberte úkol, který chcete upravit:" -msgid "Invalid date format. Please use YYYY-MM-DD." -msgstr "Neplatný formát data. Použijte prosím RRRR-MM-DD." +#: TimeTrackerCLI.py:616 +msgid "Enter the number: " +msgstr "Zadejte číslo:" -msgid "\n--- Generate Report for a Date Range ---" -msgstr "\n--- Generovat zprávu za období ---" +#: TimeTrackerCLI.py:623 +#, python-brace-format +msgid "New name (press Enter to keep '{name}'): " +msgstr "Nové jméno (stisknutím klávesy Enter ponechte '{name}'):" -msgid "Enter the start date (YYYY-MM-DD): " -msgstr "Zadejte počáteční datum (RRRR-MM-DD): " +#: TimeTrackerCLI.py:624 +#, python-brace-format +msgid "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " +msgstr "" +"Nové datum splatnosti (RRRR-MM-DD, aktuální: '{due}', pro vymazání zadejte " +"'-'):" -msgid "Enter the end date (YYYY-MM-DD): " -msgstr "Zadejte koncové datum (RRRR-MM-DD): " +#: TimeTrackerCLI.py:627 +#, python-brace-format +msgid "Is this for today? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"Je to dnes? (aktuální:{current}, y/n, ponechejte stisknutím klávesy Enter):" -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." +#: TimeTrackerCLI.py:630 +#, python-brace-format +msgid "Current Note: {note}" +msgstr "Aktuální poznámka:{note}" -msgid "\n--- Detailed Task Report ---" -msgstr "\n--- Podrobná zpráva o úkolu ---" +#: TimeTrackerCLI.py:631 +msgid "New note (press Enter to keep current): " +msgstr "Nová poznámka (aktuální bude zachována stisknutím klávesy Enter):" + +#: TimeTrackerCLI.py:635 +#, python-brace-format +msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"Je tento úkol dokončen? (aktuální:{current}, y/n, pro zachování stiskněte " +"Enter):" -msgid "\nSelect the task for the report:" -msgstr "\nVyberte úkol pro zprávu:" +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:1834 +msgid "Task updated successfully." +msgstr "Úloha byla úspěšně aktualizována." -msgid "\n--- Detailed Project Report ---" -msgstr "\n--- Podrobná zpráva o projektu ---" +#: TimeTrackerCLI.py:641 +msgid "Error updating task." +msgstr "Chyba při aktualizaci úlohy." -msgid "Select the project for the report:" -msgstr "Vyberte projekt pro zprávu:" +#: TimeTrackerCLI.py:643 +msgid "Invalid input." +msgstr "Neplatný vstup." -msgid "Invalid choice. Please enter a number from 0 to 5." -msgstr "Neplatná volba. Zadejte prosím číslo od 0 do 5." +#: TimeTrackerCLI.py:648 +msgid "Invalid choice. Please enter a number from 0 to 11." +msgstr "Neplatná volba. Zadejte číslo od 0 do 11." -msgid "\n--- Settings ---" -msgstr "\n--- Nastavení ---" +#: TimeTrackerCLI.py:653 +msgid "" +"\n" +"--- Settings ---" +msgstr "" +"\n" +"--- Nastavení ---" +#: TimeTrackerCLI.py:654 sl/SL_Menu.py:870 msgid "1. Change Language" msgstr "1. Změnit jazyk" +#: TimeTrackerCLI.py:655 sl/SL_Menu.py:871 +msgid "2. Restore Previous Version" +msgstr "2. Obnovit předchozí verzi" + +#: TimeTrackerCLI.py:656 sl/SL_Menu.py:872 msgid "3. Change Data Storage Location" msgstr "3. Změnit umístění úložiště dat" -msgid "2. Restore Previous Version" -msgstr "2. Obnovit předchozí verzi" +#: TimeTrackerCLI.py:657 sl/SL_Menu.py:874 +msgid "4. Change Streamlit Port" +msgstr "4. Změňte Streamlit Port" + +#: TimeTrackerCLI.py:659 TimeTrackerCLI.py:698 TimeTrackerCLI.py:808 +#: sl/SL_Menu.py:881 +msgid "0. Back to Main Menu" +msgstr "0. Zpět do hlavní nabídky" + +#: TimeTrackerCLI.py:682 +msgid "Invalid choice. Please enter a number from 0 to 4." +msgstr "Neplatná volba. Zadejte číslo od 0 do 4." + +#: TimeTrackerCLI.py:687 +msgid "" +"\n" +"--- Language Settings ---" +msgstr "" +"\n" +"--- Nastavení jazyka ---" +#: TimeTrackerCLI.py:692 msgid "No additional languages found." msgstr "Nebyly nalezeny žádné další jazyky." +#: TimeTrackerCLI.py:716 +#, python-brace-format msgid "Language changed to '{lang}'. Please restart the application." msgstr "Jazyk změněn na '{lang}'. Prosím, restartujte aplikaci." +#: TimeTrackerCLI.py:719 msgid "Invalid choice." msgstr "Neplatná volba." -msgid "Invalid choice. Please enter a number from 0 to 3." -msgstr "Neplatná volba. Zadejte prosím číslo od 0 do 3." +#: TimeTrackerCLI.py:721 +msgid "Invalid input. Please enter a number." +msgstr "Neplatný vstup. Zadejte číslo." -msgid "\n--- Data Storage Settings ---" -msgstr "\n--- Nastavení úložiště dat ---" +#: TimeTrackerCLI.py:725 +msgid "" +"\n" +"--- Data Storage Settings ---" +msgstr "" +"\n" +"--- Nastavení úložiště dat ---" +#: TimeTrackerCLI.py:726 +#, python-brace-format msgid "Current data file: {path}" msgstr "Aktuální datový soubor: {path}" +#: TimeTrackerCLI.py:728 msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." msgstr "Zadejte novou cestu k datovému souboru (např. /cesta/k/my_data.json)." +#: TimeTrackerCLI.py:729 msgid "Leave empty to cancel." msgstr "Ponechte prázdné pro zrušení." +#: TimeTrackerCLI.py:730 msgid "New Path: " msgstr "Nová cesta: " +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1974 +#, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Chyba: Adresář '{dir}' neexistuje." +#: TimeTrackerCLI.py:752 msgid "Storage location updated." msgstr "Umístění úložiště aktualizováno." +#: TimeTrackerCLI.py:756 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:1985 msgid "Data moved successfully." msgstr "Data byla úspěšně přesunuta." +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1987 +#, python-brace-format msgid "Error moving data: {error}" msgstr "Chyba při přesunu dat: {error}" +#: TimeTrackerCLI.py:764 tt/TimeTracker.py:117 +msgid "Please restart the application for the changes to take effect." +msgstr "Prosím, restartujte aplikaci, aby se změny projevily." + +#: TimeTrackerCLI.py:767 +#, python-brace-format msgid "Error updating configuration: {error}" msgstr "Chyba při aktualizaci konfigurace: {error}" -msgid "\n--- Update Available ---" -msgstr "\n--- K dispozici je aktualizace ---" +#: TimeTrackerCLI.py:771 +msgid "" +"\n" +"--- Streamlit Port Settings ---" +msgstr "" +"\n" +"--- Nastavení streamovaného portu ---" + +#: TimeTrackerCLI.py:781 +#, python-brace-format +msgid "Current Streamlit Port: {port}" +msgstr "Aktuální streamovaný port:{port}" + +#: TimeTrackerCLI.py:783 +msgid "Enter new port (or press Enter to keep current): " +msgstr "" +"Zadejte nový port (nebo stiskněte Enter, chcete-li zachovat aktuální):" + +#: TimeTrackerCLI.py:792 +#, python-brace-format +msgid "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." +msgstr "" +"Port byl aktualizován na{port}. Restartujte Streamlit, aby se změny " +"projevily." + +#: TimeTrackerCLI.py:800 +msgid "" +"\n" +"--- Reporting ---" +msgstr "" +"\n" +"--- Vykazování ---" + +#: TimeTrackerCLI.py:801 +msgid "1. Daily Report (Today)" +msgstr "1. Denní zpráva (dnes)" + +#: TimeTrackerCLI.py:802 +msgid "2. Daily Report (Specific Day)" +msgstr "2. Denní zpráva (konkrétní den)" + +#: TimeTrackerCLI.py:803 +msgid "3. Date Range Report" +msgstr "3. Zpráva za období" + +#: TimeTrackerCLI.py:804 +msgid "4. Detailed Task Report" +msgstr "4. Podrobná zpráva o úkolu" + +#: TimeTrackerCLI.py:805 +msgid "5. Detailed Main-Project Report" +msgstr "5. Podrobná zpráva o hlavním projektu" + +#: TimeTrackerCLI.py:806 +msgid "6. Detailed Daily Report" +msgstr "6. Podrobná denní zpráva" + +#: TimeTrackerCLI.py:815 +msgid "" +"\n" +"--- Generate Daily Report (Today) ---" +msgstr "" +"\n" +"--- Generovat denní zprávu (dnes) ---" + +#: TimeTrackerCLI.py:820 +msgid "" +"\n" +"--- Generate Daily Report for a specific Day ---" +msgstr "" +"\n" +"--- Generovat denní zprávu pro konkrétní den ---" + +#: TimeTrackerCLI.py:821 +msgid "Enter the date (YYYY-MM-DD): " +msgstr "Zadejte datum (RRRR-MM-DD): " + +#: TimeTrackerCLI.py:827 TimeTrackerCLI.py:842 TimeTrackerCLI.py:903 +msgid "Invalid date format. Please use YYYY-MM-DD." +msgstr "Neplatný formát data. Použijte prosím RRRR-MM-DD." + +#: TimeTrackerCLI.py:830 +msgid "" +"\n" +"--- Generate Report for a Date Range ---" +msgstr "" +"\n" +"--- Generovat zprávu za období ---" + +#: TimeTrackerCLI.py:831 +msgid "Enter the start date (YYYY-MM-DD): " +msgstr "Zadejte počáteční datum (RRRR-MM-DD): " + +#: TimeTrackerCLI.py:832 +msgid "Enter the end date (YYYY-MM-DD): " +msgstr "Zadejte koncové datum (RRRR-MM-DD): " + +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2227 +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." + +#: TimeTrackerCLI.py:844 +msgid "" +"\n" +"--- Detailed Task Report ---" +msgstr "" +"\n" +"--- Podrobná zpráva o úkolu ---" + +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1249 +#: sl/SL_Menu.py:1296 sl/SL_Menu.py:1435 sl/SL_Menu.py:2245 sl/SL_Menu.py:2304 +msgid "No projects found." +msgstr "Nebyly nalezeny žádné projekty." + +#: TimeTrackerCLI.py:864 +msgid "" +"\n" +"Select the task for the report:" +msgstr "" +"\n" +"Vyberte úkol pro zprávu:" + +#: TimeTrackerCLI.py:877 +msgid "" +"\n" +"--- Detailed Main-Project Report ---" +msgstr "" +"\n" +"--- Podrobná zpráva o hlavním projektu ---" + +#: TimeTrackerCLI.py:885 +msgid "Select the main project for the report:" +msgstr "Vyberte hlavní projekt pro zprávu:" + +#: TimeTrackerCLI.py:896 +msgid "" +"\n" +"--- Detailed Daily Report ---" +msgstr "" +"\n" +"--- Podrobná denní zpráva ---" + +#: TimeTrackerCLI.py:897 +msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " +msgstr "Zadejte datum (RRRR-MM-DD) nebo stiskněte Enter pro dnešek: " + +#: TimeTrackerCLI.py:911 TimeTrackerCLI.py:1042 +msgid "Invalid choice. Please enter a number from 0 to 6." +msgstr "Neplatná volba. Zadejte prosím číslo od 0 do 6." + +#: TimeTrackerCLI.py:919 +msgid "" +"\n" +"--- Update Available ---" +msgstr "" +"\n" +"--- K dispozici je aktualizace ---" +#: TimeTrackerCLI.py:920 msgid "A downloaded update is ready to be installed." msgstr "Stažená aktualizace je připravena k instalaci." +#: TimeTrackerCLI.py:921 msgid "0. Skip update for now" msgstr "0. Přeskočit aktualizaci prozatím" +#: TimeTrackerCLI.py:922 msgid "1. Install update now" msgstr "1. Nainstalovat aktualizaci nyní" +#: TimeTrackerCLI.py:923 msgid "Enter your choice (0 or 1): " msgstr "Zadejte svou volbu (0 nebo 1): " +#: TimeTrackerCLI.py:927 msgid "Application is restarting to complete the update..." msgstr "Aplikace se restartuje, aby dokončila aktualizaci..." +#: TimeTrackerCLI.py:931 msgid "Update installation skipped. The application will start normally." msgstr "Instalace aktualizace byla přeskočena. Aplikace se spustí normálně." -msgid "=== Time Control {version} ===" -msgstr "=== Time Control {version} ===" +#: TimeTrackerCLI.py:933 +msgid "" +"Invalid choice. Update installation skipped. The application will start " +"normally." +msgstr "" +"Neplatná volba. Instalace aktualizace byla přeskočena. Aplikace se spustí " +"normálně." + +#: TimeTrackerCLI.py:940 +#, python-brace-format +msgid "" +"\n" +"=== Time Control {version} ===" +msgstr "" +"\n" +"=== Řízení času{version}===" +#: TimeTrackerCLI.py:941 msgid "--- Main Menu ---" msgstr "--- Hlavní menu ---" +#: TimeTrackerCLI.py:942 msgid "1. Start work on task" msgstr "1. Začít práci na úkolu" +#: TimeTrackerCLI.py:943 msgid "2. Show current work" msgstr "2. Zobrazit aktuální práci" +#: TimeTrackerCLI.py:944 msgid "3. Stop current work" msgstr "3. Zastavit aktuální práci" +#: TimeTrackerCLI.py:946 msgid "4. Handle projects and tasks" msgstr "4. Spravovat projekty a úkoly" +#: TimeTrackerCLI.py:947 msgid "5. Reporting" msgstr "5. Reportování" +#: TimeTrackerCLI.py:948 msgid "6. Settings" msgstr "6. Nastavení" +#: TimeTrackerCLI.py:950 msgid "0. Exit" msgstr "0. Konec" -msgid "\n--- Start Work on a Task ---" -msgstr "\n--- Začít práci na úkolu ---" +#: TimeTrackerCLI.py:957 +msgid "" +"\n" +"--- Start Work on a Task ---" +msgstr "" +"\n" +"--- Začít práci na úkolu ---" + +#: TimeTrackerCLI.py:963 +msgid "Select a main project:" +msgstr "Vyberte hlavní projekt:" + +#: TimeTrackerCLI.py:974 +#, python-brace-format +msgid "No open tasks found for '{name}' to start work on." +msgstr "" +"Nebyly nalezeny žádné otevřené úkoly pro '{name}', na kterých lze začít " +"pracovat." + +#: TimeTrackerCLI.py:977 +#, python-brace-format +msgid "Select a task from '{name}':" +msgstr "Vyberte úkol z '{name}':" -msgid "Work started on '{sub_name}' in project '{main_name}'." -msgstr "Práce na '{sub_name}' v projektu '{main_name}' byla zahájena." +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:1884 +#, 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:1888 msgid "Error starting work." msgstr "Chyba při zahájení práce." -msgid "\n--- Current Active Work ---" -msgstr "\n--- Aktuální aktivní práce ---" +#: TimeTrackerCLI.py:996 +msgid "" +"\n" +"--- Current Active Work ---" +msgstr "" +"\n" +"--- Aktuální aktivní práce ---" +#: TimeTrackerCLI.py:1006 msgid "You are currently working on:" msgstr "Právě pracujete na:" -msgid " Project: {name}" -msgstr " Projekt: {name}" +#: TimeTrackerCLI.py:1007 +#, python-brace-format +msgid " Main Project: {name}" +msgstr "Hlavní projekt:{name}" -msgid " Task: {name}" -msgstr " Úkol: {name}" +#: TimeTrackerCLI.py:1008 +#, python-brace-format +msgid " Task: {name}" +msgstr "Úkol:{name}" +#: TimeTrackerCLI.py:1009 +#, python-brace-format msgid " Started at: {date}" msgstr " Zahájeno v: {date}" +#: TimeTrackerCLI.py:1010 +#, python-brace-format msgid " Duration: {duration}" msgstr " Trvání: {duration}" +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:373 sl/SL_Menu.py:1910 msgid "No active work session." msgstr "Žádná aktivní pracovní relace." -msgid "\n--- Stop Work ---" -msgstr "\n--- Zastavit práci ---" +#: TimeTrackerCLI.py:1016 +msgid "" +"\n" +"--- Stop Work ---" +msgstr "" +"\n" +"--- Zastavit práci ---" +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:341 msgid "Work session stopped successfully." msgstr "Pracovní relace byla úspěšně zastavena." +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:343 msgid "No active work session to stop." msgstr "Žádná aktivní pracovní relace k zastavení." -msgid "\nChecking for updates..." -msgstr "\nKontroluji aktualizace..." +#: TimeTrackerCLI.py:1034 +msgid "" +"\n" +"Checking for updates..." +msgstr "" +"\n" +"Kontroluji aktualizace..." +#: TimeTrackerCLI.py:1038 msgid "Exiting application. Goodbye!" msgstr "Ukončuji aplikaci. Na shledanou!" -msgid "Invalid choice. Please enter a number from 0 to 6." -msgstr "Neplatná volba. Zadejte prosím číslo od 0 do 6." - -msgid "Warning: Update check skipped. 'github_repo' not found in config.json or file is invalid." -msgstr "Varování: Kontrola aktualizací přeskočena. 'github_repo' nebylo nalezeno v config.json nebo je soubor neplatný." +#: update.py:35 +msgid "" +"Warning: Update check skipped. 'github_repo' not found in config.json or " +"file is invalid." +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." +#: update.py:59 +#, python-brace-format msgid "Error checking for updates: {error}" msgstr "Chyba při kontrole aktualizací: {error}" +#: update.py:61 +#, python-brace-format msgid "An unexpected error occurred while checking for updates: {error}" msgstr "Při kontrole aktualizací došlo k neočekávané chybě: {error}" +#: update.py:73 msgid "Downloading update..." msgstr "Stahuji aktualizaci..." +#: update.py:79 msgid "Download complete. The update will be installed on the next start." -msgstr "Stažení dokončeno. Aktualizace bude nainstalována při příštím spuštění." +msgstr "" +"Stažení dokončeno. Aktualizace bude nainstalována při příštím spuštění." +#: update.py:82 +#, python-brace-format msgid "Error downloading the update: {error}" msgstr "Chyba při stahování aktualizace: {error}" +#: update.py:108 +msgid "Creating backup of current version before update..." +msgstr "Vytváření zálohy aktuální verze před aktualizací..." + +#: update.py:118 +#, python-brace-format +msgid "Backup created successfully as {filename}." +msgstr "Záloha byla úspěšně vytvořena jako{filename}." + +#: update.py:120 +#, python-brace-format +msgid "Warning: Could not create backup. Error: {error}" +msgstr "Varování: Nelze vytvořit zálohu. Chyba:{error}" + +#: update.py:122 msgid "Installing update..." msgstr "Instaluji aktualizaci..." +#: update.py:142 +#, 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 msgid "Update installed successfully." msgstr "Aktualizace byla úspěšně nainstalována." +#: update.py:153 +#, python-brace-format msgid "Error during update installation: {error}" msgstr "Chyba během instalace aktualizace: {error}" -msgid "# Detailed Daily Report: {date}" -msgstr "# Podrobná denní zpráva: {date}" +#: update.py:168 +#, python-brace-format +msgid "Error: No previous version backup '{filename}' found." +msgstr "Chyba: Nebyla nalezena žádná záloha předchozí verze '{filename}'." -msgid "now" -msgstr "nyní" +#: update.py:171 +#, python-brace-format +msgid "Restoring previous version from '{filename}'..." +msgstr "Obnovování předchozí verze z '{filename}'..." -msgid "\nNo time tracked for {date}." -msgstr "\nPro den {date} nebyl zaznamenán žádný čas." +#: update.py:192 +#, python-brace-format +msgid "" +"Skipping user data file: {filename}. It will not be overwritten during " +"restore." +msgstr "" +"Přeskočení souboru uživatelských dat:{filename}. Během obnovy nebude " +"přepsán." -msgid "# Detailed Report for Task: {name}" -msgstr "# Podrobná zpráva o úkolu: {name}" +#: update.py:199 +msgid "Previous version restored successfully." +msgstr "Předchozí verze byla úspěšně obnovena." -msgid "Part of Project: {name}" -msgstr "Součást projektu: {name}" +#: update.py:201 +msgid "Restarting application to apply changes..." +msgstr "Restartování aplikace za účelem použití změn..." -msgid "Active (currently running)" -msgstr "Aktivní (právě běží)" +#: update.py:204 +#, python-brace-format +msgid "Error during restoration: {error}" +msgstr "Chyba při obnovování:{error}" -msgid "Inactive" -msgstr "Neaktivní" +#: update.py:205 +#, python-brace-format +msgid "The backup file '{filename}' was not deleted." +msgstr "Záložní soubor '{filename}' nebyl odstraněn." -msgid "Status" -msgstr "Stav" +#: update.py:212 +msgid "Error: Could not import TimeTracker to get the current version." +msgstr "Chyba: Nelze importovat TimeTracker pro získání aktuální verze." -msgid "First entry" -msgstr "První záznam" +#: update.py:215 +msgid "Checking for updates..." +msgstr "Kontrola aktualizací..." -msgid "Last activity" -msgstr "Poslední aktivita" +#: update.py:222 +msgid "No updates available." +msgstr "Nejsou k dispozici žádné aktualizace." -msgid "Total recorded time" -msgstr "Celkový zaznamenaný čas" +#: tt/TimeTracker.py:90 +#, python-brace-format +msgid "Warning: Could not read {file}. Error: {error}" +msgstr "Varování: Nelze přečíst soubor {file}. Chyba: {error}" -msgid "Total work sessions" -msgstr "Celkový počet pracovních relací" +#: tt/TimeTracker.py:105 +msgid "Some required packages are missing. Attempting to install them..." +msgstr "Některé požadované balíčky chybí. Pokouším se je nainstalovat..." -msgid "Average session duration" -msgstr "Průměrná délka relace" +#: tt/TimeTracker.py:108 +#, python-brace-format +msgid "Installing {package}..." +msgstr "Instaluji {package}..." -msgid "Weekday Distribution" -msgstr "Rozložení v týdnu" +#: tt/TimeTracker.py:112 +#, python-brace-format +msgid "Failed to install {package}. Continuing without it." +msgstr "Nepodařilo se nainstalovat{package}. Pokračování bez toho." -msgid "Monday" -msgstr "Pondělí" +#: tt/TimeTracker.py:116 +msgid "" +"\n" +"Dependencies installed successfully." +msgstr "" +"\n" +"Závislosti byly úspěšně nainstalovány." -msgid "Tuesday" -msgstr "Úterý" +#: tt/TimeTracker.py:120 +#, python-brace-format +msgid "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" +msgstr "" +"\n" +"Upozornění: Některé závislosti nelze nainstalovat:{packages}" -msgid "Wednesday" -msgstr "Středa" +#: tt/TimeTracker.py:122 +#, python-brace-format +msgid "An unexpected error occurred during dependency check: {error}" +msgstr "Během kontroly závislostí došlo k neočekávané chybě: {error}" -msgid "Thursday" -msgstr "Čtvrtek" +#: tt/TimeTracker.py:229 +msgid "Info: Report content has been copied to the clipboard." +msgstr "Info: Obsah zprávy byl zkopírován do schránky." -msgid "Friday" -msgstr "Pátek" +#: tt/TimeTracker.py:231 +#, python-brace-format +msgid "Warning: Could not copy to clipboard. Error: {error}" +msgstr "Varování: Nelze kopírovat do schránky. Chyba: {error}" -msgid "Saturday" -msgstr "Sobota" +#: tt/TimeTracker.py:233 +msgid "" +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." +msgstr "" +"Varování: Nelze kopírovat do schránky. Prosím, nainstalujte 'pyperclip' " +"(`pip install pyperclip`)." -msgid "Sunday" -msgstr "Neděle" +#: tt/TimeTracker.py:253 +#, python-brace-format +msgid "{hours} hours ({dlp} DLP)" +msgstr "{hours}hodin ({dlp}DLP)" + +#: tt/TimeTracker.py:846 tt/TimeTracker.py:886 +#, python-brace-format +msgid "Source main project '{name}' not found." +msgstr "Zdrojový hlavní projekt '{name}' nebyl nalezen." + +#: tt/TimeTracker.py:848 +#, python-brace-format +msgid "Destination main project '{name}' not found." +msgstr "Cílový hlavní projekt '{name}' nebyl nalezen." + +#: tt/TimeTracker.py:860 +#, python-brace-format +msgid "Task '{task_name}' moved successfully." +msgstr "Úloha '{task_name}' byla úspěšně přesunuta." + +#: tt/TimeTracker.py:861 tt/TimeTracker.py:896 tt/TimeTracker.py:1373 +#, python-brace-format +msgid "Task '{task_name}' not found in '{main_name}'." +msgstr "Úloha '{task_name}' nebyla nalezena v '{main_name}'." + +#: tt/TimeTracker.py:880 +#, python-brace-format +msgid "A main project named '{name}' already exists." +msgstr "Hlavní projekt s názvem '{name}' již existuje." + +#: tt/TimeTracker.py:905 +msgid "General" +msgstr "Obecné" -msgid "Daily Breakdown" -msgstr "Denní rozpis" +#: tt/TimeTracker.py:909 +#, python-brace-format +msgid "Task '{task_name}' was promoted to a new main project." +msgstr "Úloha '{task_name}' byla povýšena na nový hlavní projekt." -msgid "Duration" -msgstr "Trvání" +#: tt/TimeTracker.py:936 +#, python-brace-format +msgid "Main project to demote '{name}' not found." +msgstr "Hlavní projekt ke snížení úrovně '{name}' nebyl nalezen." -msgid "# Detailed Report for Project: {name}" -msgstr "# Podrobná zpráva o projektu: {name}" +#: tt/TimeTracker.py:938 +#, python-brace-format +msgid "New parent main project '{name}' not found." +msgstr "Nový nadřazený hlavní projekt '{name}' nebyl nalezen." -msgid "Number of tasks" -msgstr "Počet úkolů" +#: tt/TimeTracker.py:963 +#, python-brace-format +msgid "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." +msgstr "" +"Hlavní projekt '{demoted_name}' byl degradován na dílčí projekt pod " +"'{parent_name}'." -msgid "Active (working on '{sub_name}')" -msgstr "Aktivní (práce na '{sub_name}')" +#: tt/TimeTracker.py:1042 +msgid "Email import is not enabled." +msgstr "Import e-mailů není povolen." +#: tt/TimeTracker.py:1051 +msgid "Email settings are incomplete." +msgstr "Nastavení e-mailu jsou neúplná." + +#: tt/TimeTracker.py:1064 +msgid "Error searching emails." +msgstr "Chyba při vyhledávání e-mailů." + +#: tt/TimeTracker.py:1079 +msgid "No Subject" +msgstr "Bez předmětu" + +#: tt/TimeTracker.py:1139 +msgid "Unknown Task" +msgstr "Neznámý úkol" + +#: tt/TimeTracker.py:1330 +#, python-brace-format +msgid "- {name}: {hours} hours" +msgstr "-{name}:{hours}hodin" + +#: tt/TimeTracker.py:1338 +#, python-brace-format +msgid "## {name} ({hours} hours)\n" +msgstr "##{name}({hours}hodin)\n" + +#: tt/TimeTracker.py:1347 +#, python-brace-format +msgid "# Daily Time Report: {date}\n" +msgstr "# Denní zpráva o čase: {date}\n" + +#: tt/TimeTracker.py:1348 +#, python-brace-format +msgid "" +"\n" +"**Total Daily Time: {hours} hours**" +msgstr "" +"\n" +"**Celkový denní čas: {hours} hodin**" + +#: tt/TimeTracker.py:1352 tt/TimeTracker.py:1665 +#, python-brace-format +msgid "No time tracked for {date}." +msgstr "Pro den {date} nebyl zaznamenán žádný čas." + +#: tt/TimeTracker.py:1369 tt/TimeTracker.py:1464 +#, python-brace-format +msgid "Main project '{name}' not found." +msgstr "Hlavní projekt '{name}' nebyl nalezen." + +#: tt/TimeTracker.py:1377 +#, 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:1410 tt/TimeTracker.py:1640 +msgid "now" +msgstr "nyní" + +#: tt/TimeTracker.py:1411 sl/SL_Menu.py:1908 +msgid "Duration" +msgstr "Trvání" + +#: tt/TimeTracker.py:1415 +#, python-brace-format +msgid "# Detailed Report for Task: {name}" +msgstr "# Podrobná zpráva o úkolu: {name}" + +#: tt/TimeTracker.py:1416 +#, python-brace-format +msgid "Part of Main Project: {name}" +msgstr "Část hlavního projektu:{name}" + +#: tt/TimeTracker.py:1419 +msgid "Active (currently running)" +msgstr "Aktivní (právě běží)" + +#: tt/TimeTracker.py:1419 tt/TimeTracker.py:1516 +msgid "Inactive" +msgstr "Neaktivní" + +#: tt/TimeTracker.py:1420 tt/TimeTracker.py:1517 +msgid "Status" +msgstr "Stav" + +#: tt/TimeTracker.py:1422 tt/TimeTracker.py:1519 +msgid "First entry" +msgstr "První záznam" + +#: tt/TimeTracker.py:1424 tt/TimeTracker.py:1521 +msgid "Last activity" +msgstr "Poslední aktivita" + +#: tt/TimeTracker.py:1426 tt/TimeTracker.py:1523 +msgid "Total recorded time" +msgstr "Celkový zaznamenaný čas" + +#: tt/TimeTracker.py:1427 tt/TimeTracker.py:1525 +msgid "Total work sessions" +msgstr "Celkový počet pracovních relací" + +#: tt/TimeTracker.py:1431 tt/TimeTracker.py:1529 +msgid "Average session duration" +msgstr "Průměrná délka relace" + +#: tt/TimeTracker.py:1434 tt/TimeTracker.py:1532 +msgid "Weekday Distribution" +msgstr "Rozložení v týdnu" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Monday" +msgstr "Pondělí" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Tuesday" +msgstr "Úterý" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Wednesday" +msgstr "Středa" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Thursday" +msgstr "Čtvrtek" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Friday" +msgstr "Pátek" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Saturday" +msgstr "Sobota" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Sunday" +msgstr "Neděle" + +#: tt/TimeTracker.py:1444 +msgid "Daily Breakdown" +msgstr "Denní rozpis" + +#: tt/TimeTracker.py:1513 +#, python-brace-format +msgid "# Detailed Report for Main Project: {name}" +msgstr "# Podrobná zpráva pro hlavní projekt:{name}" + +#: tt/TimeTracker.py:1516 +#, python-brace-format +msgid "Active (working on '{task_name}')" +msgstr "Aktivní (pracuje se na '{task_name}')" + +#: tt/TimeTracker.py:1524 +msgid "Number of tasks" +msgstr "Počet úkolů" + +#: tt/TimeTracker.py:1543 msgid "Task Breakdown" msgstr "Rozpis úkolů" +#: tt/TimeTracker.py:1552 +#, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} relací" -msgid "\n--- Detailed Daily Report ---" -msgstr "\n--- Podrobná denní zpráva ---" +#: tt/TimeTracker.py:1605 +#, python-brace-format +msgid "# Time Report: {start_date} to {end_date}\n" +msgstr "# Zpráva o čase: od {start_date} do {end_date}\n" -msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " -msgstr "Zadejte datum (RRRR-MM-DD) nebo stiskněte Enter pro dnešek: " +#: tt/TimeTracker.py:1606 +#, python-brace-format +msgid "" +"\n" +"**Total Time in Period: {total_time}**" +msgstr "" +"\n" +"**Celkový čas v období: {total_time}**" -msgid "Project Management" -msgstr "Správa projektů" +#: tt/TimeTracker.py:1610 +#, 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." -msgid "Reporting" -msgstr "Reportování" +#: tt/TimeTracker.py:1626 +#, python-brace-format +msgid "# Detailed Daily Report: {date}" +msgstr "# Podrobná denní zpráva: {date}" -msgid "Settings" -msgstr "Nastavení" +#: sl/SL_Menu.py:277 +msgid "New" +msgstr "Nové" -msgid "Task Management" -msgstr "Správa úkolů" +#: sl/SL_Menu.py:278 +msgid "New Project" +msgstr "Nový projekt" + +#: sl/SL_Menu.py:281 +msgid "New Task" +msgstr "Nový úkol" +#: sl/SL_Menu.py:286 +msgid "Project & Task Management" +msgstr "Správa projektů a úkolů" + +#: sl/SL_Menu.py:287 sl/SL_Menu.py:780 +msgid "Main Project Management" +msgstr "Hlavní správa projektů" + +#: sl/SL_Menu.py:288 sl/SL_Menu.py:796 sl/SL_Menu.py:894 +msgid "Add Project" +msgstr "Přidat projekt" + +#: sl/SL_Menu.py:291 sl/SL_Menu.py:799 sl/SL_Menu.py:1242 msgid "List Projects" msgstr "Vypsat projekty" +#: sl/SL_Menu.py:292 sl/SL_Menu.py:800 sl/SL_Menu.py:1257 msgid "Rename Project" msgstr "Přejmenovat projekt" +#: sl/SL_Menu.py:293 sl/SL_Menu.py:801 sl/SL_Menu.py:1371 sl/SL_Menu.py:1384 +msgid "Close Project" +msgstr "Zavřít projekt" + +#: sl/SL_Menu.py:294 sl/SL_Menu.py:802 sl/SL_Menu.py:1401 sl/SL_Menu.py:1414 msgid "Re-open Project" msgstr "Znovu otevřít projekt" +#: sl/SL_Menu.py:295 sl/SL_Menu.py:803 sl/SL_Menu.py:1431 sl/SL_Menu.py:1445 msgid "Delete Project" msgstr "Smazat projekt" +#: sl/SL_Menu.py:296 sl/SL_Menu.py:804 sl/SL_Menu.py:1462 +msgid "List Inactive Projects" +msgstr "Seznam neaktivních projektů" + +#: sl/SL_Menu.py:297 sl/SL_Menu.py:805 msgid "Demote Project to Task" msgstr "Degradovat projekt na úkol" +#: sl/SL_Menu.py:298 sl/SL_Menu.py:806 sl/SL_Menu.py:1524 msgid "List Completed Projects" msgstr "Vypsat dokončené projekty" +#: sl/SL_Menu.py:300 sl/SL_Menu.py:782 sl/SL_Menu.py:817 +msgid "Task Management" +msgstr "Správa úkolů" + +#: sl/SL_Menu.py:301 sl/SL_Menu.py:819 sl/SL_Menu.py:1542 sl/SL_Menu.py:1573 +#: sl/SL_Menu.py:1646 msgid "Add Task" msgstr "Přidat úkol" +#: sl/SL_Menu.py:304 sl/SL_Menu.py:822 sl/SL_Menu.py:1292 msgid "List Tasks" msgstr "Vypsat úkoly" +#: sl/SL_Menu.py:305 sl/SL_Menu.py:823 sl/SL_Menu.py:1324 msgid "Rename Task" msgstr "Přejmenovat úkol" +#: sl/SL_Menu.py:306 sl/SL_Menu.py:824 sl/SL_Menu.py:909 sl/SL_Menu.py:935 +#: sl/SL_Menu.py:1114 msgid "Close Task" msgstr "Uzavřít úkol" +#: sl/SL_Menu.py:307 sl/SL_Menu.py:825 sl/SL_Menu.py:954 sl/SL_Menu.py:980 msgid "Re-open Task" msgstr "Znovu otevřít úkol" +#: sl/SL_Menu.py:308 sl/SL_Menu.py:826 sl/SL_Menu.py:999 sl/SL_Menu.py:1026 msgid "Delete Task" msgstr "Smazat úkol" +#: sl/SL_Menu.py:309 sl/SL_Menu.py:827 sl/SL_Menu.py:1045 sl/SL_Menu.py:1081 msgid "Move Task" msgstr "Přesunout úkol" +#: sl/SL_Menu.py:310 sl/SL_Menu.py:828 sl/SL_Menu.py:1100 msgid "List Inactive Tasks" msgstr "Vypsat neaktivní úkoly" +#: sl/SL_Menu.py:311 sl/SL_Menu.py:829 sl/SL_Menu.py:1127 msgid "List All Closed Tasks" msgstr "Vypsat všechny uzavřené úkoly" +#: sl/SL_Menu.py:312 sl/SL_Menu.py:477 sl/SL_Menu.py:539 sl/SL_Menu.py:626 +#: sl/SL_Menu.py:830 sl/SL_Menu.py:1673 sl/SL_Menu.py:1693 sl/SL_Menu.py:1728 +msgid "Edit Task" +msgstr "Upravit úkol" + +#: sl/SL_Menu.py:315 sl/SL_Menu.py:833 sl/SL_Menu.py:1152 msgid "Delete All Closed Tasks" msgstr "Smazat všechny uzavřené úkoly" +#: sl/SL_Menu.py:316 sl/SL_Menu.py:834 sl/SL_Menu.py:1194 msgid "Promote Task to Project" msgstr "Povýšit úkol na projekt" +#: sl/SL_Menu.py:319 +msgid "Today View" +msgstr "Dnes Zobrazit" + +#: sl/SL_Menu.py:323 sl/SL_Menu.py:405 +msgid "Task Planning" +msgstr "Plánování úkolů" + +#: sl/SL_Menu.py:327 sl/SL_Menu.py:655 +msgid "E-Mail Task Assignment" +msgstr "Zadání úkolu E-" + +#: sl/SL_Menu.py:331 sl/SL_Menu.py:473 sl/SL_Menu.py:535 sl/SL_Menu.py:622 +msgid "Start work on task" +msgstr "Začít práci na úkolu" + +#: sl/SL_Menu.py:335 +msgid "Show current work" +msgstr "Zobrazit aktuální práci" + +#: sl/SL_Menu.py:339 +msgid "Stop current work" +msgstr "Zastavit aktuální práci" + +#: sl/SL_Menu.py:347 sl/SL_Menu.py:845 +msgid "Reporting" +msgstr "Reportování" + +#: sl/SL_Menu.py:348 sl/SL_Menu.py:848 msgid "Daily Report (Today)" msgstr "Denní zpráva (dnes)" +#: sl/SL_Menu.py:352 sl/SL_Menu.py:853 sl/SL_Menu.py:2195 msgid "Daily Report (Specific Day)" msgstr "Denní zpráva (konkrétní den)" +#: sl/SL_Menu.py:354 sl/SL_Menu.py:854 sl/SL_Menu.py:2214 msgid "Date Range Report" msgstr "Zpráva za období" +#: sl/SL_Menu.py:356 sl/SL_Menu.py:855 sl/SL_Menu.py:2241 sl/SL_Menu.py:2272 msgid "Detailed Task Report" msgstr "Podrobná zpráva o úkolu" +#: sl/SL_Menu.py:358 sl/SL_Menu.py:856 sl/SL_Menu.py:2300 msgid "Detailed Project Report" msgstr "Podrobná zpráva o projektu" +#: sl/SL_Menu.py:360 sl/SL_Menu.py:857 sl/SL_Menu.py:2327 msgid "Detailed Daily Report" msgstr "Podrobná denní zpráva" -msgid "Main Project Management" -msgstr "Hlavní správa projektů" +#: sl/SL_Menu.py:364 sl/SL_Menu.py:868 +msgid "Settings" +msgstr "Nastavení" -msgid "Start work on task" -msgstr "Začít práci na úkolu" +#: sl/SL_Menu.py:371 sl/SL_Menu.py:1897 +msgid "Current Active Work" +msgstr "Aktuální aktivní práce" -msgid "Show current work" -msgstr "Zobrazit aktuální práci" +#: sl/SL_Menu.py:376 sl/SL_Menu.py:497 sl/SL_Menu.py:559 sl/SL_Menu.py:633 +#: sl/SL_Menu.py:1773 +msgid "Done" +msgstr "Hotovo" -msgid "Stop current work" -msgstr "Zastavit aktuální práci" +#: sl/SL_Menu.py:390 +msgid "Edit current task" +msgstr "Upravit aktuální úkol" -msgid "Select Project" -msgstr "Vybrat projekt" +#: sl/SL_Menu.py:398 +msgid "Exit" +msgstr "Konec" + +#: sl/SL_Menu.py:410 sl/SL_Menu.py:420 +msgid "Tomorrow" +msgstr "Zítra" + +#: sl/SL_Menu.py:411 sl/SL_Menu.py:421 +msgid "Weekly overview" +msgstr "Týdenní přehled" + +#: sl/SL_Menu.py:412 sl/SL_Menu.py:422 +msgid "Overdue tasks" +msgstr "Zpožděné úkoly" + +#: sl/SL_Menu.py:413 sl/SL_Menu.py:423 +msgid "Unplanned tasks" +msgstr "Neplánované úkoly" + +#: sl/SL_Menu.py:414 +msgid "All" +msgstr "Vše" + +#: sl/SL_Menu.py:416 +msgid "Filter" +msgstr "Filtr" + +#: sl/SL_Menu.py:430 +msgid "Tasks" +msgstr "Úkoly" + +#: sl/SL_Menu.py:572 +msgid "No tasks found." +msgstr "Nebyly nalezeny žádné úkoly." + +#: sl/SL_Menu.py:574 sl/SL_Menu.py:648 sl/SL_Menu.py:770 sl/SL_Menu.py:810 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:914 sl/SL_Menu.py:925 sl/SL_Menu.py:959 +#: sl/SL_Menu.py:970 sl/SL_Menu.py:1004 sl/SL_Menu.py:1015 sl/SL_Menu.py:1050 +#: sl/SL_Menu.py:1061 sl/SL_Menu.py:1069 sl/SL_Menu.py:1120 sl/SL_Menu.py:1145 +#: sl/SL_Menu.py:1167 sl/SL_Menu.py:1199 sl/SL_Menu.py:1210 sl/SL_Menu.py:1250 +#: sl/SL_Menu.py:1262 sl/SL_Menu.py:1297 sl/SL_Menu.py:1317 sl/SL_Menu.py:1329 +#: sl/SL_Menu.py:1340 sl/SL_Menu.py:1376 sl/SL_Menu.py:1406 sl/SL_Menu.py:1436 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1488 sl/SL_Menu.py:1535 sl/SL_Menu.py:1547 +#: sl/SL_Menu.py:1678 sl/SL_Menu.py:1697 sl/SL_Menu.py:1710 sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1858 sl/SL_Menu.py:1868 sl/SL_Menu.py:1912 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:2102 sl/SL_Menu.py:2207 sl/SL_Menu.py:2234 sl/SL_Menu.py:2246 +#: sl/SL_Menu.py:2258 sl/SL_Menu.py:2277 sl/SL_Menu.py:2293 sl/SL_Menu.py:2305 +#: sl/SL_Menu.py:2320 sl/SL_Menu.py:2339 sl/SL_Menu.py:2380 sl/SL_Menu.py:2395 +msgid "Back" +msgstr "Zpět" -msgid "Select Task" -msgstr "Vybrat úkol" +#: sl/SL_Menu.py:581 +msgid "Today's Tasks" +msgstr "Dnešní úkoly" + +#: sl/SL_Menu.py:646 +msgid "No tasks for today." +msgstr "Žádné úkoly na dnešek." + +#: sl/SL_Menu.py:661 +msgid "Fetching emails..." +msgstr "Načítání e-mailů..." +#: sl/SL_Menu.py:664 +#, python-brace-format +msgid "Error fetching emails: {error}" +msgstr "Chyba při načítání e-mailů:{error}" + +#: sl/SL_Menu.py:667 +#, 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:669 +msgid "No new emails found." +msgstr "Nebyly nalezeny žádné nové e-maily." + +#: sl/SL_Menu.py:675 +msgid "No unassigned email tasks available." +msgstr "Nejsou k dispozici žádné nepřiřazené e-mailové úkoly." + +#: sl/SL_Menu.py:687 +msgid "Assign Project" +msgstr "Přiřadit projekt" + +#: sl/SL_Menu.py:698 +msgid "Are you sure you want to delete this task?" +msgstr "Opravdu chcete smazat tento úkol?" + +#: sl/SL_Menu.py:701 +msgid "Yes, delete" +msgstr "Ano, smazat" + +#: sl/SL_Menu.py:706 +msgid "No, cancel" +msgstr "Ne, zrušit" + +#: sl/SL_Menu.py:713 +msgid "Delete" +msgstr "Smazat" + +#: sl/SL_Menu.py:717 +msgid "Edit Details" +msgstr "Upravit podrobnosti" + +#: sl/SL_Menu.py:725 sl/SL_Menu.py:1757 +msgid "Task Name" +msgstr "Název úkolu" + +#: sl/SL_Menu.py:734 sl/SL_Menu.py:1761 +msgid "Due Date" +msgstr "Termín" + +#: sl/SL_Menu.py:742 sl/SL_Menu.py:1765 +msgid "Clear" +msgstr "Vymazat" + +#: sl/SL_Menu.py:749 sl/SL_Menu.py:1634 sl/SL_Menu.py:1804 +msgid "Notes (Markdown)" +msgstr "Poznámky (označení)" + +#: sl/SL_Menu.py:751 sl/SL_Menu.py:1816 +msgid "Save Changes" +msgstr "Uložit změny" + +#: sl/SL_Menu.py:762 +msgid "Task details updated successfully." +msgstr "Podrobnosti úkolu byly úspěšně aktualizovány." + +#: sl/SL_Menu.py:768 +msgid "Error updating task details." +msgstr "Při aktualizaci podrobností úkolu došlo k chybě." + +#: sl/SL_Menu.py:778 sl/SL_Menu.py:794 +msgid "Project Management" +msgstr "Správa projektů" + +#: sl/SL_Menu.py:787 sl/SL_Menu.py:861 msgid "Back to Main Menu" msgstr "Zpět do hlavního menu" -msgid "Time Control" -msgstr "Kontrola času" +#: sl/SL_Menu.py:873 sl/SL_Menu.py:2000 +msgid "Report Format" +msgstr "Formát zprávy" +#: sl/SL_Menu.py:875 sl/SL_Menu.py:2159 +msgid "Email Settings" +msgstr "Nastavení e-mailu" + +#: sl/SL_Menu.py:876 sl/SL_Menu.py:2020 msgid "Change CSS Style" msgstr "Změnit styl CSS" +#: sl/SL_Menu.py:877 sl/SL_Menu.py:2058 msgid "Change View Mode" msgstr "Změnit režim zobrazení" -msgid "Back" -msgstr "Zpět" +#: sl/SL_Menu.py:890 +msgid "Add New Project" +msgstr "Přidat nový projekt" + +#: sl/SL_Menu.py:893 +msgid "Name of the project" +msgstr "Název projektu" + +#: sl/SL_Menu.py:897 +#, python-brace-format +msgid "Project '{name}' added." +msgstr "Projekt '{name}' byl přidán." +#: sl/SL_Menu.py:901 sl/SL_Menu.py:947 sl/SL_Menu.py:992 sl/SL_Menu.py:1038 +#: sl/SL_Menu.py:1093 sl/SL_Menu.py:1187 sl/SL_Menu.py:1235 sl/SL_Menu.py:1285 +#: sl/SL_Menu.py:1364 sl/SL_Menu.py:1394 sl/SL_Menu.py:1424 sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1517 sl/SL_Menu.py:1557 sl/SL_Menu.py:1666 sl/SL_Menu.py:1685 +#: sl/SL_Menu.py:1843 sl/SL_Menu.py:1890 sl/SL_Menu.py:1934 sl/SL_Menu.py:1995 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2051 sl/SL_Menu.py:2084 sl/SL_Menu.py:2152 +#: sl/SL_Menu.py:2188 msgid "Cancel" msgstr "Zrušit" -msgid "Next" -msgstr "Další" +#: sl/SL_Menu.py:919 sl/SL_Menu.py:964 sl/SL_Menu.py:1009 sl/SL_Menu.py:1204 +#: sl/SL_Menu.py:1267 sl/SL_Menu.py:1302 sl/SL_Menu.py:1334 sl/SL_Menu.py:1383 +#: sl/SL_Menu.py:1413 sl/SL_Menu.py:1443 sl/SL_Menu.py:1863 sl/SL_Menu.py:2251 +#: sl/SL_Menu.py:2312 +msgid "Select Project" +msgstr "Vybrat projekt" -msgid "Save" -msgstr "Uložit" +#: sl/SL_Menu.py:924 +#, python-brace-format +msgid "No open tasks to close in '{name}'." +msgstr "Žádné otevřené úkoly k uzavření v '{name}'." -msgid "Add Project" -msgstr "Přidat projekt" +#: sl/SL_Menu.py:931 sl/SL_Menu.py:976 sl/SL_Menu.py:1021 sl/SL_Menu.py:1075 +#: sl/SL_Menu.py:1216 sl/SL_Menu.py:1344 sl/SL_Menu.py:1700 sl/SL_Menu.py:1874 +#: sl/SL_Menu.py:2282 +msgid "Select Task" +msgstr "Vybrat úkol" -msgid "Close Project" -msgstr "Zavřít projekt" +#: sl/SL_Menu.py:941 +#, 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:969 +#, 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:986 +#, 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:1014 +#, 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:1025 +msgid "This action cannot be undone." +msgstr "Tuto akci nelze vrátit zpět." + +#: sl/SL_Menu.py:1032 +#, 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:1055 +msgid "Select Source Project" +msgstr "Vybrat zdrojový projekt" + +#: sl/SL_Menu.py:1060 +#, python-brace-format +msgid "No tasks found in '{name}'." +msgstr "V '{name}' nebyly nalezeny žádné úkoly." + +#: sl/SL_Menu.py:1068 +msgid "No other projects available to move to." +msgstr "Žádné další projekty k přesunu." + +#: sl/SL_Menu.py:1079 sl/SL_Menu.py:1503 +msgid "Select Target Project" +msgstr "Vybrat cílový projekt" + +#: sl/SL_Menu.py:1087 +#, python-brace-format +msgid "Task '{sub}' moved from '{src}' to '{dst}'." +msgstr "Úloha '{sub}' přesunuta z '{src}' do '{dst}'." + +#: sl/SL_Menu.py:1091 +msgid "Error: Could not move task." +msgstr "Chyba: Úkol nelze přesunout." + +#: sl/SL_Menu.py:1102 sl/SL_Menu.py:1464 +msgid "Weeks of inactivity" +msgstr "Týdny neaktivity" + +#: sl/SL_Menu.py:1107 +#, python-brace-format +msgid "Inactive Tasks (> {weeks} weeks):" +msgstr "Neaktivní úkoly (>{weeks}týdnů):" + +#: sl/SL_Menu.py:1112 sl/SL_Menu.py:1472 +msgid "Last Activity" +msgstr "Poslední aktivita" + +#: sl/SL_Menu.py:1171 +#, python-brace-format +msgid "" +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." +msgstr "" +"Opravdu chcete smazat{count}uzavřené úkoly? Tuto akci nelze vrátit zpět." + +#: sl/SL_Menu.py:1173 +msgid "Show projects to delete" +msgstr "Zobrazit projekty k odstranění" + +#: sl/SL_Menu.py:1177 +msgid "Delete All" +msgstr "Smazat vše" + +#: sl/SL_Menu.py:1183 +#, python-brace-format +msgid "Successfully deleted {count} tasks." +msgstr "Úspěšně odstraněno{count}úkolů." + +#: sl/SL_Menu.py:1209 +#, 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:1220 +msgid "" +"This will create a new Project with the task's name and move all time " +"entries to a 'General' task within it." +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:1222 +msgid "Promote to Project" +msgstr "Povýšit na projekt" + +#: sl/SL_Menu.py:1261 +msgid "No open projects to rename." +msgstr "Žádné otevřené projekty k přejmenování." + +#: sl/SL_Menu.py:1270 sl/SL_Menu.py:1349 +msgid "New Name" +msgstr "Nové jméno" + +#: sl/SL_Menu.py:1271 sl/SL_Menu.py:1350 +msgid "Rename" +msgstr "Přejmenovat" + +#: sl/SL_Menu.py:1275 sl/SL_Menu.py:1354 +msgid "Please enter a new name." +msgstr "Zadejte prosím nový název." + +#: sl/SL_Menu.py:1277 sl/SL_Menu.py:1356 +msgid "New name is the same as the old name." +msgstr "Nový název je stejný jako starý název." + +#: sl/SL_Menu.py:1279 +#, 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:1339 +#, 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:1362 +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:1375 +msgid "No open projects to close." +msgstr "Žádné otevřené projekty k uzavření." +#: sl/SL_Menu.py:1388 +#, python-brace-format +msgid "Project '{name}' has been closed." +msgstr "Projekt '{name}' byl uzavřen." + +#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1422 sl/SL_Menu.py:1453 +msgid "Error: Project not found." +msgstr "Chyba: Projekt nenalezen." + +#: sl/SL_Menu.py:1405 +msgid "No closed projects to reopen." +msgstr "Žádné uzavřené projekty k opětovnému otevření." + +#: sl/SL_Menu.py:1418 +#, python-brace-format +msgid "Project '{name}' has been reopened." +msgstr "Projekt '{name}' byl znovu otevřen." + +#: sl/SL_Menu.py:1444 +msgid "" +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." +msgstr "" +"Tuto akci nelze vrátit zpět. Všechny související úkoly a časové záznamy " +"budou smazány." + +#: sl/SL_Menu.py:1449 +#, python-brace-format +msgid "Project '{name}' has been deleted." +msgstr "Projekt '{name}' byl smazán." + +#: sl/SL_Menu.py:1469 +#, python-brace-format +msgid "Inactive Projects (> {weeks} weeks):" +msgstr "Neaktivní projekty (>{weeks}týdnů):" + +#: sl/SL_Menu.py:1474 +#, 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:1483 sl/SL_Menu.py:1506 msgid "Demote Project" msgstr "Degradovat projekt" +#: sl/SL_Menu.py:1495 +msgid "Select Project to Demote" +msgstr "Vyberte projekt ke snížení úrovně" + +#: sl/SL_Menu.py:1501 +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:1504 +#, 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:1529 +msgid "Projects with only closed or no tasks:" +msgstr "Projekty pouze s uzavřenými nebo žádnými úkoly:" + +#: sl/SL_Menu.py:1533 +msgid "No completed projects found." +msgstr "Nebyly nalezeny žádné dokončené projekty." + +#: sl/SL_Menu.py:1542 sl/SL_Menu.py:1673 sl/SL_Menu.py:2241 +msgid "Step 1: Select Project" +msgstr "Krok 1: Vyberte projekt" + +#: sl/SL_Menu.py:1546 sl/SL_Menu.py:1857 +msgid "No open projects found. Please add one first." +msgstr "Nebyly nalezeny žádné otevřené projekty. Nejprve přidejte jednu." + +#: sl/SL_Menu.py:1551 sl/SL_Menu.py:1680 sl/SL_Menu.py:1905 +msgid "Project" +msgstr "Project" + +#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1681 sl/SL_Menu.py:1705 sl/SL_Menu.py:2253 +msgid "Next" +msgstr "Další" + +#: sl/SL_Menu.py:1568 sl/SL_Menu.py:2267 +msgid "No project selected. Please start again." +msgstr "Nebyl vybrán žádný projekt. Začněte prosím znovu." + +#: sl/SL_Menu.py:1573 +msgid "To Project:" +msgstr "To Project:" + +#: sl/SL_Menu.py:1594 +msgid "Name of the new task" +msgstr "Name of the new task" + +#: sl/SL_Menu.py:1600 +msgid "Due date" +msgstr "Datum splatnosti" + +#: sl/SL_Menu.py:1606 sl/SL_Menu.py:1775 +msgid "Recurring" +msgstr "Opakující se" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "daily" +msgstr "denně" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "on all business days" +msgstr "ve všech pracovních dnech" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "weekly" +msgstr "týdně" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "monthly" +msgstr "měsíčně" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "userdefined" +msgstr "uživatelsky definované" + +#: sl/SL_Menu.py:1624 sl/SL_Menu.py:1797 +msgid "Frequency" +msgstr "Frekvence" + +#: sl/SL_Menu.py:1628 sl/SL_Menu.py:1800 +msgid "Days" +msgstr "Dny" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Edit" +msgstr "Upravit" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Preview" +msgstr "Náhled" + +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1807 +msgid "No notes provided." +msgstr "Nebyly zadány žádné poznámky." + +#: sl/SL_Menu.py:1642 sl/SL_Menu.py:1812 +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:1650 +msgid "Please enter a name." +msgstr "Zadejte prosím jméno." + +#: sl/SL_Menu.py:1661 +#, 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:1693 sl/SL_Menu.py:2272 +msgid "Step 2: Select Task from" +msgstr "Krok 2: Vyberte úkol z" + +#: sl/SL_Menu.py:1696 +msgid "No open tasks found." +msgstr "Nebyly nalezeny žádné otevřené úkoly." + +#: sl/SL_Menu.py:1724 +msgid "Task not found." +msgstr "Úkol nenalezen." + +#: sl/SL_Menu.py:1840 +msgid "Error: Could not update task." +msgstr "Chyba: Úlohu nelze aktualizovat." + +#: sl/SL_Menu.py:1853 +msgid "Start Work on Task" +msgstr "Zahájit práci na úloze" + +#: sl/SL_Menu.py:1867 +#, 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:1878 msgid "Start Work" msgstr "Začít práci" -msgid "Generate Report" -msgstr "Vytvořit zprávu" +#: sl/SL_Menu.py:1906 +msgid "Task" +msgstr "Úloha" -msgid "Delete All" -msgstr "Smazat vše" +#: sl/SL_Menu.py:1907 +msgid "Started at" +msgstr "Zahájeno v" -msgid "Restore and Restart" -msgstr "Obnovit a restartovat" +#: sl/SL_Menu.py:1918 +msgid "Streamlit Port Settings" +msgstr "Nastavení streamovaného portu" + +#: sl/SL_Menu.py:1922 +msgid "Current Streamlit Port" +msgstr "Aktuální port streamovaného proudu" + +#: sl/SL_Menu.py:1925 +msgid "New Port" +msgstr "Nový port" + +#: sl/SL_Menu.py:1926 sl/SL_Menu.py:1958 sl/SL_Menu.py:2007 sl/SL_Menu.py:2042 +#: sl/SL_Menu.py:2074 sl/SL_Menu.py:2141 sl/SL_Menu.py:2173 +msgid "Save" +msgstr "Uložit" + +#: sl/SL_Menu.py:1930 +#, 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:1940 +msgid "Change Data Storage Location" +msgstr "Změnit umístění úložiště dat" + +#: sl/SL_Menu.py:1943 +msgid "Current data file" +msgstr "Aktuální datový soubor" +#: sl/SL_Menu.py:1946 +msgid "New Path for data file" +msgstr "Nová cesta pro datový soubor" + +#: sl/SL_Menu.py:1952 +msgid "Move existing data to the new location" +msgstr "Přesunout existující data do nového umístění" + +#: sl/SL_Menu.py:1955 +msgid "" +"If unchecked, the old data file will remain, and a new empty one might be " +"created at the new location on restart." +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:1962 +msgid "Please enter a new path." +msgstr "Zadejte prosím novou cestu." + +#: sl/SL_Menu.py:1970 +msgid "" +"Error: For security, the data file must be located within the application " +"directory." +msgstr "" +"Chyba: Z důvodu zabezpečení musí být datový soubor umístěn v adresáři " +"aplikace." + +#: sl/SL_Menu.py:1980 +msgid "" +"Storage location updated. Please restart the application for the changes to " +"take effect." +msgstr "" +"Umístění úložiště aktualizováno. Restartujte aplikaci, aby se změny " +"projevily." + +#: sl/SL_Menu.py:2006 +msgid "Select Format" +msgstr "Vyberte formát" + +#: sl/SL_Menu.py:2011 +msgid "Report format updated." +msgstr "Formát zprávy byl aktualizován." + +#: sl/SL_Menu.py:2024 msgid "Current CSS file" msgstr "Aktuální soubor CSS" +#: sl/SL_Menu.py:2041 msgid "Select CSS File" msgstr "Vybrat soubor CSS" -msgid "CSS style updated. Please restart the application for the changes to take effect." +#: sl/SL_Menu.py:2047 +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:2063 msgid "App Window (Webview)" msgstr "Okno aplikace (Webview)" +#: sl/SL_Menu.py:2063 msgid "System Browser" msgstr "Systémový prohlížeč" +#: sl/SL_Menu.py:2073 msgid "Select View Mode" msgstr "Vyberte režim zobrazení" -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:2080 +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:2091 +msgid "Restore Previous Version" +msgstr "Obnovit předchozí verzi" + +#: sl/SL_Menu.py:2096 +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:2101 +#, python-brace-format +msgid "No previous version backup '{filename}' found." +msgstr "Nebyla nalezena žádná záloha předchozí verze{filename}." + +#: sl/SL_Menu.py:2105 +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 "" +"Toto obnoví aplikaci na dříve zálohovanou verzi. Aplikace se poté " +"restartuje. Pokud se prohlížeč automaticky znovu nepřipojí, možná budete " +"muset aktualizovat ručně." + +#: sl/SL_Menu.py:2107 +msgid "Restore and Restart" +msgstr "Obnovit a restartovat" + +#: sl/SL_Menu.py:2108 +msgid "Restoring and restarting..." +msgstr "Obnovování a restartování..." + +#: sl/SL_Menu.py:2111 +msgid "Restore complete. Please restart the application." +msgstr "Obnovení dokončeno. Restartujte aplikaci." + +#: sl/SL_Menu.py:2117 +msgid "Change Language" +msgstr "Změnit jazyk" + +#: sl/SL_Menu.py:2140 +msgid "Select Language" +msgstr "Vybrat jazyk" + +#: sl/SL_Menu.py:2148 +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:2166 +msgid "Enable email import" +msgstr "Povolit import e-mailů" + +#: sl/SL_Menu.py:2167 +msgid "IMAP Server" +msgstr "Server IMAP" + +#: sl/SL_Menu.py:2168 +msgid "Port" +msgstr "Port" + +#: sl/SL_Menu.py:2169 +msgid "Username" +msgstr "Uživatelské jméno" + +#: sl/SL_Menu.py:2170 +msgid "Password" +msgstr "Heslo" + +#: sl/SL_Menu.py:2171 +msgid "Use SSL" +msgstr "Použít SSL" + +#: sl/SL_Menu.py:2184 +msgid "Email settings saved." +msgstr "Nastavení e-mailu bylo uloženo." + +#: sl/SL_Menu.py:2198 sl/SL_Menu.py:2330 +msgid "Select Date" +msgstr "Vyberte datum" + +#: sl/SL_Menu.py:2199 sl/SL_Menu.py:2223 sl/SL_Menu.py:2287 sl/SL_Menu.py:2313 +#: sl/SL_Menu.py:2331 +msgid "Generate Report" +msgstr "Vytvořit zprávu" + +#: sl/SL_Menu.py:2219 +msgid "Start Date" +msgstr "Datum zahájení" + +#: sl/SL_Menu.py:2221 +msgid "End Date" +msgstr "Datum ukončení" + +#: sl/SL_Menu.py:2346 +msgid "Report Result" +msgstr "Výsledek zprávy" + +#: sl/SL_Menu.py:2375 +msgid "Export Report" +msgstr "Export zprávy" + +#~ msgid "" +#~ "\n" +#~ "Error: Failed to install dependencies. Please install them manually using: pip install -r {requirements_path}" +#~ msgstr "" +#~ "\n" +#~ "Chyba: Instalace závislostí se nezdařila. Prosím, nainstalujte je ručně pomocí: pip install -r {requirements_path}" + +#~ msgid "A task named '{sub_name}' already exists in '{main_name}'." +#~ msgstr "Úkol s názvem '{sub_name}' již v projektu '{main_name}' existuje." + +#~ msgid "Project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Projekt '{old_name}' přejmenován na '{new_name}'." + +#~ msgid "Task '{old_name}' has been renamed to '{new_name}'." +#~ msgstr "Úkol '{old_name}' byl přejmenován na '{new_name}'." + +#~ msgid "Invalid choice. Please enter a number from 0 to 3." +#~ msgstr "Neplatná volba. Zadejte prosím číslo od 0 do 3." + +#~ msgid " Project: {name}" +#~ msgstr " Projekt: {name}" + +#~ msgid "" +#~ "\n" +#~ "No time tracked for {date}." +#~ msgstr "" +#~ "\n" +#~ "Pro den {date} nebyl zaznamenán žádný čas." + +#~ msgid "Time Control" +#~ msgstr "Kontrola času" diff --git a/locale/de/LC_MESSAGES/timetracker.mo b/locale/de/LC_MESSAGES/timetracker.mo index c2912b3..ca431ba 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 37bddcc..3ff03a0 100644 --- a/locale/de/LC_MESSAGES/timetracker.po +++ b/locale/de/LC_MESSAGES/timetracker.po @@ -3,10 +3,10 @@ # This file is distributed under the same license as the TimeTracker package. # msgid "" -msgstr "Project-Id-Version: TimeControl\n" +msgstr "" "Project-Id-Version: TimeControl\n" -"Report-Msgid-Bugs-To: https://github.com/FrankFaulstich/TimeControl/issues\n" -"POT-Creation-Date: 2025-10-30 10:00+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-18 12:24+0200\n" "PO-Revision-Date: 2025-10-30 12:00+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: German\n" @@ -16,923 +16,1280 @@ msgstr "Project-Id-Version: TimeControl\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Edit current task" -msgstr "Aktuellen Task bearbeiten" - -#: tt/TimeTracker.py:63 -msgid "Warning: Could not read {file}. Error: {error}" -msgstr "Warnung: Konnte {file} nicht lesen. Fehler: {error}" - -#: TimeTracker.py:75 -msgid "Some required packages are missing. Attempting to install them..." -msgstr "Einige benötigte Pakete fehlen. Es wird versucht, sie zu installieren..." - -#: TimeTracker.py:78 -msgid "Installing {package}..." -msgstr "Installiere {package}..." - -#: TimeTracker.py:81 +#: TimeTrackerCLI.py:25 msgid "" "\n" -"Dependencies installed successfully." +"--- Project Management ---" msgstr "" "\n" -"Abhängigkeiten erfolgreich installiert." +"--- Projektverwaltung ---" -#: TimeTracker.py:82 -msgid "Please restart the application for the changes to take effect." -msgstr "Bitte starte die Anwendung neu, damit die Änderungen wirksam werden." +#: TimeTrackerCLI.py:26 +msgid "1. Main Project Management" +msgstr "1. Hauptprojektmanagement" -#: TimeTracker.py:85 -msgid "" -"\n" -"Error: Failed to install dependencies. Please install them manually using: " -"pip install -r {requirements_path}" -msgstr "" -"\n" -"Fehler: Installation der Abhängigkeiten fehlgeschlagen. Bitte manuell " -"installieren mit: pip install -r {requirements_path}" +#: TimeTrackerCLI.py:27 +msgid "2. Task Management" +msgstr "2. Aufgabenmanagement" -#: TimeTracker.py:88 -msgid "An unexpected error occurred during dependency check: {error}" -msgstr "Ein unerwarteter Fehler bei der Abhängigkeitsprüfung ist aufgetreten: {error}" +#: TimeTrackerCLI.py:29 +msgid "0. Back to Main Menu" +msgstr "0. Zurück zum Hauptmenü" -#: TimeTracker.py:112 -msgid "Info: Report content has been copied to the clipboard." -msgstr "Info: Der Berichtsinhalt wurde in die Zwischenablage kopiert." +#: TimeTrackerCLI.py:32 TimeTrackerCLI.py:60 TimeTrackerCLI.py:257 +#: TimeTrackerCLI.py:662 TimeTrackerCLI.py:701 TimeTrackerCLI.py:811 +#: TimeTrackerCLI.py:953 +msgid "Choice: " +msgstr "Auswahl: " -#: TimeTracker.py:114 -msgid "Warning: Could not copy to clipboard. Error: {error}" -msgstr "Warnung: Konnte nicht in die Zwischenablage kopieren. Fehler: {error}" +#: TimeTrackerCLI.py:41 +msgid "Invalid choice. Please enter a number from 0 to 2." +msgstr "Ungültige Auswahl. Bitte geben Sie eine Zahl zwischen 0 und 2 ein." -#: TimeTracker.py:116 +#: TimeTrackerCLI.py:46 msgid "" -"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " -"install pyperclip`)." +"\n" +"--- Main Project Management ---" msgstr "" -"Warnung: Konnte nicht in die Zwischenablage kopieren. Bitte 'pyperclip' " -"installieren (`pip install pyperclip`)." - -#: TimeTracker.py:130 -msgid "{hours} hour ({dlp} DLP)" -msgid_plural "{hours} hours ({dlp} DLP)" -msgstr[0] "{hours} Stunde ({dlp} DLP)" -msgstr[1] "{hours} Stunden ({dlp} DLP)" +"\n" +"--- Hauptprojektverwaltung ---" -msgid "closed" -msgstr "geschlossen" +#: TimeTrackerCLI.py:47 +msgid "1. Add Main Project" +msgstr "1. Hauptprojekt hinzufügen" -#: tt/TimeTracker.py:350 -msgid "Source project '{name}' not found." -msgstr "Quell-Projekt '{name}' nicht gefunden." +#: TimeTrackerCLI.py:48 +msgid "2. List Main Projects" +msgstr "2. Hauptprojekte auflisten" -#: TimeTracker.py:352 -msgid "Destination project '{name}' not found." -msgstr "Ziel-Projekt '{name}' nicht gefunden." +#: TimeTrackerCLI.py:49 +msgid "3. Rename Main Project" +msgstr "3. Hauptprojekt umbenennen" -#: TimeTracker.py:356 -msgid "A task named '{sub_name}' already exists in '{main_name}'." -msgstr "Eine Aufgabe mit dem Namen '{sub_name}' existiert bereits in '{main_name}'." +#: TimeTrackerCLI.py:50 +msgid "4. Close Main Project" +msgstr "4. Hauptprojekt schließen" -msgid "Task '{name}' moved successfully." -msgstr "Aufgabe '{name}' erfolgreich verschoben." +#: TimeTrackerCLI.py:51 +msgid "5. Re-open Main Project" +msgstr "5. Hauptprojekt" -#: tt/TimeTracker.py:378 -msgid "A project named '{name}' already exists." -msgstr "Ein Projekt mit dem Namen '{name}' existiert bereits." +#: TimeTrackerCLI.py:52 +msgid "6. Delete Main Project" +msgstr "erneut öffnen 6. Hauptprojekt löschen" -msgid "Project '{old_name}' renamed to '{new_name}'." -msgstr "Projekt '{old_name}' wurde in '{new_name}' umbenannt." +#: TimeTrackerCLI.py:53 +msgid "7. List Inactive Main Projects" +msgstr "7. Inaktive Hauptprojekte auflisten" -#: tt/TimeTracker.py:398 -msgid "Task '{sub_name}' not found in '{main_name}'." -msgstr "Aufgabe '{sub_name}' in '{main_name}' nicht gefunden." +#: TimeTrackerCLI.py:54 +msgid "8. Demote Main-Project to Sub-Project" +msgstr "8. Herabstufen Hauptprojekt zu Unterprojekt" -#: tt/TimeTracker.py:406 -msgid "General" -msgstr "Allgemein" +#: TimeTrackerCLI.py:55 +msgid "9. List Completed Main Projects" +msgstr "9. Liste abgeschlossener Hauptprojekte" -#: tt/TimeTracker.py:410 -msgid "Task '{name}' was promoted to a new project." -msgstr "Aufgabe '{name}' wurde zu einem neuen Projekt befördert." +#: TimeTrackerCLI.py:57 TimeTrackerCLI.py:254 +msgid "0. Back" +msgstr "0. Zurück" -#: tt/TimeTracker.py:439 -msgid "Project to demote '{name}' not found." -msgstr "Projekt '{name}' zum Herabstufen nicht gefunden." +#: TimeTrackerCLI.py:64 +msgid "" +"\n" +"--- Add New Main Project ---" +msgstr "" +"\n" +"--- Neues Hauptprojekt hinzufügen ---" -#: tt/TimeTracker.py:441 -msgid "New parent project '{name}' not found." -msgstr "Neues übergeordnetes Projekt '{name}' nicht gefunden." +#: TimeTrackerCLI.py:65 +msgid "Name of the main project: " +msgstr "Name des Hauptprojekts:" -#: tt/TimeTracker.py:455 -msgid "Task '{old_name}' has been renamed to '{new_name}'." -msgstr "Aufgabe '{old_name}' wurde in '{new_name}' umbenannt." +#: TimeTrackerCLI.py:67 +#, python-brace-format +msgid "Main project '{name}' added." +msgstr "Hauptprojekt '{name}' hinzugefügt." -#: TimeTracker.py:463 +#: TimeTrackerCLI.py:70 msgid "" -"Project '{demoted_name}' was demoted to a task under " -"'{parent_name}'." +"\n" +"--- List Main Projects ---" msgstr "" -"Projekt '{demoted_name}' wurde zu einer Aufgabe unter " -"'{parent_name}' herabgestuft." - -msgid "Task Planning" -msgstr "Aufgabenplanung" +"\n" +"--- Hauptprojekte auflisten ---" -msgid "Today View" -msgstr "Heute-Ansicht" +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1246 +#: sl/SL_Menu.py:1310 +msgid "closed" +msgstr "geschlossen" -msgid "E-Mail Task Assignment" -msgstr "Zuordnung von E-Mail-Tasks" +#: TimeTrackerCLI.py:79 +msgid "No main projects found." +msgstr "Keine Hauptprojekte gefunden." -msgid "Fetching emails..." -msgstr "E-Mails werden abgerufen..." +#: TimeTrackerCLI.py:82 +msgid "" +"\n" +"--- Rename Main Project ---" +msgstr "" +"\n" +"--- Hauptprojekt umbenennen ---" + +#: TimeTrackerCLI.py:85 +msgid "No main projects to rename." +msgstr "Keine Hauptprojekte zum Umbenennen." + +#: TimeTrackerCLI.py:88 +msgid "Select an open main project to rename:" +msgstr "Wählen Sie ein geöffnetes Hauptprojekt zum Umbenennen aus:" + +#: TimeTrackerCLI.py:93 TimeTrackerCLI.py:117 TimeTrackerCLI.py:139 +#: TimeTrackerCLI.py:162 TimeTrackerCLI.py:272 TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:333 TimeTrackerCLI.py:370 TimeTrackerCLI.py:405 +#: TimeTrackerCLI.py:441 TimeTrackerCLI.py:568 TimeTrackerCLI.py:604 +#: TimeTrackerCLI.py:855 TimeTrackerCLI.py:888 TimeTrackerCLI.py:969 +msgid "Enter the number of the main project: " +msgstr "Geben Sie die Nummer des Hauptprojekts ein:" + +#: TimeTrackerCLI.py:96 TimeTrackerCLI.py:349 +#, python-brace-format +msgid "Enter the new name for '{name}': " +msgstr "Gib den neuen Namen für '{name}' ein: " -msgid "Error fetching emails: {error}" -msgstr "Fehler beim E-Mail-Abruf: {error}" +#: TimeTrackerCLI.py:99 +#, python-brace-format +msgid "Main project '{old_name}' successfully renamed to '{new_name}'." +msgstr "" +"Hauptprojekt „{old_name}“ wurde erfolgreich in „{new_name}“ umbenannt." -msgid "{count} new tasks created from emails." -msgstr "{count} neue Aufgaben aus E-Mails erstellt." +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1283 +#, python-brace-format +msgid "" +"Error: Could not rename. The new name '{new_name}' might already exist." +msgstr "" +"Fehler: Umbenennung fehlgeschlagen. Der neue Name '{new_name}' existiert " +"möglicherweise bereits." + +#: TimeTrackerCLI.py:103 TimeTrackerCLI.py:125 TimeTrackerCLI.py:147 +#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:221 TimeTrackerCLI.py:287 +#: TimeTrackerCLI.py:319 TimeTrackerCLI.py:356 TimeTrackerCLI.py:391 +#: TimeTrackerCLI.py:426 TimeTrackerCLI.py:463 TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:589 TimeTrackerCLI.py:794 TimeTrackerCLI.py:875 +#: TimeTrackerCLI.py:894 TimeTrackerCLI.py:992 +msgid "Invalid input. Please enter a valid number." +msgstr "Ungültige Eingabe. Bitte eine gültige Zahl eingeben." -msgid "No new emails found." -msgstr "Keine neuen E-Mails gefunden." +#: TimeTrackerCLI.py:106 +msgid "" +"\n" +"--- Close Main Project ---" +msgstr "" +"\n" +"--- Hauptprojekt schließen ---" -msgid "No unassigned email tasks available." -msgstr "Keine nicht zugeordneten E-Mail-Tasks vorhanden." +#: TimeTrackerCLI.py:109 +msgid "No open main projects to close." +msgstr "Keine offenen Hauptprojekte zum Schließen." -msgid "Assign Project" -msgstr "Projekt zuordnen" +#: TimeTrackerCLI.py:112 +msgid "Select a main project to close:" +msgstr "Wählen Sie ein Hauptprojekt zum Schließen aus:" -msgid "Edit Details" -msgstr "Details bearbeiten" +#: TimeTrackerCLI.py:121 +#, python-brace-format +msgid "Main project '{name}' has been closed." +msgstr "Das Hauptprojekt „{name}“ wurde geschlossen." -msgid "Due Date" -msgstr "Fälligkeitsdatum" +#: TimeTrackerCLI.py:123 TimeTrackerCLI.py:145 +msgid "Error: Main project not found." +msgstr "Fehler: Hauptprojekt nicht gefunden." -msgid "Clear" -msgstr "Löschen" +#: TimeTrackerCLI.py:128 +msgid "" +"\n" +"--- Re-open Main Project ---" +msgstr "" +"\n" +"--- Hauptprojekt erneut öffnen ---" -msgid "Task Name" -msgstr "Aufgabenname" +#: TimeTrackerCLI.py:131 +msgid "No closed main projects to reopen." +msgstr "Keine geschlossenen Hauptprojekte zur Wiedereröffnung." -msgid "Task details updated successfully." -msgstr "Aufgabendetails erfolgreich aktualisiert." +#: TimeTrackerCLI.py:134 +msgid "Select a main project to reopen:" +msgstr "Wählen Sie ein Hauptprojekt zum erneuten Öffnen aus:" -msgid "Error updating task details." -msgstr "Fehler beim Aktualisieren der Aufgabendetails." +#: TimeTrackerCLI.py:143 +#, python-brace-format +msgid "Main project '{name}' has been reopened." +msgstr "Das Hauptprojekt „{name}“ wurde erneut geöffnet." -msgid "Email Settings" -msgstr "E-Mail-Einstellungen" +#: TimeTrackerCLI.py:150 +msgid "" +"\n" +"--- Delete Main Project ---" +msgstr "" +"\n" +"--- Hauptprojekt löschen ---" -msgid "Enable email import" -msgstr "E-Mail-Import aktivieren" +#: TimeTrackerCLI.py:153 +msgid "No main projects to delete." +msgstr "Keine Hauptprojekte zum Löschen." -msgid "Username" -msgstr "Benutzername" +#: TimeTrackerCLI.py:156 +msgid "Select a main project to delete:" +msgstr "Wählen Sie ein Hauptprojekt zum Löschen aus:" -msgid "Password" -msgstr "Passwort" +#: TimeTrackerCLI.py:165 +#, python-brace-format +msgid "Main project '{name}' deleted." +msgstr "Hauptprojekt „{name}“ gelöscht." -msgid "Use SSL" -msgstr "SSL verwenden" +#: TimeTrackerCLI.py:167 TimeTrackerCLI.py:285 +#, python-brace-format +msgid "Error: Main project '{name}' not found." +msgstr "Fehler: Hauptprojekt „{name}“ nicht gefunden." -msgid "Email settings saved." -msgstr "E-Mail-Einstellungen gespeichert." +#: TimeTrackerCLI.py:172 +msgid "" +"\n" +"--- List Inactive Main-Projects ---" +msgstr "" +"\n" +"--- Inaktive Hauptprojekte auflisten ---" -msgid "4. Change Streamlit Port" -msgstr "4. Streamlit-Port ändern" +#: TimeTrackerCLI.py:174 +msgid "Enter the number of weeks without activity (e.g., 8): " +msgstr "Anzahl der Wochen ohne Aktivität eingeben (z.B. 8): " -msgid "Current Streamlit Port: {port}" -msgstr "Aktueller Streamlit-Port: {port}" +#: TimeTrackerCLI.py:176 TimeTrackerCLI.py:518 +msgid "Please enter a positive number." +msgstr "Bitte eine positive Zahl eingeben." -msgid "Enter new port (or press Enter to keep current): " -msgstr "Neuen Port eingeben (oder Enter drücken, um aktuellen beizubehalten): " +#: TimeTrackerCLI.py:182 +#, python-brace-format +msgid "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" +msgstr "" +"\n" +"Inaktive Hauptprojekte (>{weeks}Wochen):" -msgid "Port updated to {port}. Please restart Streamlit for changes to take effect." -msgstr "Port auf {port} aktualisiert. Bitte Streamlit neu starten, damit die Änderungen wirksam werden." +#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:526 +#, python-brace-format +msgid " - Main Project: {name}" +msgstr "- Hauptprojekt:{name}" -msgid "Work started on '{task_name}' in project '{main_name}'." -msgstr "Arbeit an '{task_name}' im Projekt '{main_name}' begonnen." +#: TimeTrackerCLI.py:185 TimeTrackerCLI.py:528 +#, python-brace-format +msgid " Last Activity: {date}" +msgstr " Letzte Aktivität: {date}" -#: TimeTracker.py:651 -msgid "- {name}: {hours} hour" -msgid_plural "- {name}: {hours} hours" -msgstr[0] "- {name}: {hours} Stunde" -msgstr[1] "- {name}: {hours} Stunden" +#: TimeTrackerCLI.py:188 +#, python-brace-format +msgid "No main-projects found inactive for more than {weeks} weeks." +msgstr "" +"Es wurden keine Hauptprojekte gefunden, die länger als{weeks}Wochen inaktiv " +"waren." -#: TimeTracker.py:657 -msgid "## {name} ({hours} hour)\n" -msgid_plural "## {name} ({hours} hours)\n" -msgstr[0] "## {name} ({hours} Stunde)\n" -msgstr[1] "## {name} ({hours} Stunden)\n" +#: TimeTrackerCLI.py:191 TimeTrackerCLI.py:534 +msgid "Invalid input. Please enter a valid number for weeks." +msgstr "Ungültige Eingabe. Bitte eine gültige Zahl für Wochen eingeben." -#: TimeTracker.py:665 -msgid "# Daily Time Report: {date}\n" -msgstr "# Tagesbericht: {date}\n" +#: TimeTrackerCLI.py:194 +msgid "" +"\n" +"--- Demote Main-Project to Sub-Project ---" +msgstr "" +"\n" +"--- Hauptprojekt zum Unterprojekt herabstufen ---" -#: TimeTracker.py:666 -msgid "\n**Total Daily Time: {hours} hour**" -msgid_plural "\n**Total Daily Time: {hours} hours**" -msgstr[0] "\n**Tägliche Gesamtzeit: {hours} Stunde**" -msgstr[1] "\n**Tägliche Gesamtzeit: {hours} Stunden**" +#: TimeTrackerCLI.py:197 +msgid "You need at least two open main projects for this operation." +msgstr "" +"Für diesen Vorgang benötigen Sie mindestens zwei offene Hauptprojekte." -#: TimeTracker.py:670 -msgid "No time tracked for {date}." -msgstr "Keine Zeit für {date} erfasst." +#: TimeTrackerCLI.py:202 +msgid "Select the main project to demote:" +msgstr "Wählen Sie das Hauptprojekt aus, das herabgestuft werden soll:" -#: TimeTracker.py:708 -msgid "# Time Report: {start_date} to {end_date}\n" -msgstr "# Zeitbericht: {start_date} bis {end_date}\n" +#: TimeTrackerCLI.py:205 +msgid "Enter the number of the project to demote: " +msgstr "Gib die Nummer des herabzustufenden Projekts ein: " -#: TimeTracker.py:709 +#: TimeTrackerCLI.py:209 msgid "" "\n" -"**Total Time in Period: {total_time}**" +"Select the new parent main project:" msgstr "" "\n" -"**Gesamtzeit im Zeitraum: {total_time}**" +"Wählen Sie das neue übergeordnete Hauptprojekt aus:" -#: TimeTracker.py:721 -msgid "No time tracked between {start_date} and {end_date}." -msgstr "Keine Zeit zwischen {start_date} und {end_date} erfasst." +#: TimeTrackerCLI.py:213 +msgid "Enter the number of the new parent project: " +msgstr "Gib die Nummer des neuen übergeordneten Projekts ein: " -#: TimeTrackerCLI.py:21 -msgid "\n--- Project Management ---" -msgstr "\n--- Projektverwaltung ---" +#: TimeTrackerCLI.py:224 +msgid "" +"\n" +"--- List Completed Main Projects ---" +msgstr "" +"\n" +"--- Abgeschlossene Hauptprojekte auflisten ---" -#: TimeTrackerCLI.py:22 -msgid "1. Add Project" -msgstr "1. Projekt hinzufügen" +#: TimeTrackerCLI.py:227 +msgid "Main projects with only closed or no sub-projects:" +msgstr "Hauptprojekte mit nur abgeschlossenen oder keinen Unterprojekten:" -#: TimeTrackerCLI.py:24 -msgid "2. List Projects" -msgstr "2. Projekte auflisten" +#: TimeTrackerCLI.py:231 +msgid "No completed main projects found." +msgstr "Keine abgeschlossenen Hauptprojekte gefunden." -#: TimeTrackerCLI.py:24 -msgid "3. Rename Project" -msgstr "3. Projekt umbenennen" +#: TimeTrackerCLI.py:235 +msgid "Invalid choice. Please enter a number from 0 to 9." +msgstr "Ungültige Auswahl. Bitte geben Sie eine Zahl von 0 bis 9 ein." -#: TimeTrackerCLI.py:25 -msgid "4. Delete Project" -msgstr "4. Projekt löschen" +#: TimeTrackerCLI.py:240 +msgid "" +"\n" +"--- Task Management ---" +msgstr "" +"\n" +"--- Aufgabenverwaltung ---" -#: TimeTrackerCLI.py:26 -msgid "5. List Inactive Projects" -msgstr "5. Inaktive Projekte auflisten" +#: TimeTrackerCLI.py:241 +msgid "1. Add Task" +msgstr "1. Aufgabe hinzufügen" -#: TimeTrackerCLI.py:27 -msgid "6. Demote Project to Task" -msgstr "6. Projekt zu Aufgabe herabstufen" +#: TimeTrackerCLI.py:242 +msgid "2. List Tasks" +msgstr "2. Aufgaben auflisten" -#: TimeTrackerCLI.py:29 -msgid "7. Add Task" -msgstr "7. Aufgabe hinzufügen" +#: TimeTrackerCLI.py:243 +msgid "3. Rename Task" +msgstr "3. Aufgabe umbenennen" -#: TimeTrackerCLI.py:30 -msgid "8. List Tasks" -msgstr "8. Aufgaben auflisten" +#: TimeTrackerCLI.py:244 +msgid "4. Close Task" +msgstr "4. Aufgabe schließen" -#: TimeTrackerCLI.py:31 -msgid "9. Rename Task" -msgstr "9. Aufgabe umbenennen" +#: TimeTrackerCLI.py:245 +msgid "5. Re-open Task" +msgstr "5. Aufgabe erneut öffnen" -msgid "10. Close Task" -msgstr "10. Aufgabe schließen" +#: TimeTrackerCLI.py:246 +msgid "6. Delete Task" +msgstr "6. Aufgabe löschen" -msgid "11. Re-open Task" -msgstr "11. Aufgabe wieder öffnen" +#: TimeTrackerCLI.py:247 +msgid "7. Move Task" +msgstr "7. Aufgabe verschieben" -msgid "12. Delete Task" -msgstr "12. Aufgabe löschen" +#: TimeTrackerCLI.py:248 +msgid "8. List Inactive Tasks" +msgstr "8. Inaktive Aufgaben auflisten" -msgid "13. Move Task" -msgstr "13. Aufgabe verschieben" +#: TimeTrackerCLI.py:249 +msgid "9. List All Closed Tasks" +msgstr "9. Alle geschlossenen Aufgaben auflisten" -msgid "14. List Inactive Tasks" -msgstr "14. Inaktive Aufgaben auflisten" +#: TimeTrackerCLI.py:250 +msgid "10. Delete All Closed Tasks" +msgstr "10. Alle geschlossenen Aufgaben löschen" -msgid "15. List All Closed Tasks" -msgstr "15. Alle geschlossenen Aufgaben auflisten" +#: TimeTrackerCLI.py:251 +msgid "11. Promote Task to Main-Project" +msgstr "11. Aufgabe zum Hauptprojekt hochstufen" -msgid "16. Delete All Closed Tasks" -msgstr "16. Alle geschlossenen Aufgaben löschen" +#: TimeTrackerCLI.py:252 +msgid "12. Edit Task (Name & Due Date)" +msgstr "12. Aufgabe bearbeiten (Name und Fälligkeitsdatum)" -msgid "17. Promote Task to Project" -msgstr "17. Aufgabe zu Projekt befördern" +#: TimeTrackerCLI.py:261 +msgid "" +"\n" +"--- Add New Task ---" +msgstr "" +"\n" +"--- Neue Aufgabe hinzufügen ---" -#: TimeTrackerCLI.py:37 TimeTrackerCLI.py:403 TimeTrackerCLI.py:461 TimeTrackerCLI.py:539 -msgid "0. Back to Main Menu" -msgstr "0. Zurück zum Hauptmenü" +#: TimeTrackerCLI.py:264 TimeTrackerCLI.py:960 +msgid "No open main projects found. Please add one first." +msgstr "" +"Keine offenen Hauptprojekte gefunden. Bitte fügen Sie zuerst eines hinzu." -#: TimeTrackerCLI.py:40 TimeTrackerCLI.py:406 TimeTrackerCLI.py:464 TimeTrackerCLI.py:595 -msgid "Choice: " -msgstr "Auswahl: " +#: TimeTrackerCLI.py:267 +msgid "Select a main project to add a task to:" +msgstr "" +"Wählen Sie ein Hauptprojekt aus, dem Sie eine Aufgabe hinzufügen möchten:" -#: TimeTrackerCLI.py:44 -msgid "\n--- Add New Project ---" -msgstr "\n--- Neues Projekt hinzufügen ---" +#: TimeTrackerCLI.py:275 +msgid "Name of the new task: " +msgstr "Name der neuen Aufgabe: " -#: TimeTrackerCLI.py:45 -msgid "Name of the project: " -msgstr "Name des Projekts: " +#: TimeTrackerCLI.py:276 +msgid "Due date (YYYY-MM-DD, press Enter to skip): " +msgstr "" +"Fälligkeitsdatum (JJJJ-MM-TT, zum Überspringen die Eingabetaste drücken):" -#: TimeTrackerCLI.py:47 -msgid "Project '{name}' added." -msgstr "Projekt '{name}' hinzugefügt." +#: TimeTrackerCLI.py:278 +msgid "Add to 'Today' list? (y/n, default n): " +msgstr "Zur „Heute“-Liste hinzufügen? (j/n, Standard n):" -#: TimeTrackerCLI.py:50 -msgid "\n--- List Projects ---" -msgstr "\n--- Projekte auflisten ---" +#: TimeTrackerCLI.py:280 +msgid "Note (Markdown supported): " +msgstr "Hinweis (Markdown unterstützt):" -#: TimeTrackerCLI.py:55 TimeTrackerCLI.py:166 TimeTrackerCLI.py:288 TimeTrackerCLI.py:411 TimeTrackerCLI.py:434 TimeTrackerCLI.py:479 -msgid "No projects found." -msgstr "Keine Projekte gefunden." +#: TimeTrackerCLI.py:283 +#, python-brace-format +msgid "Task '{task_name}' added." +msgstr "Aufgabe „{task_name}“ hinzugefügt." -#: TimeTrackerCLI.py:58 -msgid "\n--- Rename Project ---" -msgstr "\n--- Projekt umbenennen ---" +#: TimeTrackerCLI.py:290 +msgid "" +"\n" +"--- List Tasks ---" +msgstr "" +"\n" +"--- Aufgaben auflisten ---" -#: TimeTrackerCLI.py:61 -msgid "No projects to rename." -msgstr "Keine Projekte zum Umbenennen vorhanden." +#: TimeTrackerCLI.py:293 +msgid "No main projects found. Cannot list tasks." +msgstr "" +"Keine Hauptprojekte gefunden. Aufgaben können nicht aufgelistet werden." -#: TimeTrackerCLI.py:64 -msgid "Select a project to rename:" -msgstr "Wähle ein Projekt zum Umbenennen aus:" +#: TimeTrackerCLI.py:296 +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:68 -msgid "Enter the number of the project: " -msgstr "Gib die Nummer des Projekts ein: " +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1307 +#, python-brace-format +msgid "Tasks for '{name}':" +msgstr "Aufgaben für '{name}':" -#: TimeTrackerCLI.py:71 -msgid "Enter the new name for '{name}': " -msgstr "Gib den neuen Namen für '{name}' ein: " +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:524 sl/SL_Menu.py:612 +msgid "Due" +msgstr "Fällig" -#: TimeTrackerCLI.py:74 -msgid "Project '{old_name}' successfully renamed to '{new_name}'." -msgstr "Projekt '{old_name}' erfolgreich in '{new_name}' umbenannt." +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:409 sl/SL_Menu.py:419 sl/SL_Menu.py:484 +#: sl/SL_Menu.py:546 sl/SL_Menu.py:747 sl/SL_Menu.py:1603 sl/SL_Menu.py:1771 +msgid "Today" +msgstr "Heute" -#: TimeTrackerCLI.py:76 -msgid "Error: Could not rename. The new name '{new_name}' might already exist." -msgstr "Fehler: Umbenennung fehlgeschlagen. Der neue Name '{new_name}' existiert möglicherweise bereits." +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:2276 +#, python-brace-format +msgid "No tasks found for '{name}'." +msgstr "Keine Aufgaben für '{name}' gefunden." -#: TimeTrackerCLI.py:78 TimeTrackerCLI.py:98 TimeTrackerCLI.py:120 TimeTrackerCLI.py:139 TimeTrackerCLI.py:160 TimeTrackerCLI.py:194 TimeTrackerCLI.py:222 TimeTrackerCLI.py:247 TimeTrackerCLI.py:284 TimeTrackerCLI.py:311 TimeTrackerCLI.py:342 TimeTrackerCLI.py:387 TimeTrackerCLI.py:431 TimeTrackerCLI.py:456 TimeTrackerCLI.py:532 -msgid "Invalid input. Please enter a valid number." -msgstr "Ungültige Eingabe. Bitte eine gültige Zahl eingeben." +#: TimeTrackerCLI.py:322 +msgid "" +"\n" +"--- Rename Task ---" +msgstr "" +"\n" +"--- Aufgabe umbenennen ---" -#: TimeTrackerCLI.py:81 -msgid "\n--- Delete Project ---" -msgstr "\n--- Projekt löschen ---" +#: TimeTrackerCLI.py:325 TimeTrackerCLI.py:362 TimeTrackerCLI.py:397 +#: TimeTrackerCLI.py:432 TimeTrackerCLI.py:560 +msgid "No open main projects found." +msgstr "Keine offenen Hauptprojekte gefunden." -#: TimeTrackerCLI.py:84 -msgid "No projects to delete." -msgstr "Keine Projekte zum Löschen vorhanden." +#: TimeTrackerCLI.py:328 TimeTrackerCLI.py:365 TimeTrackerCLI.py:400 +#: TimeTrackerCLI.py:435 TimeTrackerCLI.py:599 TimeTrackerCLI.py:852 +msgid "Select the main project:" +msgstr "Wählen Sie das Hauptprojekt aus:" -#: TimeTrackerCLI.py:87 -msgid "Select a project to delete:" -msgstr "Wähle ein Projekt zum Löschen aus:" +#: TimeTrackerCLI.py:338 +#, python-brace-format +msgid "No tasks to rename for '{name}'." +msgstr "Keine Aufgaben zum Umbenennen für '{name}' vorhanden." -#: TimeTrackerCLI.py:93 -msgid "Project '{name}' deleted." -msgstr "Projekt '{name}' gelöscht." +#: TimeTrackerCLI.py:341 +#, python-brace-format +msgid "Select a task from '{name}' to rename:" +msgstr "Wähle eine Aufgabe von '{name}' zum Umbenennen aus:" -#: TimeTrackerCLI.py:95 -msgid "Error: Project '{name}' not found." -msgstr "Fehler: Projekt '{name}' nicht gefunden." +#: TimeTrackerCLI.py:345 TimeTrackerCLI.py:382 TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:453 TimeTrackerCLI.py:489 TimeTrackerCLI.py:580 +#: TimeTrackerCLI.py:867 TimeTrackerCLI.py:982 +msgid "Enter the number of the task: " +msgstr "Gib die Nummer der Aufgabe ein: " -#: TimeTrackerCLI.py:101 -msgid "\n--- List Inactive Projects ---" -msgstr "\n--- Inaktive Projekte auflisten ---" +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1358 +#, python-brace-format +msgid "Task '{old_name}' renamed to '{new_name}'." +msgstr "Aufgabe '{old_name}' in '{new_name}' umbenannt." -#: TimeTrackerCLI.py:103 -msgid "Enter the number of weeks without activity (e.g., 8): " -msgstr "Anzahl der Wochen ohne Aktivität eingeben (z.B. 8): " +#: TimeTrackerCLI.py:354 +msgid "" +"Error: Could not rename. The new name might already exist or the project was" +" not found." +msgstr "" +"Fehler: Umbenennung fehlgeschlagen. Der neue Name existiert möglicherweise " +"bereits oder das Projekt wurde nicht gefunden." -#: TimeTrackerCLI.py:105 -msgid "Please enter a positive number." -msgstr "Bitte eine positive Zahl eingeben." +#: TimeTrackerCLI.py:359 +msgid "" +"\n" +"--- Close Task ---" +msgstr "" +"\n" +"--- Aufgabe schließen ---" -#: TimeTrackerCLI.py:110 -msgid "\nInactive Projects (>{weeks} weeks):" -msgstr "\nInaktive Projekte (>{weeks} Wochen):" +#: TimeTrackerCLI.py:375 +#, python-brace-format +msgid "No open tasks to close for '{name}'." +msgstr "Keine offenen Aufgaben zum Schließen für „{name}“." -#: TimeTrackerCLI.py:112 -msgid " - Project: {name}" -msgstr " - Projekt: {name}" +#: TimeTrackerCLI.py:378 +#, python-brace-format +msgid "Select a task from '{name}' to close:" +msgstr "Wählen Sie eine Aufgabe aus „{name}“ zum Schließen aus:" -#: TimeTrackerCLI.py:113 -msgid " Last Activity: {date}" -msgstr " Letzte Aktivität: {date}" +#: TimeTrackerCLI.py:387 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been closed." +msgstr "Die Aufgabe „{task_name}“ in „{main_name}“ wurde geschlossen." -#: TimeTrackerCLI.py:116 -msgid "No projects found inactive for more than {weeks} week." -msgid_plural "No projects found inactive for more than {weeks} weeks." -msgstr[0] "Kein Projekt seit mehr als {weeks} Woche inaktiv." -msgstr[1] "Keine Projekte seit mehr als {weeks} Wochen inaktiv." +#: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 +#: sl/SL_Menu.py:945 sl/SL_Menu.py:990 sl/SL_Menu.py:1036 +msgid "Error: Main project or task not found." +msgstr "Fehler: Hauptprojekt oder Hauptaufgabe nicht gefunden." -#: TimeTrackerCLI.py:119 -msgid "Invalid input. Please enter a valid number for weeks." -msgstr "Ungültige Eingabe. Bitte eine gültige Zahl für Wochen eingeben." +#: TimeTrackerCLI.py:394 +msgid "" +"\n" +"--- Re-open Task ---" +msgstr "" +"\n" +"--- Aufgabe erneut öffnen ---" -#: TimeTrackerCLI.py:122 -msgid "\n--- Add New Task ---" -msgstr "\n--- Neue Aufgabe hinzufügen ---" +#: TimeTrackerCLI.py:410 +#, python-brace-format +msgid "No closed tasks to reopen for '{name}'." +msgstr "Keine geschlossenen Aufgaben zum erneuten Öffnen für „{name}“." -#: TimeTrackerCLI.py:125 -msgid "No projects found. Please add one first." -msgstr "Keine Projekte gefunden. Bitte zuerst eines anlegen." +#: TimeTrackerCLI.py:413 +#, python-brace-format +msgid "Select a task from '{name}' to reopen:" +msgstr "Wählen Sie eine Aufgabe aus „{name}“ zum erneuten Öffnen aus:" -#: TimeTrackerCLI.py:128 -msgid "Select a project to add a task to:" -msgstr "Wähle ein Projekt, um eine Aufgabe hinzuzufügen:" +#: TimeTrackerCLI.py:422 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been reopened." +msgstr "Die Aufgabe „{task_name}“ in „{main_name}“ wurde erneut geöffnet." -#: TimeTrackerCLI.py:135 -msgid "Name of the new task: " -msgstr "Name der neuen Aufgabe: " +#: TimeTrackerCLI.py:429 +msgid "" +"\n" +"--- Delete Task ---" +msgstr "" +"\n" +"--- Aufgabe löschen ---" -#: TimeTrackerCLI.py:137 -msgid "Task '{sub_name}' added to '{main_name}'." -msgstr "Aufgabe '{sub_name}' zu '{main_name}' hinzugefügt." +#: TimeTrackerCLI.py:446 +#, python-brace-format +msgid "No tasks to delete for '{name}'." +msgstr "Keine Aufgaben zum Löschen für '{name}' vorhanden." -#: TimeTrackerCLI.py:142 -msgid "\n--- List Tasks ---" -msgstr "\n--- Aufgaben auflisten ---" +#: TimeTrackerCLI.py:449 +#, python-brace-format +msgid "Select a task from '{name}' to delete:" +msgstr "Wähle eine Aufgabe von '{name}' zum Löschen aus:" -#: TimeTrackerCLI.py:145 -msgid "No projects found. Cannot list tasks." -msgstr "Keine Projekte gefunden. Aufgaben können nicht aufgelistet werden." +#: TimeTrackerCLI.py:458 +#, python-brace-format +msgid "Task '{task_name}' deleted from '{main_name}'." +msgstr "Aufgabe '{task_name}' gelöscht aus '{main_name}'." -#: TimeTrackerCLI.py:148 -msgid "Select the project whose tasks you want to list:" -msgstr "Wähle das Projekt, dessen Aufgaben du auflisten möchtest:" +#: TimeTrackerCLI.py:466 +msgid "" +"\n" +"--- Move Task ---" +msgstr "" +"\n" +"--- Aufgabe verschieben ---" -#: TimeTrackerCLI.py:156 -msgid "Tasks for '{name}':" -msgstr "Aufgaben für '{name}':" +#: TimeTrackerCLI.py:469 +msgid "You need at least two open main projects to move a task." +msgstr "" +"Zum Verschieben einer Aufgabe benötigen Sie mindestens zwei offene " +"Hauptprojekte." -#: TimeTrackerCLI.py:159 TimeTrackerCLI.py:262 TimeTrackerCLI.py:489 -msgid "No tasks found for '{name}'." -msgstr "Keine Aufgaben für '{name}' gefunden." +#: TimeTrackerCLI.py:474 +msgid "Select the source main project:" +msgstr "Wählen Sie das Quellhauptprojekt aus:" -#: TimeTrackerCLI.py:163 -msgid "\n--- Rename Task ---" -msgstr "\n--- Aufgabe umbenennen ---" +#: TimeTrackerCLI.py:477 +msgid "Enter the number of the source main project: " +msgstr "Geben Sie die Nummer des Quellhauptprojekts ein:" -#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:201 TimeTrackerCLI.py:414 TimeTrackerCLI.py:437 TimeTrackerCLI.py:482 -msgid "Select the project:" -msgstr "Wähle das Projekt:" +#: TimeTrackerCLI.py:483 +#, python-brace-format +msgid "No tasks to move from '{name}'." +msgstr "Keine Aufgaben zum Verschieben von „{name}“." -#: TimeTrackerCLI.py:177 -msgid "No tasks to rename for '{name}'." -msgstr "Keine Aufgaben zum Umbenennen für '{name}' vorhanden." +#: TimeTrackerCLI.py:486 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to move:" +msgstr "" +"\n" +"Wähle eine Aufgabe von '{name}' zum Verschieben aus:" -#: TimeTrackerCLI.py:180 -msgid "Select a task from '{name}' to rename:" -msgstr "Wähle eine Aufgabe von '{name}' zum Umbenennen aus:" +#: TimeTrackerCLI.py:494 +msgid "" +"\n" +"Select the destination main project:" +msgstr "" +"\n" +"Wählen Sie das Ziel-Hauptprojekt aus:" -#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:214 TimeTrackerCLI.py:267 TimeTrackerCLI.py:307 TimeTrackerCLI.py:499 -msgid "Enter the number of the task: " -msgstr "Gib die Nummer der Aufgabe ein: " +#: TimeTrackerCLI.py:499 +msgid "Enter the number of the destination main project: " +msgstr "Geben Sie die Nummer des Zielhauptprojekts ein:" -#: TimeTrackerCLI.py:190 -msgid "Task '{old_name}' renamed to '{new_name}'." -msgstr "Aufgabe '{old_name}' in '{new_name}' umbenannt." +#: TimeTrackerCLI.py:505 +#, python-brace-format +msgid "" +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." +msgstr "" +"„{task_name}“ wurde erfolgreich von „{source_main_project}“ nach " +"„{dest_main_project}“ verschoben." + +#: TimeTrackerCLI.py:507 +#, python-brace-format +msgid "Error: {message}" +msgstr "Fehler: {message}" -#: TimeTrackerCLI.py:192 +#: TimeTrackerCLI.py:514 msgid "" -"Error: Could not rename. The new name might already exist or the project " -"was not found." -msgstr "Fehler: Umbenennung fehlgeschlagen. Der neue Name existiert möglicherweise bereits oder das Projekt wurde nicht gefunden." +"\n" +"--- List Inactive Tasks ---" +msgstr "" +"\n" +"--- Inaktive Aufgaben auflisten ---" -#: TimeTrackerCLI.py:195 -msgid "\n--- Delete Task ---" -msgstr "\n--- Aufgabe löschen ---" +#: TimeTrackerCLI.py:516 +msgid "Enter the number of weeks without activity (e.g., 4): " +msgstr "Anzahl der Wochen ohne Aktivität eingeben (z.B. 4): " -#: TimeTrackerCLI.py:207 -msgid "No tasks to delete for '{name}'." -msgstr "Keine Aufgaben zum Löschen für '{name}' vorhanden." +#: TimeTrackerCLI.py:524 +#, python-brace-format +msgid "" +"\n" +"Inactive Tasks (>{weeks} weeks):" +msgstr "" +"\n" +"Inaktive Aufgaben (>{weeks} Wochen):" -#: TimeTrackerCLI.py:210 -msgid "Select a task from '{name}' to delete:" -msgstr "Wähle eine Aufgabe von '{name}' zum Löschen aus:" +#: TimeTrackerCLI.py:527 +#, python-brace-format +msgid " Task: {name}" +msgstr " Aufgabe: {name}" -#: TimeTrackerCLI.py:217 -msgid "Task '{sub_name}' deleted from '{main_name}'." -msgstr "Aufgabe '{sub_name}' von '{main_name}' gelöscht." +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1118 +#, python-brace-format +msgid "No tasks found inactive for more than {weeks} weeks." +msgstr "" +"Es wurden keine Aufgaben gefunden, die länger als{weeks}Wochen inaktiv " +"waren." -msgid "\n--- List All Closed Tasks ---" -msgstr "\n--- Alle geschlossenen Aufgaben auflisten ---" +#: TimeTrackerCLI.py:537 +msgid "" +"\n" +"--- List All Closed Tasks ---" +msgstr "" +"\n" +"--- Alle geschlossenen Aufgaben auflisten ---" +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1143 sl/SL_Menu.py:1166 msgid "No closed tasks found." msgstr "Keine geschlossenen Aufgaben gefunden." -msgid "\n--- Delete All Closed Tasks ---" -msgstr "\n--- Alle geschlossenen Aufgaben löschen ---" +#: TimeTrackerCLI.py:547 +msgid "" +"\n" +"--- Delete All Closed Tasks ---" +msgstr "" +"\n" +"--- Alle geschlossenen Aufgaben löschen ---" +#: TimeTrackerCLI.py:548 msgid "Are you sure you want to delete ALL closed tasks? (y/n): " -msgstr "Bist du sicher, dass du ALLE geschlossenen Aufgaben löschen möchtest? (j/n): " +msgstr "" +"Bist du sicher, dass du ALLE geschlossenen Aufgaben löschen möchtest? (j/n):" +" " +#: TimeTrackerCLI.py:551 +#, python-brace-format msgid "{count} closed tasks were deleted." msgstr "{count} geschlossene Aufgaben wurden gelöscht." +#: TimeTrackerCLI.py:553 msgid "Operation cancelled." msgstr "Vorgang abgebrochen." -#: TimeTrackerCLI.py:219 -msgid "Error: Project or task not found." -msgstr "Fehler: Projekt oder Aufgabe nicht gefunden." - -#: TimeTrackerCLI.py:226 -msgid "\n--- List Inactive Tasks ---" -msgstr "\n--- Inaktive Aufgaben auflisten ---" - -#: TimeTrackerCLI.py:228 -msgid "Enter the number of weeks without activity (e.g., 4): " -msgstr "Anzahl der Wochen ohne Aktivität eingeben (z.B. 4): " - -#: TimeTrackerCLI.py:235 -msgid "\nInactive Tasks (>{weeks} weeks):" -msgstr "\nInaktive Aufgaben (>{weeks} Wochen):" - -#: TimeTrackerCLI.py:238 -msgid " Task: {name}" -msgstr " Aufgabe: {name}" - -#: TimeTrackerCLI.py:241 -msgid "No tasks found inactive for more than {weeks} week." -msgid_plural "No tasks found inactive for more than {weeks} weeks." -msgstr[0] "Keine Aufgabe seit mehr als {weeks} Woche inaktiv." -msgstr[1] "Keine Aufgaben seit mehr als {weeks} Wochen inaktiv." - -#: TimeTrackerCLI.py:248 -msgid "\n--- Move Task ---" -msgstr "\n--- Aufgabe verschieben ---" - -#: TimeTrackerCLI.py:250 -msgid "You need at least two projects to move a task." -msgstr "Du benötigst mindestens zwei Projekte, um eine Aufgabe zu verschieben." - -#: TimeTrackerCLI.py:254 -msgid "Select the source project:" -msgstr "Wähle das Quell-Projekt aus:" - -#: TimeTrackerCLI.py:257 -msgid "Enter the number of the source project: " -msgstr "Gib die Nummer des Quell-Projekts ein: " - -#: TimeTrackerCLI.py:265 -msgid "\nSelect a task from '{name}' to move:" -msgstr "\nWähle eine Aufgabe von '{name}' zum Verschieben aus:" - -#: TimeTrackerCLI.py:269 -msgid "\nSelect the destination project:" -msgstr "\nWähle das Ziel-Projekt aus:" - -#: TimeTrackerCLI.py:274 -msgid "Enter the number of the destination project: " -msgstr "Gib die Nummer des Ziel-Projekts ein: " - -#: TimeTrackerCLI.py:279 +#: TimeTrackerCLI.py:557 msgid "" -"Successfully moved '{sub_name}' from '{source_name}' to '{dest_name}'." +"\n" +"--- Promote Task to Main-Project ---" msgstr "" -"'{sub_name}' erfolgreich von '{source_name}' nach '{dest_name}' " -"verschoben." - -#: TimeTrackerCLI.py:281 -msgid "Error: {message}" -msgstr "Fehler: {message}" - -#: TimeTrackerCLI.py:286 -msgid "\n--- Promote Task to Project ---" -msgstr "\n--- Aufgabe zu Projekt befördern ---" +"\n" +"--- Aufgabe zum Hauptprojekt hochstufen ---" -#: TimeTrackerCLI.py:293 -msgid "Select the project containing the task to promote:" -msgstr "Wähle das Projekt der zu befördernden Aufgabe:" +#: TimeTrackerCLI.py:565 +msgid "Select the main project containing the task to promote:" +msgstr "" +"Wählen Sie das Hauptprojekt aus, das die hochzustufende Aufgabe enthält:" -#: TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:574 +#, python-brace-format msgid "No tasks to promote in '{name}'." msgstr "Keine zu befördernden Aufgaben in '{name}'." -#: TimeTrackerCLI.py:304 -msgid "\nSelect a task from '{name}' to promote:" -msgstr "\nWähle eine Aufgabe von '{name}' zum Befördern aus:" - -#: TimeTrackerCLI.py:315 -msgid "\n--- Demote Project to Task ---" -msgstr "\n--- Projekt zu Aufgabe herabstufen ---" - -#: TimeTrackerCLI.py:318 -msgid "You need at least two projects for this operation." -msgstr "Du benötigst mindestens zwei Projekte für diesen Vorgang." - -#: TimeTrackerCLI.py:322 -msgid "Select the project to demote:" -msgstr "Wähle das herabzustufende Projekt aus:" - -#: TimeTrackerCLI.py:325 -msgid "Enter the number of the project to demote: " -msgstr "Gib die Nummer des herabzustufenden Projekts ein: " - -#: TimeTrackerCLI.py:328 -msgid "\nSelect the new parent project:" -msgstr "\nWähle das neue übergeordnete Projekt aus:" - -#: TimeTrackerCLI.py:333 -msgid "Enter the number of the new parent project: " -msgstr "Gib die Nummer des neuen übergeordneten Projekts ein: " - -msgid "Invalid choice. Please enter a number from 0 to 17." -msgstr "Ungültige Auswahl. Bitte eine Zahl von 0 bis 17 eingeben." - -#: TimeTrackerCLI.py:348 -msgid "\n--- Reporting ---" -msgstr "\n--- Berichterstattung ---" - -#: TimeTrackerCLI.py:349 -msgid "1. Daily Report (Today)" -msgstr "1. Tagesbericht (Heute)" - -#: TimeTrackerCLI.py:350 -msgid "2. Daily Report (Specific Day)" -msgstr "2. Tagesbericht (Bestimmter Tag)" - -#: TimeTrackerCLI.py:351 -msgid "3. Date Range Report" -msgstr "3. Zeitraum-Bericht" - -#: TimeTrackerCLI.py:352 -msgid "4. Detailed Task Report" -msgstr "4. Detaillierter Aufgaben-Bericht" - -#: TimeTrackerCLI.py:353 -msgid "5. Detailed Project Report" -msgstr "5. Detaillierter Projekt-Bericht" - -#: TimeTrackerCLI.py:359 -msgid "\n--- Generate Daily Report (Today) ---" -msgstr "\n--- Tagesbericht (Heute) erstellen ---" - -#: TimeTrackerCLI.py:363 -msgid "\n--- Generate Daily Report for a specific Day ---" -msgstr "\n--- Tagesbericht für einen bestimmten Tag erstellen ---" - -#: TimeTrackerCLI.py:364 -msgid "Enter the date (YYYY-MM-DD): " -msgstr "Datum eingeben (JJJJ-MM-TT): " - -#: TimeTrackerCLI.py:369 -msgid "Invalid date format. Please use YYYY-MM-DD." -msgstr "Ungültiges Datumsformat. Bitte JJJJ-MM-TT verwenden." +#: TimeTrackerCLI.py:577 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to promote:" +msgstr "" +"\n" +"Wähle eine Aufgabe von '{name}' zum Befördern aus:" -#: TimeTrackerCLI.py:371 -msgid "\n--- Generate Report for a Date Range ---" -msgstr "\n--- Zeitraum-Bericht erstellen ---" +#: TimeTrackerCLI.py:593 +msgid "" +"\n" +"--- Edit Task ---" +msgstr "" +"\n" +"--- Aufgabe bearbeiten ---" + +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:913 sl/SL_Menu.py:958 +#: sl/SL_Menu.py:1003 sl/SL_Menu.py:1049 sl/SL_Menu.py:1198 sl/SL_Menu.py:1328 +#: sl/SL_Menu.py:1487 sl/SL_Menu.py:1677 +msgid "No open projects found." +msgstr "Keine offenen Projekte gefunden." + +#: TimeTrackerCLI.py:609 +#, python-brace-format +msgid "No open tasks in '{name}'." +msgstr "Keine offenen Aufgaben in „{name}“." + +#: TimeTrackerCLI.py:612 +msgid "Select a task to edit:" +msgstr "Wählen Sie eine Aufgabe zum Bearbeiten aus:" + +#: TimeTrackerCLI.py:616 +msgid "Enter the number: " +msgstr "Geben Sie die Nummer ein:" + +#: TimeTrackerCLI.py:623 +#, python-brace-format +msgid "New name (press Enter to keep '{name}'): " +msgstr "Neuer Name (drücken Sie die Eingabetaste, um „{name}“ beizubehalten):" + +#: TimeTrackerCLI.py:624 +#, python-brace-format +msgid "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " +msgstr "" +"Neues Fälligkeitsdatum (JJJJ-MM-TT, aktuell: „{due}“, zum Löschen „-“ " +"eingeben):" -#: TimeTrackerCLI.py:372 -msgid "Enter the start date (YYYY-MM-DD): " -msgstr "Startdatum eingeben (JJJJ-MM-TT): " +#: TimeTrackerCLI.py:627 +#, python-brace-format +msgid "Is this for today? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"Ist das für heute? (aktuell:{current}, j/n, drücken Sie die Eingabetaste, um" +" beizubehalten):" -#: TimeTrackerCLI.py:373 -msgid "Enter the end date (YYYY-MM-DD): " -msgstr "Enddatum eingeben (JJJJ-MM-TT): " +#: TimeTrackerCLI.py:630 +#, python-brace-format +msgid "Current Note: {note}" +msgstr "Aktuelle Notiz:{note}" -#: TimeTrackerCLI.py:377 -msgid "Error: The start date cannot be after the end date." -msgstr "Fehler: Das Startdatum darf nicht nach dem Enddatum liegen." +#: TimeTrackerCLI.py:631 +msgid "New note (press Enter to keep current): " +msgstr "" +"Neue Notiz (drücken Sie die Eingabetaste, um auf dem neuesten Stand zu " +"bleiben):" -#: TimeTrackerCLI.py:382 -msgid "\n--- Detailed Task Report ---" -msgstr "\n--- Detaillierter Aufgaben-Bericht ---" +#: TimeTrackerCLI.py:635 +#, python-brace-format +msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"Ist diese Aufgabe erledigt? (aktuell:{current}, j/n, drücken Sie die " +"Eingabetaste, um beizubehalten):" -#: TimeTrackerCLI.py:397 -msgid "\nSelect the task for the report:" -msgstr "\nWähle die Aufgabe für den Bericht aus:" +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:1834 +msgid "Task updated successfully." +msgstr "Aufgabe erfolgreich aktualisiert." -#: TimeTrackerCLI.py:405 -msgid "\n--- Detailed Project Report ---" -msgstr "\n--- Detaillierter Projekt-Bericht ---" +#: TimeTrackerCLI.py:641 +msgid "Error updating task." +msgstr "Fehler beim Aktualisieren der Aufgabe." -#: TimeTrackerCLI.py:417 -msgid "Select the project for the report:" -msgstr "Wähle das Projekt für den Bericht aus:" +#: TimeTrackerCLI.py:643 +msgid "Invalid input." +msgstr "Ungültige Eingabe." -#: TimeTrackerCLI.py:424 -msgid "Invalid choice. Please enter a number from 0 to 5." -msgstr "Ungültige Auswahl. Bitte eine Zahl von 0 bis 5 eingeben." +#: TimeTrackerCLI.py:648 +msgid "Invalid choice. Please enter a number from 0 to 11." +msgstr "Ungültige Auswahl. Bitte geben Sie eine Zahl zwischen 0 und 11 ein." -#: TimeTrackerCLI.py:428 TimeTrackerCLI.py:469 -msgid "\n--- Settings ---" -msgstr "\n--- Einstellungen ---" +#: TimeTrackerCLI.py:653 +msgid "" +"\n" +"--- Settings ---" +msgstr "" +"\n" +"--- Einstellungen ---" -#: TimeTrackerCLI.py:429 TimeTrackerCLI.py:562 +#: TimeTrackerCLI.py:654 sl/SL_Menu.py:870 msgid "1. Change Language" msgstr "1. Sprache ändern" +#: TimeTrackerCLI.py:655 sl/SL_Menu.py:871 +msgid "2. Restore Previous Version" +msgstr "2. Vorherige Version wiederherstellen" + +#: TimeTrackerCLI.py:656 sl/SL_Menu.py:872 msgid "3. Change Data Storage Location" msgstr "3. Speicherort der Daten ändern" -#: TimeTrackerCLI.py:430 -msgid "2. Restore Previous Version" -msgstr "2. Vorherige Version wiederherstellen" +#: TimeTrackerCLI.py:657 sl/SL_Menu.py:874 +msgid "4. Change Streamlit Port" +msgstr "4. Streamlit-Port ändern" -msgid "Invalid choice. Please enter a number from 0 to 3." -msgstr "Ungültige Auswahl. Bitte eine Zahl von 0 bis 3 eingeben." +#: TimeTrackerCLI.py:659 TimeTrackerCLI.py:698 TimeTrackerCLI.py:808 +#: sl/SL_Menu.py:881 +msgid "0. Back to Main Menu" +msgstr "0. Zurück zum Hauptmenü" -#: TimeTrackerCLI.py:446 TimeTrackerCLI.py:545 -msgid "\n--- Language Settings ---" -msgstr "\n--- Spracheinstellungen ---" +#: TimeTrackerCLI.py:682 +msgid "Invalid choice. Please enter a number from 0 to 4." +msgstr "Ungültige Auswahl. Bitte geben Sie eine Zahl von 0 bis 4 ein." + +#: TimeTrackerCLI.py:687 +msgid "" +"\n" +"--- Language Settings ---" +msgstr "" +"\n" +"--- Spracheinstellungen ---" -#: TimeTrackerCLI.py:449 TimeTrackerCLI.py:548 +#: TimeTrackerCLI.py:692 msgid "No additional languages found." msgstr "Keine zusätzlichen Sprachen gefunden." -#: TimeTrackerCLI.py:458 TimeTrackerCLI.py:587 +#: TimeTrackerCLI.py:716 +#, python-brace-format msgid "Language changed to '{lang}'. Please restart the application." msgstr "Sprache auf '{lang}' geändert. Bitte die Anwendung neu starten." -#: TimeTrackerCLI.py:460 TimeTrackerCLI.py:590 +#: TimeTrackerCLI.py:719 msgid "Invalid choice." msgstr "Ungültige Auswahl." -#: TimeTrackerCLI.py:462 TimeTrackerCLI.py:592 +#: TimeTrackerCLI.py:721 msgid "Invalid input. Please enter a number." msgstr "Ungültige Eingabe. Bitte eine Zahl eingeben." -msgid "\n--- Data Storage Settings ---" -msgstr "\n--- Datenspeicher-Einstellungen ---" +#: TimeTrackerCLI.py:725 +msgid "" +"\n" +"--- Data Storage Settings ---" +msgstr "" +"\n" +"--- Datenspeicher-Einstellungen ---" +#: TimeTrackerCLI.py:726 +#, python-brace-format msgid "Current data file: {path}" msgstr "Aktuelle Datendatei: {path}" +#: TimeTrackerCLI.py:728 msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." -msgstr "Gib den neuen Pfad für die Datendatei ein (z.B. /pfad/zu/meine_daten.json)." +msgstr "" +"Gib den neuen Pfad für die Datendatei ein (z.B. /pfad/zu/meine_daten.json)." +#: TimeTrackerCLI.py:729 msgid "Leave empty to cancel." msgstr "Leer lassen zum Abbrechen." +#: TimeTrackerCLI.py:730 msgid "New Path: " msgstr "Neuer Pfad: " +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1974 +#, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Fehler: Das Verzeichnis '{dir}' existiert nicht." +#: TimeTrackerCLI.py:752 msgid "Storage location updated." msgstr "Speicherort aktualisiert." +#: TimeTrackerCLI.py:756 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): " +msgstr "" +"Möchtest du die vorhandenen Daten an den neuen Ort verschieben? (j/n): " +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1985 msgid "Data moved successfully." msgstr "Daten erfolgreich verschoben." +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1987 +#, python-brace-format msgid "Error moving data: {error}" msgstr "Fehler beim Verschieben der Daten: {error}" +#: TimeTrackerCLI.py:764 tt/TimeTracker.py:117 +msgid "Please restart the application for the changes to take effect." +msgstr "Bitte starte die Anwendung neu, damit die Änderungen wirksam werden." + +#: TimeTrackerCLI.py:767 +#, python-brace-format msgid "Error updating configuration: {error}" msgstr "Fehler beim Aktualisieren der Konfiguration: {error}" -#: TimeTrackerCLI.py:508 -msgid "\n--- Update Available ---" -msgstr "\n--- Update verfügbar ---" - -#: TimeTrackerCLI.py:509 -msgid "A downloaded update is ready to be installed." -msgstr "Ein heruntergeladenes Update ist zur Installation bereit." - -#: TimeTrackerCLI.py:510 -msgid "0. Skip update for now" -msgstr "0. Update vorerst überspringen" - -#: TimeTrackerCLI.py:511 -msgid "1. Install update now" -msgstr "1. Update jetzt installieren" +#: TimeTrackerCLI.py:771 +msgid "" +"\n" +"--- Streamlit Port Settings ---" +msgstr "" +"\n" +"--- Streamlit-Port-Einstellungen ---" -#: TimeTrackerCLI.py:512 -msgid "Enter your choice (0 or 1): " -msgstr "Auswahl eingeben (0 oder 1): " +#: TimeTrackerCLI.py:781 +#, python-brace-format +msgid "Current Streamlit Port: {port}" +msgstr "Aktueller Streamlit-Port: {port}" -#: TimeTrackerCLI.py:515 -msgid "Application is restarting to complete the update..." -msgstr "Anwendung wird neu gestartet, um das Update abzuschließen..." +#: TimeTrackerCLI.py:783 +msgid "Enter new port (or press Enter to keep current): " +msgstr "" +"Neuen Port eingeben (oder Enter drücken, um aktuellen beizubehalten): " -#: TimeTrackerCLI.py:518 -msgid "Update installation skipped. The application will start normally." -msgstr "Update-Installation übersprungen. Die Anwendung wird normal gestartet." +#: TimeTrackerCLI.py:792 +#, python-brace-format +msgid "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." +msgstr "" +"Port auf {port} aktualisiert. Bitte Streamlit neu starten, damit die " +"Änderungen wirksam werden." -#: TimeTrackerCLI.py:520 +#: TimeTrackerCLI.py:800 msgid "" -"Invalid choice. Update installation skipped. The application will start " -"normally." +"\n" +"--- Reporting ---" msgstr "" -"Ungültige Auswahl. Update-Installation übersprungen. Die Anwendung wird " -"normal gestartet." +"\n" +"--- Berichterstattung ---" -#: TimeTrackerCLI.py:525 -msgid "\n=== Time Control {version} ===" -msgstr "\n=== Time Control {version} ===" +#: TimeTrackerCLI.py:801 +msgid "1. Daily Report (Today)" +msgstr "1. Tagesbericht (Heute)" -#: TimeTrackerCLI.py:526 -msgid "--- Main Menu ---" -msgstr "--- Hauptmenü ---" +#: TimeTrackerCLI.py:802 +msgid "2. Daily Report (Specific Day)" +msgstr "2. Tagesbericht (Bestimmter Tag)" -#: TimeTrackerCLI.py:527 -msgid "1. Start work on task" -msgstr "1. Arbeit an Aufgabe beginnen" +#: TimeTrackerCLI.py:803 +msgid "3. Date Range Report" +msgstr "3. Zeitraum-Bericht" -#: TimeTrackerCLI.py:528 -msgid "2. Show current work" -msgstr "2. Aktuelle Arbeit anzeigen" +#: TimeTrackerCLI.py:804 +msgid "4. Detailed Task Report" +msgstr "4. Detaillierter Aufgaben-Bericht" -#: TimeTrackerCLI.py:529 -msgid "3. Stop current work" -msgstr "3. Aktuelle Arbeit beenden" +#: TimeTrackerCLI.py:805 +msgid "5. Detailed Main-Project Report" +msgstr "5. Detaillierter Hauptprojektbericht" -#: TimeTrackerCLI.py:531 -msgid "4. Handle projects and tasks" -msgstr "4. Projekte und Aufgaben verwalten" +#: TimeTrackerCLI.py:806 +msgid "6. Detailed Daily Report" +msgstr "6. Detaillierter Tagesbericht" -#: TimeTrackerCLI.py:532 -msgid "5. Reporting" -msgstr "5. Berichterstattung" +#: TimeTrackerCLI.py:815 +msgid "" +"\n" +"--- Generate Daily Report (Today) ---" +msgstr "" +"\n" +"--- Tagesbericht (Heute) erstellen ---" -#: TimeTrackerCLI.py:533 -msgid "6. Settings" -msgstr "6. Einstellungen" +#: TimeTrackerCLI.py:820 +msgid "" +"\n" +"--- Generate Daily Report for a specific Day ---" +msgstr "" +"\n" +"--- Tagesbericht für einen bestimmten Tag erstellen ---" -#: TimeTrackerCLI.py:535 -msgid "0. Exit" -msgstr "0. Beenden" +#: TimeTrackerCLI.py:821 +msgid "Enter the date (YYYY-MM-DD): " +msgstr "Datum eingeben (JJJJ-MM-TT): " -#: TimeTrackerCLI.py:541 -msgid "\n--- Start Work on a Task ---" -msgstr "\n--- Arbeit an einer Aufgabe beginnen ---" +#: TimeTrackerCLI.py:827 TimeTrackerCLI.py:842 TimeTrackerCLI.py:903 +msgid "Invalid date format. Please use YYYY-MM-DD." +msgstr "Ungültiges Datumsformat. Bitte JJJJ-MM-TT verwenden." -#: TimeTrackerCLI.py:498 -msgid "Select a task from '{name}':" -msgstr "Wähle eine Aufgabe von '{name}' aus:" +#: TimeTrackerCLI.py:830 +msgid "" +"\n" +"--- Generate Report for a Date Range ---" +msgstr "" +"\n" +"--- Zeitraum-Bericht erstellen ---" -#: TimeTrackerCLI.py:507 -msgid "Work started on '{sub_name}' in project '{main_name}'." -msgstr "Arbeit an '{sub_name}' im Projekt '{main_name}' begonnen." +#: TimeTrackerCLI.py:831 +msgid "Enter the start date (YYYY-MM-DD): " +msgstr "Startdatum eingeben (JJJJ-MM-TT): " +#: TimeTrackerCLI.py:832 +msgid "Enter the end date (YYYY-MM-DD): " +msgstr "Enddatum eingeben (JJJJ-MM-TT): " + +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2227 +msgid "Error: The start date cannot be after the end date." +msgstr "Fehler: Das Startdatum darf nicht nach dem Enddatum liegen." + +#: TimeTrackerCLI.py:844 +msgid "" +"\n" +"--- Detailed Task Report ---" +msgstr "" +"\n" +"--- Detaillierter Aufgaben-Bericht ---" + +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1249 +#: sl/SL_Menu.py:1296 sl/SL_Menu.py:1435 sl/SL_Menu.py:2245 sl/SL_Menu.py:2304 +msgid "No projects found." +msgstr "Keine Projekte gefunden." + +#: TimeTrackerCLI.py:864 +msgid "" +"\n" +"Select the task for the report:" +msgstr "" +"\n" +"Wähle die Aufgabe für den Bericht aus:" + +#: TimeTrackerCLI.py:877 +msgid "" +"\n" +"--- Detailed Main-Project Report ---" +msgstr "" +"\n" +"--- Detaillierter Hauptprojektbericht ---" + +#: TimeTrackerCLI.py:885 +msgid "Select the main project for the report:" +msgstr "Wählen Sie das Hauptprojekt für den Bericht aus:" + +#: TimeTrackerCLI.py:896 +msgid "" +"\n" +"--- Detailed Daily Report ---" +msgstr "" +"\n" +"--- Detaillierter Tagesbericht ---" + +#: TimeTrackerCLI.py:897 +msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " +msgstr "Datum eingeben (JJJJ-MM-TT) oder Enter für heute drücken: " + +#: TimeTrackerCLI.py:911 TimeTrackerCLI.py:1042 +msgid "Invalid choice. Please enter a number from 0 to 6." +msgstr "Ungültige Auswahl. Bitte eine Zahl von 0 bis 6 eingeben." + +#: TimeTrackerCLI.py:919 +msgid "" +"\n" +"--- Update Available ---" +msgstr "" +"\n" +"--- Update verfügbar ---" + +#: TimeTrackerCLI.py:920 +msgid "A downloaded update is ready to be installed." +msgstr "Ein heruntergeladenes Update ist zur Installation bereit." + +#: TimeTrackerCLI.py:921 +msgid "0. Skip update for now" +msgstr "0. Update vorerst überspringen" + +#: TimeTrackerCLI.py:922 +msgid "1. Install update now" +msgstr "1. Update jetzt installieren" + +#: TimeTrackerCLI.py:923 +msgid "Enter your choice (0 or 1): " +msgstr "Auswahl eingeben (0 oder 1): " + +#: TimeTrackerCLI.py:927 +msgid "Application is restarting to complete the update..." +msgstr "Anwendung wird neu gestartet, um das Update abzuschließen..." + +#: TimeTrackerCLI.py:931 +msgid "Update installation skipped. The application will start normally." +msgstr "" +"Update-Installation übersprungen. Die Anwendung wird normal gestartet." + +#: TimeTrackerCLI.py:933 +msgid "" +"Invalid choice. Update installation skipped. The application will start " +"normally." +msgstr "" +"Ungültige Auswahl. Update-Installation übersprungen. Die Anwendung wird " +"normal gestartet." + +#: TimeTrackerCLI.py:940 +#, python-brace-format +msgid "" +"\n" +"=== Time Control {version} ===" +msgstr "" +"\n" +"=== Time Control {version} ===" + +#: TimeTrackerCLI.py:941 +msgid "--- Main Menu ---" +msgstr "--- Hauptmenü ---" + +#: TimeTrackerCLI.py:942 +msgid "1. Start work on task" +msgstr "1. Arbeit an Aufgabe beginnen" + +#: TimeTrackerCLI.py:943 +msgid "2. Show current work" +msgstr "2. Aktuelle Arbeit anzeigen" + +#: TimeTrackerCLI.py:944 +msgid "3. Stop current work" +msgstr "3. Aktuelle Arbeit beenden" + +#: TimeTrackerCLI.py:946 +msgid "4. Handle projects and tasks" +msgstr "4. Projekte und Aufgaben verwalten" + +#: TimeTrackerCLI.py:947 +msgid "5. Reporting" +msgstr "5. Berichterstattung" + +#: TimeTrackerCLI.py:948 +msgid "6. Settings" +msgstr "6. Einstellungen" + +#: TimeTrackerCLI.py:950 +msgid "0. Exit" +msgstr "0. Beenden" + +#: TimeTrackerCLI.py:957 +msgid "" +"\n" +"--- Start Work on a Task ---" +msgstr "" +"\n" +"--- Arbeit an einer Aufgabe beginnen ---" + +#: TimeTrackerCLI.py:963 +msgid "Select a main project:" +msgstr "Wählen Sie ein Hauptprojekt aus:" + +#: TimeTrackerCLI.py:974 +#, python-brace-format +msgid "No open tasks found for '{name}' to start work on." +msgstr "" +"Für „{name}“ wurden keine offenen Aufgaben gefunden, an denen mit der Arbeit" +" begonnen werden kann." + +#: TimeTrackerCLI.py:977 +#, python-brace-format +msgid "Select a task from '{name}':" +msgstr "Wähle eine Aufgabe von '{name}' aus:" + +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:1884 +#, 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:1888 msgid "Error starting work." msgstr "Fehler beim Starten der Arbeit." -#: TimeTrackerCLI.py:514 -msgid "\n--- Current Active Work ---" -msgstr "\n--- Aktuell laufende Arbeit ---" +#: TimeTrackerCLI.py:996 +msgid "" +"\n" +"--- Current Active Work ---" +msgstr "" +"\n" +"--- Aktuell laufende Arbeit ---" -#: TimeTrackerCLI.py:523 +#: TimeTrackerCLI.py:1006 msgid "You are currently working on:" msgstr "Du arbeitest gerade an:" -#: TimeTrackerCLI.py:524 -msgid " Project: {name}" -msgstr " Projekt: {name}" +#: TimeTrackerCLI.py:1007 +#, python-brace-format +msgid " Main Project: {name}" +msgstr "Hauptprojekt:{name}" -#: TimeTrackerCLI.py:525 -msgid " Task: {name}" -msgstr " Aufgabe: {name}" +#: TimeTrackerCLI.py:1008 +#, python-brace-format +msgid " Task: {name}" +msgstr "Aufgabe:{name}" -#: TimeTrackerCLI.py:526 +#: TimeTrackerCLI.py:1009 +#, python-brace-format msgid " Started at: {date}" msgstr " Begonnen um: {date}" -#: TimeTrackerCLI.py:527 +#: TimeTrackerCLI.py:1010 +#, python-brace-format msgid " Duration: {duration}" msgstr " Dauer: {duration}" -#: TimeTrackerCLI.py:529 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:373 sl/SL_Menu.py:1910 msgid "No active work session." msgstr "Keine aktive Arbeitssitzung." -#: TimeTrackerCLI.py:532 -msgid "\n--- Stop Work ---" -msgstr "\n--- Arbeit beenden ---" +#: TimeTrackerCLI.py:1016 +msgid "" +"\n" +"--- Stop Work ---" +msgstr "" +"\n" +"--- Arbeit beenden ---" -#: TimeTrackerCLI.py:534 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:341 msgid "Work session stopped successfully." msgstr "Arbeitssitzung erfolgreich beendet." -#: TimeTrackerCLI.py:536 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:343 msgid "No active work session to stop." msgstr "Keine aktive Arbeitssitzung zum Beenden." -#: TimeTrackerCLI.py:598 -msgid "\nChecking for updates..." -msgstr "\nPrüfe auf Updates..." +#: TimeTrackerCLI.py:1034 +msgid "" +"\n" +"Checking for updates..." +msgstr "" +"\n" +"Prüfe auf Updates..." -#: TimeTrackerCLI.py:602 +#: TimeTrackerCLI.py:1038 msgid "Exiting application. Goodbye!" msgstr "Anwendung wird beendet. Auf Wiedersehen!" -#: TimeTrackerCLI.py:605 -msgid "Invalid choice. Please enter a number from 0 to 6." -msgstr "Ungültige Auswahl. Bitte eine Zahl von 0 bis 6 eingeben." - -#: update.py:24 +#: update.py:35 msgid "" "Warning: Update check skipped. 'github_repo' not found in config.json or " "file is invalid." @@ -940,71 +1297,86 @@ msgstr "" "Warnung: Update-Prüfung übersprungen. 'github_repo' nicht in config.json " "gefunden oder Datei ist ungültig." -#: update.py:38 +#: update.py:49 +#, python-brace-format msgid "A new version ({version}) is available." msgstr "Eine neue Version ({version}) ist verfügbar." -#: update.py:43 +#: update.py:55 msgid "Error: Download URL for the new version not found." msgstr "Fehler: Download-URL für die neue Version nicht gefunden." -#: update.py:47 +#: update.py:59 +#, python-brace-format msgid "Error checking for updates: {error}" msgstr "Fehler bei der Suche nach Updates: {error}" -#: update.py:49 +#: update.py:61 +#, python-brace-format msgid "An unexpected error occurred while checking for updates: {error}" -msgstr "Ein unerwarteter Fehler ist bei der Update-Prüfung aufgetreten: {error}" +msgstr "" +"Ein unerwarteter Fehler ist bei der Update-Prüfung aufgetreten: {error}" -#: update.py:61 +#: update.py:73 msgid "Downloading update..." msgstr "Update wird heruntergeladen..." -#: update.py:67 +#: update.py:79 msgid "Download complete. The update will be installed on the next start." -msgstr "Download abgeschlossen. Das Update wird beim nächsten Start installiert." +msgstr "" +"Download abgeschlossen. Das Update wird beim nächsten Start installiert." -#: update.py:70 +#: update.py:82 +#, python-brace-format msgid "Error downloading the update: {error}" msgstr "Fehler beim Herunterladen des Updates: {error}" -#: update.py:112 +#: update.py:108 msgid "Creating backup of current version before update..." msgstr "Erstelle Backup der aktuellen Version vor dem Update..." -#: update.py:121 +#: update.py:118 +#, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Backup erfolgreich als {filename} erstellt." -#: update.py:123 +#: update.py:120 +#, python-brace-format msgid "Warning: Could not create backup. Error: {error}" msgstr "Warnung: Backup konnte nicht erstellt werden. Fehler: {error}" -#: update.py:125 +#: update.py:122 msgid "Installing update..." msgstr "Update wird installiert..." -#: update.py:143 +#: update.py:142 +#, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." -msgstr "Geschützte Datei wird übersprungen: {filename}. Sie wird nicht überschrieben." +msgstr "" +"Geschützte Datei wird übersprungen: {filename}. Sie wird nicht " +"überschrieben." -#: update.py:152 +#: update.py:151 msgid "Update installed successfully." msgstr "Update erfolgreich installiert." -#: update.py:154 +#: update.py:153 +#, python-brace-format msgid "Error during update installation: {error}" msgstr "Fehler bei der Installation des Updates: {error}" -#: update.py:164 +#: update.py:168 +#, python-brace-format msgid "Error: No previous version backup '{filename}' found." msgstr "Fehler: Kein Backup der vorherigen Version '{filename}' gefunden." -#: update.py:167 +#: update.py:171 +#, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Stelle vorherige Version aus '{filename}' wieder her..." -#: update.py:182 +#: update.py:192 +#, python-brace-format msgid "" "Skipping user data file: {filename}. It will not be overwritten during " "restore." @@ -1012,252 +1384,1326 @@ msgstr "" "Überspringe Benutzerdatendatei: {filename}. Sie wird bei der " "Wiederherstellung nicht überschrieben." -#: update.py:188 +#: update.py:199 msgid "Previous version restored successfully." msgstr "Vorherige Version erfolgreich wiederhergestellt." -#: update.py:190 +#: update.py:201 msgid "Restarting application to apply changes..." msgstr "Anwendung wird neu gestartet, um die Änderungen zu übernehmen..." -#: update.py:192 +#: update.py:204 +#, python-brace-format msgid "Error during restoration: {error}" msgstr "Fehler bei der Wiederherstellung: {error}" -#: update.py:193 +#: update.py:205 +#, python-brace-format msgid "The backup file '{filename}' was not deleted." msgstr "Die Backup-Datei '{filename}' wurde nicht gelöscht." -msgid "# Detailed Daily Report: {date}" -msgstr "# Detaillierter Tagesbericht: {date}" +#: update.py:212 +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 +msgid "Checking for updates..." +msgstr "Suche nach Updates..." + +#: update.py:222 +msgid "No updates available." +msgstr "Keine Updates verfügbar." + +#: tt/TimeTracker.py:90 +#, python-brace-format +msgid "Warning: Could not read {file}. Error: {error}" +msgstr "Warnung: Konnte {file} nicht lesen. Fehler: {error}" + +#: tt/TimeTracker.py:105 +msgid "Some required packages are missing. Attempting to install them..." +msgstr "" +"Einige benötigte Pakete fehlen. Es wird versucht, sie zu installieren..." + +#: tt/TimeTracker.py:108 +#, python-brace-format +msgid "Installing {package}..." +msgstr "Installiere {package}..." + +#: tt/TimeTracker.py:112 +#, python-brace-format +msgid "Failed to install {package}. Continuing without it." +msgstr "Installation von{package}fehlgeschlagen. Weiter ohne." + +#: tt/TimeTracker.py:116 +msgid "" +"\n" +"Dependencies installed successfully." +msgstr "" +"\n" +"Abhängigkeiten erfolgreich installiert." + +#: tt/TimeTracker.py:120 +#, python-brace-format +msgid "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" +msgstr "" +"\n" +"Warnung: Einige Abhängigkeiten konnten nicht installiert werden:{packages}" + +#: tt/TimeTracker.py:122 +#, python-brace-format +msgid "An unexpected error occurred during dependency check: {error}" +msgstr "" +"Ein unerwarteter Fehler bei der Abhängigkeitsprüfung ist aufgetreten: " +"{error}" + +#: tt/TimeTracker.py:229 +msgid "Info: Report content has been copied to the clipboard." +msgstr "Info: Der Berichtsinhalt wurde in die Zwischenablage kopiert." + +#: tt/TimeTracker.py:231 +#, python-brace-format +msgid "Warning: Could not copy to clipboard. Error: {error}" +msgstr "Warnung: Konnte nicht in die Zwischenablage kopieren. Fehler: {error}" + +#: tt/TimeTracker.py:233 +msgid "" +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." +msgstr "" +"Warnung: Konnte nicht in die Zwischenablage kopieren. Bitte 'pyperclip' " +"installieren (`pip install pyperclip`)." + +#: tt/TimeTracker.py:253 +#, python-brace-format +msgid "{hours} hours ({dlp} DLP)" +msgstr "{hours}Stunden ({dlp}DLP)" + +#: tt/TimeTracker.py:846 tt/TimeTracker.py:886 +#, python-brace-format +msgid "Source main project '{name}' not found." +msgstr "Quellhauptprojekt „{name}“ nicht gefunden." + +#: tt/TimeTracker.py:848 +#, python-brace-format +msgid "Destination main project '{name}' not found." +msgstr "Ziel-Hauptprojekt „{name}“ nicht gefunden." + +#: tt/TimeTracker.py:860 +#, python-brace-format +msgid "Task '{task_name}' moved successfully." +msgstr "Aufgabe „{task_name}“ wurde erfolgreich verschoben." + +#: tt/TimeTracker.py:861 tt/TimeTracker.py:896 tt/TimeTracker.py:1373 +#, python-brace-format +msgid "Task '{task_name}' not found in '{main_name}'." +msgstr "Aufgabe „{task_name}“ nicht in „{main_name}“ gefunden." + +#: tt/TimeTracker.py:880 +#, python-brace-format +msgid "A main project named '{name}' already exists." +msgstr "Ein Hauptprojekt mit dem Namen „{name}“ existiert bereits." + +#: tt/TimeTracker.py:905 +msgid "General" +msgstr "Allgemein" + +#: tt/TimeTracker.py:909 +#, python-brace-format +msgid "Task '{task_name}' was promoted to a new main project." +msgstr "Aufgabe „{task_name}“ wurde in ein neues Hauptprojekt hochgestuft." + +#: tt/TimeTracker.py:936 +#, python-brace-format +msgid "Main project to demote '{name}' not found." +msgstr "Hauptprojekt zur Herabstufung von „{name}“ nicht gefunden." + +#: tt/TimeTracker.py:938 +#, python-brace-format +msgid "New parent main project '{name}' not found." +msgstr "Neues übergeordnetes Hauptprojekt „{name}“ nicht gefunden." + +#: tt/TimeTracker.py:963 +#, python-brace-format +msgid "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." +msgstr "" +"Das Hauptprojekt „{demoted_name}“ wurde zu einem Unterprojekt unter " +"„{parent_name}“ herabgestuft." + +#: tt/TimeTracker.py:1042 +msgid "Email import is not enabled." +msgstr "E-Mail-Import ist nicht aktiviert." + +#: tt/TimeTracker.py:1051 +msgid "Email settings are incomplete." +msgstr "E-Mail-Einstellungen sind unvollständig." + +#: tt/TimeTracker.py:1064 +msgid "Error searching emails." +msgstr "Fehler beim Durchsuchen der E-Mails." +#: tt/TimeTracker.py:1079 +msgid "No Subject" +msgstr "Kein Betreff" + +#: tt/TimeTracker.py:1139 +msgid "Unknown Task" +msgstr "Unbekannte Aufgabe" + +#: tt/TimeTracker.py:1330 +#, python-brace-format +msgid "- {name}: {hours} hours" +msgstr "-{name}:{hours}Stunden" + +#: tt/TimeTracker.py:1338 +#, python-brace-format +msgid "## {name} ({hours} hours)\n" +msgstr "##{name}({hours}Stunden)\n" + +#: tt/TimeTracker.py:1347 +#, python-brace-format +msgid "# Daily Time Report: {date}\n" +msgstr "# Tagesbericht: {date}\n" + +#: tt/TimeTracker.py:1348 +#, python-brace-format +msgid "" +"\n" +"**Total Daily Time: {hours} hours**" +msgstr "" +"\n" +"**Tägliche Gesamtzeit:{hours}Stunden**" + +#: tt/TimeTracker.py:1352 tt/TimeTracker.py:1665 +#, python-brace-format +msgid "No time tracked for {date}." +msgstr "Keine Zeit für {date} erfasst." + +#: tt/TimeTracker.py:1369 tt/TimeTracker.py:1464 +#, python-brace-format +msgid "Main project '{name}' not found." +msgstr "Hauptprojekt „{name}“ nicht gefunden." + +#: tt/TimeTracker.py:1377 +#, 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:1410 tt/TimeTracker.py:1640 msgid "now" msgstr "jetzt" -msgid "\nNo time tracked for {date}." -msgstr "\nKeine Zeit für {date} erfasst." +#: tt/TimeTracker.py:1411 sl/SL_Menu.py:1908 +msgid "Duration" +msgstr "Dauer" -msgid "# Detailed Report for Sub-Project: {name}" -msgstr "# Detaillierter Unterprojekt-Bericht: {name}" +#: tt/TimeTracker.py:1415 +#, python-brace-format +msgid "# Detailed Report for Task: {name}" +msgstr "# Detaillierter Bericht für Aufgabe:{name}" +#: tt/TimeTracker.py:1416 +#, python-brace-format msgid "Part of Main Project: {name}" msgstr "Teil des Hauptprojekts: {name}" +#: tt/TimeTracker.py:1419 msgid "Active (currently running)" msgstr "Aktiv (läuft gerade)" +#: tt/TimeTracker.py:1419 tt/TimeTracker.py:1516 msgid "Inactive" msgstr "Inaktiv" +#: tt/TimeTracker.py:1420 tt/TimeTracker.py:1517 msgid "Status" msgstr "Status" +#: tt/TimeTracker.py:1422 tt/TimeTracker.py:1519 msgid "First entry" msgstr "Erster Eintrag" +#: tt/TimeTracker.py:1424 tt/TimeTracker.py:1521 msgid "Last activity" msgstr "Letzte Aktivität" +#: tt/TimeTracker.py:1426 tt/TimeTracker.py:1523 msgid "Total recorded time" msgstr "Erfasste Gesamtzeit" +#: tt/TimeTracker.py:1427 tt/TimeTracker.py:1525 msgid "Total work sessions" msgstr "Gesamtzahl der Arbeitssitzungen" +#: tt/TimeTracker.py:1431 tt/TimeTracker.py:1529 msgid "Average session duration" msgstr "Durchschnittliche Sitzungsdauer" +#: tt/TimeTracker.py:1434 tt/TimeTracker.py:1532 msgid "Weekday Distribution" msgstr "Verteilung auf Wochentage" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Monday" msgstr "Montag" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Tuesday" msgstr "Dienstag" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Wednesday" msgstr "Mittwoch" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Thursday" msgstr "Donnerstag" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Friday" msgstr "Freitag" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Saturday" msgstr "Samstag" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Sunday" msgstr "Sonntag" +#: tt/TimeTracker.py:1444 msgid "Daily Breakdown" msgstr "Tagesaufschlüsselung" -msgid "Duration" -msgstr "Dauer" +#: tt/TimeTracker.py:1513 +#, python-brace-format +msgid "# Detailed Report for Main Project: {name}" +msgstr "# Detaillierter Bericht für Hauptprojekt:{name}" -msgid "# Detailed Report for Project: {name}" -msgstr "# Detaillierter Projekt-Bericht: {name}" +#: tt/TimeTracker.py:1516 +#, python-brace-format +msgid "Active (working on '{task_name}')" +msgstr "Aktiv (arbeitet an '{task_name}')" +#: tt/TimeTracker.py:1524 msgid "Number of tasks" msgstr "Anzahl der Aufgaben" -msgid "Active (working on '{sub_name}')" -msgstr "Aktiv (arbeitet an '{sub_name}')" - +#: tt/TimeTracker.py:1543 msgid "Task Breakdown" msgstr "Aufschlüsselung nach Aufgaben" +#: tt/TimeTracker.py:1552 +#, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} Sitzungen" -msgid "\n--- Detailed Daily Report ---" -msgstr "\n--- Detaillierter Tagesbericht ---" +#: tt/TimeTracker.py:1605 +#, python-brace-format +msgid "# Time Report: {start_date} to {end_date}\n" +msgstr "# Zeitbericht: {start_date} bis {end_date}\n" -msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " -msgstr "Datum eingeben (JJJJ-MM-TT) oder Enter für heute drücken: " +#: tt/TimeTracker.py:1606 +#, python-brace-format +msgid "" +"\n" +"**Total Time in Period: {total_time}**" +msgstr "" +"\n" +"**Gesamtzeit im Zeitraum: {total_time}**" -msgid "Start work on task" -msgstr "Arbeit an Aufgabe beginnen" +#: tt/TimeTracker.py:1610 +#, python-brace-format +msgid "No time tracked between {start_date} and {end_date}." +msgstr "Keine Zeit zwischen {start_date} und {end_date} erfasst." -msgid "Show current work" -msgstr "Aktuelle Arbeit anzeigen" +#: tt/TimeTracker.py:1626 +#, python-brace-format +msgid "# Detailed Daily Report: {date}" +msgstr "# Detaillierter Tagesbericht: {date}" -msgid "Stop current work" -msgstr "Aktuelle Arbeit beenden" +#: sl/SL_Menu.py:277 +msgid "New" +msgstr "Neu" -msgid "Handle projects and tasks" -msgstr "Projekte und Aufgaben verwalten" +#: sl/SL_Menu.py:278 +msgid "New Project" +msgstr "Neues Projekt" -msgid "Project Management" -msgstr "Projektverwaltung" +#: sl/SL_Menu.py:281 +msgid "New Task" +msgstr "Neue Aufgabe" -msgid "Reporting" -msgstr "Berichterstattung" +#: sl/SL_Menu.py:286 +msgid "Project & Task Management" +msgstr "Projekt- und Aufgabenverwaltung" -msgid "Settings" -msgstr "Einstellungen" +#: sl/SL_Menu.py:287 sl/SL_Menu.py:780 +msgid "Main Project Management" +msgstr "Hauptprojektverwaltung" -msgid "Task Management" -msgstr "Aufgabenverwaltung" +#: sl/SL_Menu.py:288 sl/SL_Menu.py:796 sl/SL_Menu.py:894 +msgid "Add Project" +msgstr "Projekt hinzufügen" -msgid "Daily Report (Today)" -msgstr "Tagesbericht (Heute)" +#: sl/SL_Menu.py:291 sl/SL_Menu.py:799 sl/SL_Menu.py:1242 +msgid "List Projects" +msgstr "Projekte auflisten" -msgid "Daily Report (Specific Day)" -msgstr "Tagesbericht (Bestimmter Tag)" +#: sl/SL_Menu.py:292 sl/SL_Menu.py:800 sl/SL_Menu.py:1257 +msgid "Rename Project" +msgstr "Projekt umbenennen" -msgid "Date Range Report" -msgstr "Zeitraum-Bericht" +#: sl/SL_Menu.py:293 sl/SL_Menu.py:801 sl/SL_Menu.py:1371 sl/SL_Menu.py:1384 +msgid "Close Project" +msgstr "Projekt schließen" -msgid "Detailed Task Report" -msgstr "Detaillierter Aufgaben-Bericht" +#: sl/SL_Menu.py:294 sl/SL_Menu.py:802 sl/SL_Menu.py:1401 sl/SL_Menu.py:1414 +msgid "Re-open Project" +msgstr "Projekt wieder öffnen" +#: sl/SL_Menu.py:295 sl/SL_Menu.py:803 sl/SL_Menu.py:1431 sl/SL_Menu.py:1445 +msgid "Delete Project" +msgstr "Projekt löschen" + +#: sl/SL_Menu.py:296 sl/SL_Menu.py:804 sl/SL_Menu.py:1462 +msgid "List Inactive Projects" +msgstr "Inaktive Projekte auflisten" + +#: sl/SL_Menu.py:297 sl/SL_Menu.py:805 +msgid "Demote Project to Task" +msgstr "Projekt zu Aufgabe herabstufen" + +#: sl/SL_Menu.py:298 sl/SL_Menu.py:806 sl/SL_Menu.py:1524 +msgid "List Completed Projects" +msgstr "Abgeschlossene Projekte auflisten" + +#: sl/SL_Menu.py:300 sl/SL_Menu.py:782 sl/SL_Menu.py:817 +msgid "Task Management" +msgstr "Aufgabenverwaltung" + +#: sl/SL_Menu.py:301 sl/SL_Menu.py:819 sl/SL_Menu.py:1542 sl/SL_Menu.py:1573 +#: sl/SL_Menu.py:1646 +msgid "Add Task" +msgstr "Aufgabe hinzufügen" + +#: sl/SL_Menu.py:304 sl/SL_Menu.py:822 sl/SL_Menu.py:1292 +msgid "List Tasks" +msgstr "Aufgaben auflisten" + +#: sl/SL_Menu.py:305 sl/SL_Menu.py:823 sl/SL_Menu.py:1324 +msgid "Rename Task" +msgstr "Aufgabe umbenennen" + +#: sl/SL_Menu.py:306 sl/SL_Menu.py:824 sl/SL_Menu.py:909 sl/SL_Menu.py:935 +#: sl/SL_Menu.py:1114 +msgid "Close Task" +msgstr "Aufgabe schließen" + +#: sl/SL_Menu.py:307 sl/SL_Menu.py:825 sl/SL_Menu.py:954 sl/SL_Menu.py:980 +msgid "Re-open Task" +msgstr "Aufgabe erneut öffnen" + +#: sl/SL_Menu.py:308 sl/SL_Menu.py:826 sl/SL_Menu.py:999 sl/SL_Menu.py:1026 +msgid "Delete Task" +msgstr "Aufgabe löschen" + +#: sl/SL_Menu.py:309 sl/SL_Menu.py:827 sl/SL_Menu.py:1045 sl/SL_Menu.py:1081 +msgid "Move Task" +msgstr "Aufgabe verschieben" + +#: sl/SL_Menu.py:310 sl/SL_Menu.py:828 sl/SL_Menu.py:1100 +msgid "List Inactive Tasks" +msgstr "Inaktive Aufgaben auflisten" + +#: sl/SL_Menu.py:311 sl/SL_Menu.py:829 sl/SL_Menu.py:1127 +msgid "List All Closed Tasks" +msgstr "Alle geschlossenen Aufgaben auflisten" + +#: sl/SL_Menu.py:312 sl/SL_Menu.py:477 sl/SL_Menu.py:539 sl/SL_Menu.py:626 +#: sl/SL_Menu.py:830 sl/SL_Menu.py:1673 sl/SL_Menu.py:1693 sl/SL_Menu.py:1728 +msgid "Edit Task" +msgstr "Aufgabe bearbeiten" + +#: sl/SL_Menu.py:315 sl/SL_Menu.py:833 sl/SL_Menu.py:1152 +msgid "Delete All Closed Tasks" +msgstr "Alle geschlossenen Aufgaben löschen" + +#: sl/SL_Menu.py:316 sl/SL_Menu.py:834 sl/SL_Menu.py:1194 +msgid "Promote Task to Project" +msgstr "Aufgabe zum Projekt hochstufen" + +#: sl/SL_Menu.py:319 +msgid "Today View" +msgstr "Heute-Ansicht" + +#: sl/SL_Menu.py:323 sl/SL_Menu.py:405 +msgid "Task Planning" +msgstr "Aufgabenplanung" + +#: sl/SL_Menu.py:327 sl/SL_Menu.py:655 +msgid "E-Mail Task Assignment" +msgstr "Zuordnung von E-Mail-Tasks" + +#: sl/SL_Menu.py:331 sl/SL_Menu.py:473 sl/SL_Menu.py:535 sl/SL_Menu.py:622 +msgid "Start work on task" +msgstr "Arbeit an Aufgabe beginnen" + +#: sl/SL_Menu.py:335 +msgid "Show current work" +msgstr "Aktuelle Arbeit anzeigen" + +#: sl/SL_Menu.py:339 +msgid "Stop current work" +msgstr "Aktuelle Arbeit beenden" + +#: sl/SL_Menu.py:347 sl/SL_Menu.py:845 +msgid "Reporting" +msgstr "Berichterstattung" + +#: sl/SL_Menu.py:348 sl/SL_Menu.py:848 +msgid "Daily Report (Today)" +msgstr "Tagesbericht (Heute)" + +#: sl/SL_Menu.py:352 sl/SL_Menu.py:853 sl/SL_Menu.py:2195 +msgid "Daily Report (Specific Day)" +msgstr "Tagesbericht (Bestimmter Tag)" + +#: sl/SL_Menu.py:354 sl/SL_Menu.py:854 sl/SL_Menu.py:2214 +msgid "Date Range Report" +msgstr "Zeitraum-Bericht" + +#: sl/SL_Menu.py:356 sl/SL_Menu.py:855 sl/SL_Menu.py:2241 sl/SL_Menu.py:2272 +msgid "Detailed Task Report" +msgstr "Detaillierter Aufgaben-Bericht" + +#: sl/SL_Menu.py:358 sl/SL_Menu.py:856 sl/SL_Menu.py:2300 msgid "Detailed Project Report" msgstr "Detaillierter Projekt-Bericht" +#: sl/SL_Menu.py:360 sl/SL_Menu.py:857 sl/SL_Menu.py:2327 msgid "Detailed Daily Report" msgstr "Detaillierter Tagesbericht" -msgid "Exit" -msgstr "Beenden" +#: sl/SL_Menu.py:364 sl/SL_Menu.py:868 +msgid "Settings" +msgstr "Einstellungen" +#: sl/SL_Menu.py:371 sl/SL_Menu.py:1897 msgid "Current Active Work" msgstr "Aktuell laufende Arbeit" -msgid "Demote Project to Task" -msgstr "Projekt zu Aufgabe herabstufen" +#: sl/SL_Menu.py:376 sl/SL_Menu.py:497 sl/SL_Menu.py:559 sl/SL_Menu.py:633 +#: sl/SL_Menu.py:1773 +msgid "Done" +msgstr "Erledigt" -msgid "Change Language" -msgstr "Sprache ändern" +#: sl/SL_Menu.py:390 +msgid "Edit current task" +msgstr "Aktuellen Task bearbeiten" -msgid "Restore Previous Version" -msgstr "Vorherige Version wiederherstellen" +#: sl/SL_Menu.py:398 +msgid "Exit" +msgstr "Beenden" -msgid "Change Data Storage Location" -msgstr "Speicherort der Daten ändern" +#: sl/SL_Menu.py:410 sl/SL_Menu.py:420 +msgid "Tomorrow" +msgstr "Morgen" + +#: sl/SL_Menu.py:411 sl/SL_Menu.py:421 +msgid "Weekly overview" +msgstr "Wochenübersicht" + +#: sl/SL_Menu.py:412 sl/SL_Menu.py:422 +msgid "Overdue tasks" +msgstr "Überfällige Aufgaben" + +#: sl/SL_Menu.py:413 sl/SL_Menu.py:423 +msgid "Unplanned tasks" +msgstr "Ungeplante Aufgaben" + +#: sl/SL_Menu.py:414 +msgid "All" +msgstr "Alle" + +#: sl/SL_Menu.py:416 +msgid "Filter" +msgstr "Filter" + +#: sl/SL_Menu.py:430 +msgid "Tasks" +msgstr "Aufgaben" + +#: sl/SL_Menu.py:572 +msgid "No tasks found." +msgstr "Keine Aufgaben gefunden." + +#: sl/SL_Menu.py:574 sl/SL_Menu.py:648 sl/SL_Menu.py:770 sl/SL_Menu.py:810 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:914 sl/SL_Menu.py:925 sl/SL_Menu.py:959 +#: sl/SL_Menu.py:970 sl/SL_Menu.py:1004 sl/SL_Menu.py:1015 sl/SL_Menu.py:1050 +#: sl/SL_Menu.py:1061 sl/SL_Menu.py:1069 sl/SL_Menu.py:1120 sl/SL_Menu.py:1145 +#: sl/SL_Menu.py:1167 sl/SL_Menu.py:1199 sl/SL_Menu.py:1210 sl/SL_Menu.py:1250 +#: sl/SL_Menu.py:1262 sl/SL_Menu.py:1297 sl/SL_Menu.py:1317 sl/SL_Menu.py:1329 +#: sl/SL_Menu.py:1340 sl/SL_Menu.py:1376 sl/SL_Menu.py:1406 sl/SL_Menu.py:1436 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1488 sl/SL_Menu.py:1535 sl/SL_Menu.py:1547 +#: sl/SL_Menu.py:1678 sl/SL_Menu.py:1697 sl/SL_Menu.py:1710 sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1858 sl/SL_Menu.py:1868 sl/SL_Menu.py:1912 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:2102 sl/SL_Menu.py:2207 sl/SL_Menu.py:2234 sl/SL_Menu.py:2246 +#: sl/SL_Menu.py:2258 sl/SL_Menu.py:2277 sl/SL_Menu.py:2293 sl/SL_Menu.py:2305 +#: sl/SL_Menu.py:2320 sl/SL_Menu.py:2339 sl/SL_Menu.py:2380 sl/SL_Menu.py:2395 +msgid "Back" +msgstr "Zurück" -msgid "Select Action" -msgstr "Aktion auswählen" +#: sl/SL_Menu.py:581 +msgid "Today's Tasks" +msgstr "Heutige Aufgaben" -msgid "Select Project" -msgstr "Projekt auswählen" +#: sl/SL_Menu.py:646 +msgid "No tasks for today." +msgstr "Keine Aufgaben für heute." -msgid "Select Task" -msgstr "Aufgabe auswählen" +#: sl/SL_Menu.py:661 +msgid "Fetching emails..." +msgstr "E-Mails werden abgerufen..." + +#: sl/SL_Menu.py:664 +#, python-brace-format +msgid "Error fetching emails: {error}" +msgstr "Fehler beim E-Mail-Abruf: {error}" +#: sl/SL_Menu.py:667 +#, python-brace-format +msgid "{count} new tasks created from emails." +msgstr "{count} neue Aufgaben aus E-Mails erstellt." + +#: sl/SL_Menu.py:669 +msgid "No new emails found." +msgstr "Keine neuen E-Mails gefunden." + +#: sl/SL_Menu.py:675 +msgid "No unassigned email tasks available." +msgstr "Keine nicht zugeordneten E-Mail-Tasks vorhanden." + +#: sl/SL_Menu.py:687 +msgid "Assign Project" +msgstr "Projekt zuordnen" + +#: sl/SL_Menu.py:698 +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:701 +msgid "Yes, delete" +msgstr "Ja, löschen" + +#: sl/SL_Menu.py:706 +msgid "No, cancel" +msgstr "Nein, abbrechen" + +#: sl/SL_Menu.py:713 +msgid "Delete" +msgstr "Löschen" + +#: sl/SL_Menu.py:717 +msgid "Edit Details" +msgstr "Details bearbeiten" + +#: sl/SL_Menu.py:725 sl/SL_Menu.py:1757 +msgid "Task Name" +msgstr "Aufgabenname" + +#: sl/SL_Menu.py:734 sl/SL_Menu.py:1761 +msgid "Due Date" +msgstr "Fälligkeitsdatum" + +#: sl/SL_Menu.py:742 sl/SL_Menu.py:1765 +msgid "Clear" +msgstr "Löschen" + +#: sl/SL_Menu.py:749 sl/SL_Menu.py:1634 sl/SL_Menu.py:1804 +msgid "Notes (Markdown)" +msgstr "Notizen (Markdown)" + +#: sl/SL_Menu.py:751 sl/SL_Menu.py:1816 +msgid "Save Changes" +msgstr "Änderungen speichern" + +#: sl/SL_Menu.py:762 +msgid "Task details updated successfully." +msgstr "Aufgabendetails erfolgreich aktualisiert." + +#: sl/SL_Menu.py:768 +msgid "Error updating task details." +msgstr "Fehler beim Aktualisieren der Aufgabendetails." + +#: sl/SL_Menu.py:778 sl/SL_Menu.py:794 +msgid "Project Management" +msgstr "Projektverwaltung" + +#: sl/SL_Menu.py:787 sl/SL_Menu.py:861 msgid "Back to Main Menu" msgstr "Zurück zum Hauptmenü" -msgid "Time Control" -msgstr "Zeitkontrolle" +#: sl/SL_Menu.py:873 sl/SL_Menu.py:2000 +msgid "Report Format" +msgstr "Berichtsformat" + +#: sl/SL_Menu.py:875 sl/SL_Menu.py:2159 +msgid "Email Settings" +msgstr "E-Mail-Einstellungen" +#: sl/SL_Menu.py:876 sl/SL_Menu.py:2020 msgid "Change CSS Style" msgstr "CSS-Stil ändern" +#: sl/SL_Menu.py:877 sl/SL_Menu.py:2058 msgid "Change View Mode" msgstr "Anzeigemodus ändern" -msgid "Back" -msgstr "Zurück" +#: sl/SL_Menu.py:890 +msgid "Add New Project" +msgstr "Neues Projekt hinzufügen" + +#: sl/SL_Menu.py:893 +msgid "Name of the project" +msgstr "Name des Projekts" +#: sl/SL_Menu.py:897 +#, python-brace-format +msgid "Project '{name}' added." +msgstr "Projekt '{name}' hinzugefügt." + +#: sl/SL_Menu.py:901 sl/SL_Menu.py:947 sl/SL_Menu.py:992 sl/SL_Menu.py:1038 +#: sl/SL_Menu.py:1093 sl/SL_Menu.py:1187 sl/SL_Menu.py:1235 sl/SL_Menu.py:1285 +#: sl/SL_Menu.py:1364 sl/SL_Menu.py:1394 sl/SL_Menu.py:1424 sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1517 sl/SL_Menu.py:1557 sl/SL_Menu.py:1666 sl/SL_Menu.py:1685 +#: sl/SL_Menu.py:1843 sl/SL_Menu.py:1890 sl/SL_Menu.py:1934 sl/SL_Menu.py:1995 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2051 sl/SL_Menu.py:2084 sl/SL_Menu.py:2152 +#: sl/SL_Menu.py:2188 msgid "Cancel" msgstr "Abbrechen" -msgid "Next" -msgstr "Weiter" +#: sl/SL_Menu.py:919 sl/SL_Menu.py:964 sl/SL_Menu.py:1009 sl/SL_Menu.py:1204 +#: sl/SL_Menu.py:1267 sl/SL_Menu.py:1302 sl/SL_Menu.py:1334 sl/SL_Menu.py:1383 +#: sl/SL_Menu.py:1413 sl/SL_Menu.py:1443 sl/SL_Menu.py:1863 sl/SL_Menu.py:2251 +#: sl/SL_Menu.py:2312 +msgid "Select Project" +msgstr "Projekt auswählen" -msgid "Save" -msgstr "Speichern" +#: sl/SL_Menu.py:924 +#, python-brace-format +msgid "No open tasks to close in '{name}'." +msgstr "Keine offenen Aufgaben zum Schließen in „{name}“." -msgid "Add Project" -msgstr "Projekt hinzufügen" +#: sl/SL_Menu.py:931 sl/SL_Menu.py:976 sl/SL_Menu.py:1021 sl/SL_Menu.py:1075 +#: sl/SL_Menu.py:1216 sl/SL_Menu.py:1344 sl/SL_Menu.py:1700 sl/SL_Menu.py:1874 +#: sl/SL_Menu.py:2282 +msgid "Select Task" +msgstr "Aufgabe auswählen" -msgid "Close Project" -msgstr "Projekt schließen" +#: sl/SL_Menu.py:941 +#, python-brace-format +msgid "Task '{sub_name}' in '{main_name}' has been closed." +msgstr "Aufgabe „{sub_name}“ in „{main_name}“ wurde geschlossen." -msgid "Re-open Project" -msgstr "Projekt wieder öffnen" +#: sl/SL_Menu.py:969 +#, python-brace-format +msgid "No closed tasks to reopen in '{name}'." +msgstr "Keine geschlossenen Aufgaben zum erneuten Öffnen in „{name}“." -msgid "Delete Project" -msgstr "Projekt löschen" +#: sl/SL_Menu.py:986 +#, 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:1014 +#, python-brace-format +msgid "No open tasks to delete in '{name}'." +msgstr "Keine offenen Aufgaben zum Löschen in „{name}“." + +#: sl/SL_Menu.py:1025 +msgid "This action cannot be undone." +msgstr "Diese Aktion kann nicht rückgängig gemacht werden." + +#: sl/SL_Menu.py:1032 +#, python-brace-format +msgid "Task '{sub_name}' deleted from '{main_name}'." +msgstr "Aufgabe '{sub_name}' von '{main_name}' gelöscht." + +#: sl/SL_Menu.py:1055 +msgid "Select Source Project" +msgstr "Quellprojekt auswählen" + +#: sl/SL_Menu.py:1060 +#, python-brace-format +msgid "No tasks found in '{name}'." +msgstr "Keine Aufgaben in „{name}“ gefunden." +#: sl/SL_Menu.py:1068 +msgid "No other projects available to move to." +msgstr "Keine anderen Projekte zum Verschieben verfügbar." + +#: sl/SL_Menu.py:1079 sl/SL_Menu.py:1503 +msgid "Select Target Project" +msgstr "Zielprojekt auswählen" + +#: sl/SL_Menu.py:1087 +#, python-brace-format +msgid "Task '{sub}' moved from '{src}' to '{dst}'." +msgstr "Aufgabe „{sub}“ wurde von „{src}“ nach „{dst}“ verschoben." + +#: sl/SL_Menu.py:1091 +msgid "Error: Could not move task." +msgstr "Fehler: Aufgabe konnte nicht verschoben werden." + +#: sl/SL_Menu.py:1102 sl/SL_Menu.py:1464 +msgid "Weeks of inactivity" +msgstr "Wochen der Inaktivität" + +#: sl/SL_Menu.py:1107 +#, python-brace-format +msgid "Inactive Tasks (> {weeks} weeks):" +msgstr "Inaktive Aufgaben (>{weeks}Wochen):" + +#: sl/SL_Menu.py:1112 sl/SL_Menu.py:1472 +msgid "Last Activity" +msgstr "Letzte Aktivität" + +#: sl/SL_Menu.py:1171 +#, python-brace-format +msgid "" +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." +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:1173 +msgid "Show projects to delete" +msgstr "Zu löschende Projekte anzeigen" + +#: sl/SL_Menu.py:1177 +msgid "Delete All" +msgstr "Alle löschen" + +#: sl/SL_Menu.py:1183 +#, python-brace-format +msgid "Successfully deleted {count} tasks." +msgstr "{count}Aufgaben erfolgreich gelöscht." + +#: sl/SL_Menu.py:1209 +#, python-brace-format +msgid "No open tasks to promote in '{name}'." +msgstr "Keine offenen Aufgaben zum Heraufstufen in „{name}“." + +#: sl/SL_Menu.py:1220 +msgid "" +"This will create a new Project with the task's name and move all time " +"entries to a 'General' task within it." +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:1222 +msgid "Promote to Project" +msgstr "Hochstufen zum Projekt" + +#: sl/SL_Menu.py:1261 +msgid "No open projects to rename." +msgstr "Keine offenen Projekte zum Umbenennen." + +#: sl/SL_Menu.py:1270 sl/SL_Menu.py:1349 +msgid "New Name" +msgstr "Neuer Name" + +#: sl/SL_Menu.py:1271 sl/SL_Menu.py:1350 +msgid "Rename" +msgstr "Umbenennen" + +#: sl/SL_Menu.py:1275 sl/SL_Menu.py:1354 +msgid "Please enter a new name." +msgstr "Bitte geben Sie einen neuen Namen ein." + +#: sl/SL_Menu.py:1277 sl/SL_Menu.py:1356 +msgid "New name is the same as the old name." +msgstr "Neuer Name ist derselbe wie der alte Name." + +#: sl/SL_Menu.py:1279 +#, 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:1339 +#, python-brace-format +msgid "No open tasks to rename in '{name}'." +msgstr "Keine offenen Aufgaben zum Umbenennen in „{name}“." + +#: sl/SL_Menu.py:1362 +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:1375 +msgid "No open projects to close." +msgstr "Keine offenen Projekte zum Schließen." + +#: sl/SL_Menu.py:1388 +#, python-brace-format +msgid "Project '{name}' has been closed." +msgstr "Das Projekt „{name}“ wurde geschlossen." + +#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1422 sl/SL_Menu.py:1453 +msgid "Error: Project not found." +msgstr "Fehler: Projekt nicht gefunden." + +#: sl/SL_Menu.py:1405 +msgid "No closed projects to reopen." +msgstr "Keine geschlossenen Projekte zum erneuten Öffnen." + +#: sl/SL_Menu.py:1418 +#, python-brace-format +msgid "Project '{name}' has been reopened." +msgstr "Das Projekt „{name}“ wurde erneut geöffnet." + +#: sl/SL_Menu.py:1444 +msgid "" +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." +msgstr "" +"Diese Aktion kann nicht rückgängig gemacht werden. Alle zugehörigen Aufgaben" +" und Zeiteinträge werden gelöscht." + +#: sl/SL_Menu.py:1449 +#, python-brace-format +msgid "Project '{name}' has been deleted." +msgstr "Projekt „{name}“ wurde gelöscht." + +#: sl/SL_Menu.py:1469 +#, python-brace-format +msgid "Inactive Projects (> {weeks} weeks):" +msgstr "Inaktive Projekte (>{weeks}Wochen):" + +#: sl/SL_Menu.py:1474 +#, 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:1483 sl/SL_Menu.py:1506 msgid "Demote Project" msgstr "Projekt herabstufen" -msgid "Promote to Main Project" -msgstr "Zum Hauptprojekt befördern" +#: sl/SL_Menu.py:1495 +msgid "Select Project to Demote" +msgstr "Wählen Sie das Projekt zum Herabstufen aus." + +#: sl/SL_Menu.py:1501 +msgid "No other projects available to demote into." +msgstr "Es sind keine anderen Projekte zum Herabstufen verfügbar." + +#: sl/SL_Menu.py:1504 +#, 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:1529 +msgid "Projects with only closed or no tasks:" +msgstr "Projekte mit nur abgeschlossenen oder keinen Aufgaben:" + +#: sl/SL_Menu.py:1533 +msgid "No completed projects found." +msgstr "Keine abgeschlossenen Projekte gefunden." + +#: sl/SL_Menu.py:1542 sl/SL_Menu.py:1673 sl/SL_Menu.py:2241 +msgid "Step 1: Select Project" +msgstr "Schritt 1: Projekt auswählen" + +#: sl/SL_Menu.py:1546 sl/SL_Menu.py:1857 +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:1551 sl/SL_Menu.py:1680 sl/SL_Menu.py:1905 +msgid "Project" +msgstr "Projekt" + +#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1681 sl/SL_Menu.py:1705 sl/SL_Menu.py:2253 +msgid "Next" +msgstr "Weiter" + +#: sl/SL_Menu.py:1568 sl/SL_Menu.py:2267 +msgid "No project selected. Please start again." +msgstr "Kein Projekt ausgewählt. Bitte beginnen Sie erneut." + +#: sl/SL_Menu.py:1573 +msgid "To Project:" +msgstr "Zum Projekt:" + +#: sl/SL_Menu.py:1594 +msgid "Name of the new task" +msgstr "Name der neuen Aufgabe" + +#: sl/SL_Menu.py:1600 +msgid "Due date" +msgstr "Fälligkeitsdatum" + +#: sl/SL_Menu.py:1606 sl/SL_Menu.py:1775 +msgid "Recurring" +msgstr "Wiederkehrend" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "daily" +msgstr "täglich" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "on all business days" +msgstr "an allen Geschäftstagen" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "weekly" +msgstr "wöchentlich" +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "monthly" +msgstr "monatlich" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "userdefined" +msgstr "benutzerdefiniert" + +#: sl/SL_Menu.py:1624 sl/SL_Menu.py:1797 +msgid "Frequency" +msgstr "Häufigkeit" + +#: sl/SL_Menu.py:1628 sl/SL_Menu.py:1800 +msgid "Days" +msgstr "Tage" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Edit" +msgstr "Bearbeiten" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Preview" +msgstr "Vorschau" + +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1807 +msgid "No notes provided." +msgstr "Keine Notizen bereitgestellt." + +#: sl/SL_Menu.py:1642 sl/SL_Menu.py:1812 +msgid "A due date is required for recurring tasks." +msgstr "Für wiederkehrende Aufgaben ist ein Fälligkeitsdatum erforderlich." + +#: sl/SL_Menu.py:1650 +msgid "Please enter a name." +msgstr "Bitte geben Sie einen Namen ein." + +#: sl/SL_Menu.py:1661 +#, python-brace-format +msgid "Task '{sub_name}' added to '{main_name}'." +msgstr "Aufgabe '{sub_name}' zu '{main_name}' hinzugefügt." + +#: sl/SL_Menu.py:1693 sl/SL_Menu.py:2272 +msgid "Step 2: Select Task from" +msgstr "Schritt 2: Aufgabe auswählen aus" + +#: sl/SL_Menu.py:1696 +msgid "No open tasks found." +msgstr "Keine offenen Aufgaben gefunden." + +#: sl/SL_Menu.py:1724 +msgid "Task not found." +msgstr "Aufgabe nicht gefunden." + +#: sl/SL_Menu.py:1840 +msgid "Error: Could not update task." +msgstr "Fehler: Aufgabe konnte nicht aktualisiert werden." + +#: sl/SL_Menu.py:1853 +msgid "Start Work on Task" +msgstr "Arbeit an Aufgabe beginnen" + +#: sl/SL_Menu.py:1867 +#, 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:1878 msgid "Start Work" msgstr "Arbeit beginnen" -msgid "Generate Report" -msgstr "Bericht erstellen" +#: sl/SL_Menu.py:1906 +msgid "Task" +msgstr "Aufgabe" -msgid "Delete All" -msgstr "Alle löschen" +#: sl/SL_Menu.py:1907 +msgid "Started at" +msgstr "Gestartet um" -msgid "Restore and Restart" -msgstr "Wiederherstellen und neu starten" +#: sl/SL_Menu.py:1918 +msgid "Streamlit Port Settings" +msgstr "Streamlit-Port-Einstellungen" + +#: sl/SL_Menu.py:1922 +msgid "Current Streamlit Port" +msgstr "Aktueller Streamlit-Port" + +#: sl/SL_Menu.py:1925 +msgid "New Port" +msgstr "Neuer Port" + +#: sl/SL_Menu.py:1926 sl/SL_Menu.py:1958 sl/SL_Menu.py:2007 sl/SL_Menu.py:2042 +#: sl/SL_Menu.py:2074 sl/SL_Menu.py:2141 sl/SL_Menu.py:2173 +msgid "Save" +msgstr "Speichern" + +#: sl/SL_Menu.py:1930 +#, 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:1940 +msgid "Change Data Storage Location" +msgstr "Speicherort der Daten ändern" + +#: sl/SL_Menu.py:1943 +msgid "Current data file" +msgstr "Aktuelle Datendatei" + +#: sl/SL_Menu.py:1946 +msgid "New Path for data file" +msgstr "Neuer Pfad für Datendatei" + +#: sl/SL_Menu.py:1952 +msgid "Move existing data to the new location" +msgstr "Vorhandene Daten an den neuen Speicherort verschieben" + +#: sl/SL_Menu.py:1955 +msgid "" +"If unchecked, the old data file will remain, and a new empty one might be " +"created at the new location on restart." +msgstr "" +"Wenn diese Option deaktiviert ist, bleibt die alte Datendatei erhalten und " +"beim Neustart wird möglicherweise eine neue leere Datei am neuen Speicherort" +" erstellt." +#: sl/SL_Menu.py:1962 +msgid "Please enter a new path." +msgstr "Bitte geben Sie einen neuen Pfad ein." + +#: sl/SL_Menu.py:1970 +msgid "" +"Error: For security, the data file must be located within the application " +"directory." +msgstr "" +"Fehler: Aus Sicherheitsgründen muss sich die Datendatei im " +"Anwendungsverzeichnis befinden." + +#: sl/SL_Menu.py:1980 +msgid "" +"Storage location updated. Please restart the application for the changes to " +"take effect." +msgstr "" +"Speicherort aktualisiert. Bitte starten Sie die Anwendung neu, damit die " +"Änderungen wirksam werden." + +#: sl/SL_Menu.py:2006 +msgid "Select Format" +msgstr "Format auswählen" + +#: sl/SL_Menu.py:2011 +msgid "Report format updated." +msgstr "Berichtsformat aktualisiert." + +#: sl/SL_Menu.py:2024 msgid "Current CSS file" msgstr "Aktuelle CSS-Datei" +#: sl/SL_Menu.py:2041 msgid "Select CSS File" msgstr "CSS-Datei auswählen" -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:2047 +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:2063 msgid "App Window (Webview)" msgstr "App-Fenster (Webview)" +#: sl/SL_Menu.py:2063 msgid "System Browser" msgstr "System-Browser" +#: sl/SL_Menu.py:2073 msgid "Select View Mode" msgstr "Anzeigemodus auswählen" -msgid "View mode updated. Please restart the application for the changes to take effect." -msgstr "Anzeigemodus aktualisiert. Bitte die Anwendung für die Änderungen neu starten." +#: sl/SL_Menu.py:2080 +msgid "" +"View mode updated. Please restart the application for the changes to take " +"effect." +msgstr "" +"Anzeigemodus aktualisiert. Bitte die Anwendung für die Änderungen neu " +"starten." + +#: sl/SL_Menu.py:2091 +msgid "Restore Previous Version" +msgstr "Vorherige Version wiederherstellen" + +#: sl/SL_Menu.py:2096 +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:2101 +#, python-brace-format +msgid "No previous version backup '{filename}' found." +msgstr "Keine Sicherung der vorherigen Version „{filename}“ gefunden." + +#: sl/SL_Menu.py:2105 +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 "" +"Dadurch wird die Anwendung auf die zuvor gesicherte Version " +"wiederhergestellt. Die Anwendung wird dann neu gestartet. Möglicherweise " +"müssen Sie Ihren Browser manuell aktualisieren, wenn die Verbindung nicht " +"automatisch wiederhergestellt wird." + +#: sl/SL_Menu.py:2107 +msgid "Restore and Restart" +msgstr "Wiederherstellen und neu starten" + +#: sl/SL_Menu.py:2108 +msgid "Restoring and restarting..." +msgstr "Wiederherstellung und Neustart..." + +#: sl/SL_Menu.py:2111 +msgid "Restore complete. Please restart the application." +msgstr "Wiederherstellung abgeschlossen. Bitte starten Sie die Anwendung neu." + +#: sl/SL_Menu.py:2117 +msgid "Change Language" +msgstr "Sprache ändern" + +#: sl/SL_Menu.py:2140 +msgid "Select Language" +msgstr "Sprache auswählen" + +#: sl/SL_Menu.py:2148 +msgid "" +"Language changed. Please restart the application for the changes to take " +"effect." +msgstr "" +"Sprache geändert. Bitte starten Sie die Anwendung neu, damit die Änderungen " +"wirksam werden." + +#: sl/SL_Menu.py:2166 +msgid "Enable email import" +msgstr "E-Mail-Import aktivieren" + +#: sl/SL_Menu.py:2167 +msgid "IMAP Server" +msgstr "IMAP-Server" + +#: sl/SL_Menu.py:2168 +msgid "Port" +msgstr "Port" + +#: sl/SL_Menu.py:2169 +msgid "Username" +msgstr "Benutzername" + +#: sl/SL_Menu.py:2170 +msgid "Password" +msgstr "Passwort" + +#: sl/SL_Menu.py:2171 +msgid "Use SSL" +msgstr "SSL verwenden" + +#: sl/SL_Menu.py:2184 +msgid "Email settings saved." +msgstr "E-Mail-Einstellungen gespeichert." + +#: sl/SL_Menu.py:2198 sl/SL_Menu.py:2330 +msgid "Select Date" +msgstr "Datum auswählen" + +#: sl/SL_Menu.py:2199 sl/SL_Menu.py:2223 sl/SL_Menu.py:2287 sl/SL_Menu.py:2313 +#: sl/SL_Menu.py:2331 +msgid "Generate Report" +msgstr "Bericht erstellen" + +#: sl/SL_Menu.py:2219 +msgid "Start Date" +msgstr "Startdatum" + +#: sl/SL_Menu.py:2221 +msgid "End Date" +msgstr "Enddatum" + +#: sl/SL_Menu.py:2346 +msgid "Report Result" +msgstr "Berichtsergebnis" + +#: sl/SL_Menu.py:2375 +msgid "Export Report" +msgstr "Bericht exportieren" + +#~ msgid "" +#~ "\n" +#~ "Error: Failed to install dependencies. Please install them manually using: pip install -r {requirements_path}" +#~ msgstr "" +#~ "\n" +#~ "Fehler: Installation der Abhängigkeiten fehlgeschlagen. Bitte manuell installieren mit: pip install -r {requirements_path}" + +#~ msgid "A task named '{sub_name}' already exists in '{main_name}'." +#~ msgstr "" +#~ "Eine Aufgabe mit dem Namen '{sub_name}' existiert bereits in '{main_name}'." + +#~ msgid "Project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Projekt '{old_name}' wurde in '{new_name}' umbenannt." + +#~ msgid "Task '{old_name}' has been renamed to '{new_name}'." +#~ msgstr "Aufgabe '{old_name}' wurde in '{new_name}' umbenannt." + +#~ msgid "Invalid choice. Please enter a number from 0 to 3." +#~ msgstr "Ungültige Auswahl. Bitte eine Zahl von 0 bis 3 eingeben." + +#~ msgid "Work started on '{sub_name}' in project '{main_name}'." +#~ msgstr "Arbeit an '{sub_name}' im Projekt '{main_name}' begonnen." + +#~ msgid " Project: {name}" +#~ msgstr " Projekt: {name}" + +#~ msgid "" +#~ "\n" +#~ "No time tracked for {date}." +#~ msgstr "" +#~ "\n" +#~ "Keine Zeit für {date} erfasst." + +#~ msgid "# Detailed Report for Sub-Project: {name}" +#~ msgstr "# Detaillierter Unterprojekt-Bericht: {name}" + +#~ msgid "Handle projects and tasks" +#~ msgstr "Projekte und Aufgaben verwalten" + +#~ msgid "Select Action" +#~ msgstr "Aktion auswählen" + +#~ msgid "Time Control" +#~ msgstr "Zeitkontrolle" diff --git a/locale/en/LC_MESSAGES/timetracker.mo b/locale/en/LC_MESSAGES/timetracker.mo index a6cf713..6f9d086 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 80f53bf..d0bbb24 100644 --- a/locale/en/LC_MESSAGES/timetracker.po +++ b/locale/en/LC_MESSAGES/timetracker.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" -"Report-Msgid-Bugs-To: https://github.com/FrankFaulstich/TimeControl/issues\n" -"POT-Creation-Date: 2026-01-01 14:00+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-18 12:24+0200\n" "PO-Revision-Date: 2026-01-01 14:10+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: English\n" @@ -16,779 +16,1104 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Edit current task" -msgstr "Edit current task" - -#: TimeTracker.py:63 -msgid "Warning: Could not read {file}. Error: {error}" -msgstr "Warning: Could not read {file}. Error: {error}" - -#: TimeTracker.py:75 -msgid "Some required packages are missing. Attempting to install them..." -msgstr "Some required packages are missing. Attempting to install them..." - -#: TimeTracker.py:78 -msgid "Installing {package}..." -msgstr "Installing {package}..." - -#: TimeTracker.py:81 -msgid "" -"\n" -"Dependencies installed successfully." -msgstr "" -"\n" -"Dependencies installed successfully." - -#: TimeTracker.py:82 -msgid "Please restart the application for the changes to take effect." -msgstr "Please restart the application for the changes to take effect." - -#: TimeTracker.py:85 +#: TimeTrackerCLI.py:25 msgid "" "\n" -"Error: Failed to install dependencies. Please install them manually using: " -"pip install -r {requirements_path}" +"--- Project Management ---" msgstr "" "\n" -"Error: Failed to install dependencies. Please install them manually using: " -"pip install -r {requirements_path}" - -#: TimeTracker.py:88 -msgid "An unexpected error occurred during dependency check: {error}" -msgstr "An unexpected error occurred during dependency check: {error}" - -#: TimeTracker.py:112 -msgid "Info: Report content has been copied to the clipboard." -msgstr "Info: Report content has been copied to the clipboard." - -#: TimeTracker.py:114 -msgid "Warning: Could not copy to clipboard. Error: {error}" -msgstr "Warning: Could not copy to clipboard. Error: {error}" - -#: TimeTracker.py:116 -msgid "" -"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " -"install pyperclip`)." -msgstr "" -"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " -"install pyperclip`)." - -#: TimeTracker.py:130 -msgid "{hours} hour ({dlp} DLP)" -msgid_plural "{hours} hours ({dlp} DLP)" -msgstr[0] "{hours} hour ({dlp} DLP)" -msgstr[1] "{hours} hours ({dlp} DLP)" - -msgid "closed" -msgstr "closed" - -#: TimeTracker.py:350 -msgid "Source main project '{name}' not found." -msgstr "Source main project '{name}' not found." - -#: TimeTracker.py:352 -msgid "Destination main project '{name}' not found." -msgstr "Destination main project '{name}' not found." - -#: tt/TimeTracker.py:356 -msgid "A task named '{task_name}' already exists in '{main_name}'." -msgstr "A task named '{task_name}' already exists in '{main_name}'." - -msgid "Task '{task_name}' moved successfully." -msgstr "Task '{task_name}' moved successfully." - -#: TimeTracker.py:378 -msgid "A main project named '{name}' already exists." -msgstr "A main project named '{name}' already exists." - -msgid "Main project '{old_name}' renamed to '{new_name}'." -msgstr "Main project '{old_name}' renamed to '{new_name}'." - -#: TimeTracker.py:398 -msgid "Task '{sub_name}' not found in '{main_name}'." -msgstr "Task '{sub_name}' not found in '{main_name}'." - -#: TimeTracker.py:406 -msgid "General" -msgstr "General" - -#: TimeTracker.py:410 -msgid "Task '{name}' was promoted to a new main project." -msgstr "Task '{name}' was promoted to a new main project." - -#: TimeTracker.py:439 -msgid "Main project to demote '{name}' not found." -msgstr "Main project to demote '{name}' not found." - -#: TimeTracker.py:441 -msgid "New parent main project '{name}' not found." -msgstr "New parent main project '{name}' not found." - -#: TimeTracker.py:455 -msgid "Task '{old_name}' has been renamed to '{new_name}'." -msgstr "Task '{old_name}' has been renamed to '{new_name}'." - -#: TimeTracker.py:463 -msgid "" -"Main project '{demoted_name}' was demoted to a task under " -"'{parent_name}'." -msgstr "" -"Main project '{demoted_name}' was demoted to a task under " -"'{parent_name}'." - -msgid "Task Planning" -msgstr "Task Planning" - -msgid "Today View" -msgstr "Today View" - -msgid "E-Mail Task Assignment" -msgstr "E-Mail Task Assignment" - -msgid "Fetching emails..." -msgstr "Fetching emails..." - -msgid "Error fetching emails: {error}" -msgstr "Error fetching emails: {error}" - -msgid "{count} new tasks created from emails." -msgstr "{count} new tasks created from emails." - -msgid "No unassigned email tasks available." -msgstr "No unassigned email tasks available." - -msgid "Assign Project" -msgstr "Assign Project" - -msgid "Edit Details" -msgstr "Edit Details" - -msgid "Due Date" -msgstr "Due Date" - -msgid "Task Name" -msgstr "Task Name" - -msgid "Task details updated successfully." -msgstr "Task details updated successfully." - -msgid "Error updating task details." -msgstr "Error updating task details." - -msgid "Email Settings" -msgstr "Email Settings" - -#: TimeTracker.py:651 -msgid "- {name}: {hours} hour" -msgid_plural "- {name}: {hours} hours" -msgstr[0] "- {name}: {hours} hour" -msgstr[1] "- {name}: {hours} hours" +"--- Project Management ---" -#: TimeTracker.py:657 -msgid "## {name} ({hours} hour)\n" -msgid_plural "## {name} ({hours} hours)\n" -msgstr[0] "## {name} ({hours} hour)\n" -msgstr[1] "## {name} ({hours} hours)\n" +#: TimeTrackerCLI.py:26 +msgid "1. Main Project Management" +msgstr "1. Main Project Management" -#: TimeTracker.py:665 -msgid "# Daily Time Report: {date}\n" -msgstr "# Daily Time Report: {date}\n" +#: TimeTrackerCLI.py:27 +msgid "2. Task Management" +msgstr "2. Task Management" -#: tt/TimeTracker.py:917 -msgid "\n**Total Daily Time: {hours} hours**" -msgstr "\n**Total Daily Time: {hours} hours**" +#: TimeTrackerCLI.py:29 +msgid "0. Back to Main Menu" +msgstr "0. Back to Main Menu" -#: TimeTracker.py:670 -msgid "No time tracked for {date}." -msgstr "No time tracked for {date}." +#: TimeTrackerCLI.py:32 TimeTrackerCLI.py:60 TimeTrackerCLI.py:257 +#: TimeTrackerCLI.py:662 TimeTrackerCLI.py:701 TimeTrackerCLI.py:811 +#: TimeTrackerCLI.py:953 +msgid "Choice: " +msgstr "Choice: " -#: TimeTracker.py:708 -msgid "# Time Report: {start_date} to {end_date}\n" -msgstr "# Time Report: {start_date} to {end_date}\n" +#: TimeTrackerCLI.py:41 +msgid "Invalid choice. Please enter a number from 0 to 2." +msgstr "Invalid choice. Please enter a number from 0 to 2." -#: TimeTracker.py:709 +#: TimeTrackerCLI.py:46 msgid "" "\n" -"**Total Time in Period: {total_time}**" +"--- Main Project Management ---" msgstr "" "\n" -"**Total Time in Period: {total_time}**" - -#: TimeTracker.py:721 -msgid "No time tracked between {start_date} and {end_date}." -msgstr "No time tracked between {start_date} and {end_date}." - -#: TimeTrackerCLI.py:21 -msgid "\n--- Project Management ---" -msgstr "\n--- Project Management ---" +"--- Main Project Management ---" -#: TimeTrackerCLI.py:22 +#: TimeTrackerCLI.py:47 msgid "1. Add Main Project" msgstr "1. Add Main Project" -#: TimeTrackerCLI.py:24 +#: TimeTrackerCLI.py:48 msgid "2. List Main Projects" msgstr "2. List Main Projects" -#: TimeTrackerCLI.py:24 +#: TimeTrackerCLI.py:49 msgid "3. Rename Main Project" msgstr "3. Rename Main Project" -#: TimeTrackerCLI.py:25 -msgid "4. Delete Main Project" -msgstr "4. Delete Main Project" - -#: TimeTrackerCLI.py:26 -msgid "5. List Inactive Main Projects" -msgstr "5. List Inactive Main Projects" - -#: TimeTrackerCLI.py:27 -msgid "6. Demote Main-Project to Sub-Project" -msgstr "6. Demote Main-Project to Sub-Project" - -#: TimeTrackerCLI.py:29 -msgid "7. Add Sub-Project" -msgstr "7. Add Sub-Project" - -#: TimeTrackerCLI.py:30 -msgid "8. List Sub-Projects" -msgstr "8. List Sub-Projects" - -#: TimeTrackerCLI.py:31 TimeTrackerCLI.py:32 -msgid "9. Rename Sub-Project" -msgstr "9. Rename Sub-Project" - -msgid "10. Close Sub-Project" -msgstr "10. Close Sub-Project" - -msgid "11. Re-open Sub-Project" -msgstr "11. Re-open Sub-Project" - -msgid "12. Delete Sub-Project" -msgstr "12. Delete Task" - -msgid "13. Move Sub-Project" -msgstr "13. Move Task" +#: TimeTrackerCLI.py:50 +msgid "4. Close Main Project" +msgstr "4. Close Main Project" -msgid "14. List Inactive Sub-Projects" -msgstr "14. List Inactive Tasks" +#: TimeTrackerCLI.py:51 +msgid "5. Re-open Main Project" +msgstr "5. Re-open Main Project" -msgid "15. List All Closed Sub-Projects" -msgstr "15. List All Closed Tasks" +#: TimeTrackerCLI.py:52 +msgid "6. Delete Main Project" +msgstr "6. Delete Main Project" -msgid "16. Delete All Closed Sub-Projects" -msgstr "16. Delete All Closed Sub-Projects" +#: TimeTrackerCLI.py:53 +msgid "7. List Inactive Main Projects" +msgstr "7. List Inactive Main Projects" -msgid "17. Promote Sub-Project to Main-Project" -msgstr "17. Promote Sub-Project to Main-Project" +#: TimeTrackerCLI.py:54 +msgid "8. Demote Main-Project to Sub-Project" +msgstr "8. Demote Main-Project to Sub-Project" -#: TimeTrackerCLI.py:37 TimeTrackerCLI.py:403 TimeTrackerCLI.py:461 TimeTrackerCLI.py:539 -msgid "0. Back to Main Menu" -msgstr "0. Back to Main Menu" +#: TimeTrackerCLI.py:55 +msgid "9. List Completed Main Projects" +msgstr "9. List Completed Main Projects" -#: TimeTrackerCLI.py:40 TimeTrackerCLI.py:406 TimeTrackerCLI.py:464 TimeTrackerCLI.py:595 -msgid "Choice: " -msgstr "Choice: " +#: TimeTrackerCLI.py:57 TimeTrackerCLI.py:254 +msgid "0. Back" +msgstr "0. Back" -#: TimeTrackerCLI.py:44 -msgid "\n--- Add New Main Project ---" -msgstr "\n--- Add New Main Project ---" +#: TimeTrackerCLI.py:64 +msgid "" +"\n" +"--- Add New Main Project ---" +msgstr "" +"\n" +"--- Add New Main Project ---" -#: TimeTrackerCLI.py:45 +#: TimeTrackerCLI.py:65 msgid "Name of the main project: " msgstr "Name of the main project: " -#: TimeTrackerCLI.py:47 +#: TimeTrackerCLI.py:67 +#, python-brace-format msgid "Main project '{name}' added." msgstr "Main project '{name}' added." -#: TimeTrackerCLI.py:50 -msgid "\n--- List Main Projects ---" -msgstr "\n--- List Main Projects ---" +#: TimeTrackerCLI.py:70 +msgid "" +"\n" +"--- List Main Projects ---" +msgstr "" +"\n" +"--- List Main Projects ---" -#: TimeTrackerCLI.py:55 TimeTrackerCLI.py:166 TimeTrackerCLI.py:288 TimeTrackerCLI.py:411 TimeTrackerCLI.py:434 TimeTrackerCLI.py:479 +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1246 +#: sl/SL_Menu.py:1310 +msgid "closed" +msgstr "closed" + +#: TimeTrackerCLI.py:79 msgid "No main projects found." msgstr "No main projects found." -#: TimeTrackerCLI.py:58 -msgid "\n--- Rename Main Project ---" -msgstr "\n--- Rename Main Project ---" +#: TimeTrackerCLI.py:82 +msgid "" +"\n" +"--- Rename Main Project ---" +msgstr "" +"\n" +"--- Rename Main Project ---" -#: TimeTrackerCLI.py:61 +#: TimeTrackerCLI.py:85 msgid "No main projects to rename." msgstr "No main projects to rename." -#: TimeTrackerCLI.py:64 -msgid "Select a main project to rename:" -msgstr "Select a main project to rename:" +#: TimeTrackerCLI.py:88 +msgid "Select an open main project to rename:" +msgstr "Select an open main project to rename:" -#: TimeTrackerCLI.py:68 +#: TimeTrackerCLI.py:93 TimeTrackerCLI.py:117 TimeTrackerCLI.py:139 +#: TimeTrackerCLI.py:162 TimeTrackerCLI.py:272 TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:333 TimeTrackerCLI.py:370 TimeTrackerCLI.py:405 +#: TimeTrackerCLI.py:441 TimeTrackerCLI.py:568 TimeTrackerCLI.py:604 +#: TimeTrackerCLI.py:855 TimeTrackerCLI.py:888 TimeTrackerCLI.py:969 msgid "Enter the number of the main project: " msgstr "Enter the number of the main project: " -#: TimeTrackerCLI.py:71 +#: TimeTrackerCLI.py:96 TimeTrackerCLI.py:349 +#, python-brace-format msgid "Enter the new name for '{name}': " msgstr "Enter the new name for '{name}': " -#: TimeTrackerCLI.py:74 +#: TimeTrackerCLI.py:99 +#, python-brace-format msgid "Main project '{old_name}' successfully renamed to '{new_name}'." msgstr "Main project '{old_name}' successfully renamed to '{new_name}'." -#: TimeTrackerCLI.py:76 -msgid "Error: Could not rename. The new name '{new_name}' might already exist." -msgstr "Error: Could not rename. The new name '{new_name}' might already exist." - -#: TimeTrackerCLI.py:78 TimeTrackerCLI.py:98 TimeTrackerCLI.py:120 TimeTrackerCLI.py:139 TimeTrackerCLI.py:160 TimeTrackerCLI.py:194 TimeTrackerCLI.py:222 TimeTrackerCLI.py:247 TimeTrackerCLI.py:284 TimeTrackerCLI.py:311 TimeTrackerCLI.py:342 TimeTrackerCLI.py:387 TimeTrackerCLI.py:431 TimeTrackerCLI.py:456 TimeTrackerCLI.py:532 +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1283 +#, python-brace-format +msgid "" +"Error: Could not rename. The new name '{new_name}' might already exist." +msgstr "" +"Error: Could not rename. The new name '{new_name}' might already exist." + +#: TimeTrackerCLI.py:103 TimeTrackerCLI.py:125 TimeTrackerCLI.py:147 +#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:221 TimeTrackerCLI.py:287 +#: TimeTrackerCLI.py:319 TimeTrackerCLI.py:356 TimeTrackerCLI.py:391 +#: TimeTrackerCLI.py:426 TimeTrackerCLI.py:463 TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:589 TimeTrackerCLI.py:794 TimeTrackerCLI.py:875 +#: TimeTrackerCLI.py:894 TimeTrackerCLI.py:992 msgid "Invalid input. Please enter a valid number." msgstr "Invalid input. Please enter a valid number." -#: TimeTrackerCLI.py:81 -msgid "\n--- Delete Main Project ---" -msgstr "\n--- Delete Main Project ---" +#: TimeTrackerCLI.py:106 +msgid "" +"\n" +"--- Close Main Project ---" +msgstr "" +"\n" +"--- Close Main Project ---" + +#: TimeTrackerCLI.py:109 +msgid "No open main projects to close." +msgstr "No open main projects to close." + +#: TimeTrackerCLI.py:112 +msgid "Select a main project to close:" +msgstr "Select a main project to close:" + +#: TimeTrackerCLI.py:121 +#, python-brace-format +msgid "Main project '{name}' has been closed." +msgstr "Main project '{name}' has been closed." + +#: TimeTrackerCLI.py:123 TimeTrackerCLI.py:145 +msgid "Error: Main project not found." +msgstr "Error: Main project not found." + +#: TimeTrackerCLI.py:128 +msgid "" +"\n" +"--- Re-open Main Project ---" +msgstr "" +"\n" +"--- Re-open Main Project ---" + +#: TimeTrackerCLI.py:131 +msgid "No closed main projects to reopen." +msgstr "No closed main projects to reopen." + +#: TimeTrackerCLI.py:134 +msgid "Select a main project to reopen:" +msgstr "Select a main project to reopen:" + +#: TimeTrackerCLI.py:143 +#, python-brace-format +msgid "Main project '{name}' has been reopened." +msgstr "Main project '{name}' has been reopened." -#: TimeTrackerCLI.py:84 +#: TimeTrackerCLI.py:150 +msgid "" +"\n" +"--- Delete Main Project ---" +msgstr "" +"\n" +"--- Delete Main Project ---" + +#: TimeTrackerCLI.py:153 msgid "No main projects to delete." msgstr "No main projects to delete." -#: TimeTrackerCLI.py:87 +#: TimeTrackerCLI.py:156 msgid "Select a main project to delete:" msgstr "Select a main project to delete:" -#: TimeTrackerCLI.py:93 +#: TimeTrackerCLI.py:165 +#, python-brace-format msgid "Main project '{name}' deleted." msgstr "Main project '{name}' deleted." -#: TimeTrackerCLI.py:95 +#: TimeTrackerCLI.py:167 TimeTrackerCLI.py:285 +#, python-brace-format msgid "Error: Main project '{name}' not found." msgstr "Error: Main project '{name}' not found." -#: TimeTrackerCLI.py:101 -msgid "\n--- List Inactive Main-Projects ---" -msgstr "\n--- List Inactive Main-Projects ---" +#: TimeTrackerCLI.py:172 +msgid "" +"\n" +"--- List Inactive Main-Projects ---" +msgstr "" +"\n" +"--- List Inactive Main-Projects ---" -#: TimeTrackerCLI.py:103 +#: TimeTrackerCLI.py:174 msgid "Enter the number of weeks without activity (e.g., 8): " msgstr "Enter the number of weeks without activity (e.g., 8): " -#: TimeTrackerCLI.py:105 +#: TimeTrackerCLI.py:176 TimeTrackerCLI.py:518 msgid "Please enter a positive number." msgstr "Please enter a positive number." -#: TimeTrackerCLI.py:110 -msgid "\nInactive Main-Projects (>{weeks} weeks):" -msgstr "\nInactive Main-Projects (>{weeks} weeks):" +#: TimeTrackerCLI.py:182 +#, python-brace-format +msgid "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" +msgstr "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" -#: TimeTrackerCLI.py:112 +#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:526 +#, python-brace-format msgid " - Main Project: {name}" msgstr " - Main Project: {name}" -#: TimeTrackerCLI.py:113 +#: TimeTrackerCLI.py:185 TimeTrackerCLI.py:528 +#, python-brace-format msgid " Last Activity: {date}" msgstr " Last Activity: {date}" -#: TimeTrackerCLI.py:116 -msgid "No main-projects found inactive for more than {weeks} week." -msgid_plural "No main-projects found inactive for more than {weeks} weeks." -msgstr[0] "No main-projects found inactive for more than {weeks} week." -msgstr[1] "No main-projects found inactive for more than {weeks} weeks." +#: TimeTrackerCLI.py:188 +#, python-brace-format +msgid "No main-projects found inactive for more than {weeks} weeks." +msgstr "No main-projects found inactive for more than {weeks} weeks." -#: TimeTrackerCLI.py:119 +#: TimeTrackerCLI.py:191 TimeTrackerCLI.py:534 msgid "Invalid input. Please enter a valid number for weeks." msgstr "Invalid input. Please enter a valid number for weeks." -#: TimeTrackerCLI.py:122 -msgid "\n--- Add New Sub-Project ---" -msgstr "\n--- Add New Sub-Project ---" +#: TimeTrackerCLI.py:194 +msgid "" +"\n" +"--- Demote Main-Project to Sub-Project ---" +msgstr "" +"\n" +"--- Demote Main-Project to Sub-Project ---" -#: TimeTrackerCLI.py:125 -msgid "No main projects found. Please add one first." -msgstr "No main projects found. Please add one first." +#: TimeTrackerCLI.py:197 +msgid "You need at least two open main projects for this operation." +msgstr "You need at least two open main projects for this operation." -#: TimeTrackerCLI.py:128 -msgid "Select a main project to add a sub-project to:" -msgstr "Select a main project to add a sub-project to:" +#: TimeTrackerCLI.py:202 +msgid "Select the main project to demote:" +msgstr "Select the main project to demote:" -#: TimeTrackerCLI.py:135 -msgid "Name of the new sub-project: " -msgstr "Name of the new sub-project: " +#: TimeTrackerCLI.py:205 +msgid "Enter the number of the project to demote: " +msgstr "Enter the number of the project to demote: " -#: TimeTrackerCLI.py:137 -msgid "Sub-project '{sub_name}' added to '{main_name}'." -msgstr "Sub-project '{sub_name}' added to '{main_name}'." +#: TimeTrackerCLI.py:209 +msgid "" +"\n" +"Select the new parent main project:" +msgstr "" +"\n" +"Select the new parent main project:" -#: TimeTrackerCLI.py:142 -msgid "\n--- List Sub-Projects ---" -msgstr "\n--- List Sub-Projects ---" +#: TimeTrackerCLI.py:213 +msgid "Enter the number of the new parent project: " +msgstr "Enter the number of the new parent project: " -#: TimeTrackerCLI.py:145 -msgid "No main projects found. Cannot list sub-projects." -msgstr "No main projects found. Cannot list sub-projects." +#: TimeTrackerCLI.py:224 +msgid "" +"\n" +"--- List Completed Main Projects ---" +msgstr "" +"\n" +"--- List Completed Main Projects ---" -#: TimeTrackerCLI.py:148 -msgid "Select the main project whose sub-projects you want to list:" -msgstr "Select the main project whose sub-projects you want to list:" +#: TimeTrackerCLI.py:227 +msgid "Main projects with only closed or no sub-projects:" +msgstr "Main projects with only closed or no sub-projects:" -#: TimeTrackerCLI.py:156 -msgid "Sub-projects for '{name}':" -msgstr "Sub-projects for '{name}':" +#: TimeTrackerCLI.py:231 +msgid "No completed main projects found." +msgstr "No completed main projects found." -#: TimeTrackerCLI.py:159 TimeTrackerCLI.py:262 TimeTrackerCLI.py:489 -msgid "No sub-projects found for '{name}'." -msgstr "No sub-projects found for '{name}'." +#: TimeTrackerCLI.py:235 +msgid "Invalid choice. Please enter a number from 0 to 9." +msgstr "Invalid choice. Please enter a number from 0 to 9." -#: TimeTrackerCLI.py:163 -msgid "\n--- Rename Sub-Project ---" -msgstr "\n--- Rename Sub-Project ---" +#: TimeTrackerCLI.py:240 +msgid "" +"\n" +"--- Task Management ---" +msgstr "" +"\n" +"--- Task Management ---" -#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:201 TimeTrackerCLI.py:414 TimeTrackerCLI.py:437 TimeTrackerCLI.py:482 -msgid "Select the main project:" -msgstr "Select the main project:" +#: TimeTrackerCLI.py:241 +msgid "1. Add Task" +msgstr "1. Add Task" + +#: TimeTrackerCLI.py:242 +msgid "2. List Tasks" +msgstr "2. List Tasks" + +#: TimeTrackerCLI.py:243 +msgid "3. Rename Task" +msgstr "3. Rename Task" + +#: TimeTrackerCLI.py:244 +msgid "4. Close Task" +msgstr "4. Close Task" + +#: TimeTrackerCLI.py:245 +msgid "5. Re-open Task" +msgstr "5. Re-open Task" -#: TimeTrackerCLI.py:177 -msgid "No sub-projects to rename for '{name}'." -msgstr "No sub-projects to rename for '{name}'." +#: TimeTrackerCLI.py:246 +msgid "6. Delete Task" +msgstr "6. Delete Task" -#: TimeTrackerCLI.py:180 -msgid "Select a sub-project from '{name}' to rename:" -msgstr "Select a sub-project from '{name}' to rename:" +#: TimeTrackerCLI.py:247 +msgid "7. Move Task" +msgstr "7. Move Task" -#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:214 TimeTrackerCLI.py:267 TimeTrackerCLI.py:307 TimeTrackerCLI.py:499 -msgid "Enter the number of the sub-project: " -msgstr "Enter the number of the sub-project: " +#: TimeTrackerCLI.py:248 +msgid "8. List Inactive Tasks" +msgstr "8. List Inactive Tasks" + +#: TimeTrackerCLI.py:249 +msgid "9. List All Closed Tasks" +msgstr "9. List All Closed Tasks" + +#: TimeTrackerCLI.py:250 +msgid "10. Delete All Closed Tasks" +msgstr "10. Delete All Closed Tasks" + +#: TimeTrackerCLI.py:251 +msgid "11. Promote Task to Main-Project" +msgstr "11. Promote Task to Main-Project" -#: TimeTrackerCLI.py:190 -msgid "Sub-project '{old_name}' renamed to '{new_name}'." -msgstr "Sub-project '{old_name}' renamed to '{new_name}'." +#: TimeTrackerCLI.py:252 +msgid "12. Edit Task (Name & Due Date)" +msgstr "12. Edit Task (Name & Due Date)" -#: TimeTrackerCLI.py:192 +#: TimeTrackerCLI.py:261 msgid "" -"Error: Could not rename. The new name might already exist or the project " -"was not found." +"\n" +"--- Add New Task ---" msgstr "" -"Error: Could not rename. The new name might already exist or the project " -"was not found." - -#: TimeTrackerCLI.py:195 -msgid "\n--- Delete Sub-Project ---" -msgstr "\n--- Delete Sub-Project ---" +"\n" +"--- Add New Task ---" -#: TimeTrackerCLI.py:207 -msgid "No sub-projects to delete for '{name}'." -msgstr "No sub-projects to delete for '{name}'." +#: TimeTrackerCLI.py:264 TimeTrackerCLI.py:960 +msgid "No open main projects found. Please add one first." +msgstr "No open main projects found. Please add one first." -#: TimeTrackerCLI.py:210 -msgid "Select a sub-project from '{name}' to delete:" -msgstr "Select a sub-project from '{name}' to delete:" +#: TimeTrackerCLI.py:267 +msgid "Select a main project to add a task to:" +msgstr "Select a main project to add a task to:" -#: TimeTrackerCLI.py:217 -msgid "Sub-project '{sub_name}' deleted from '{main_name}'." -msgstr "Sub-project '{sub_name}' deleted from '{main_name}'." +#: TimeTrackerCLI.py:275 +msgid "Name of the new task: " +msgstr "Name of the new task: " -msgid "\n--- List All Closed Sub-Projects ---" -msgstr "\n--- List All Closed Sub-Projects ---" +#: TimeTrackerCLI.py:276 +msgid "Due date (YYYY-MM-DD, press Enter to skip): " +msgstr "Due date (YYYY-MM-DD, press Enter to skip): " -msgid "No closed sub-projects found." -msgstr "No closed sub-projects found." +#: TimeTrackerCLI.py:278 +msgid "Add to 'Today' list? (y/n, default n): " +msgstr "Add to 'Today' list? (y/n, default n): " -msgid "\n--- Delete All Closed Sub-Projects ---" -msgstr "\n--- Delete All Closed Sub-Projects ---" +#: TimeTrackerCLI.py:280 +msgid "Note (Markdown supported): " +msgstr "Note (Markdown supported): " -msgid "Are you sure you want to delete ALL closed sub-projects? (y/n): " -msgstr "Are you sure you want to delete ALL closed sub-projects? (y/n): " +#: TimeTrackerCLI.py:283 +#, python-brace-format +msgid "Task '{task_name}' added." +msgstr "Task '{task_name}' added." -msgid "{count} closed sub-projects were deleted." -msgstr "{count} closed sub-projects were deleted." +#: TimeTrackerCLI.py:290 +msgid "" +"\n" +"--- List Tasks ---" +msgstr "" +"\n" +"--- List Tasks ---" -msgid "Operation cancelled." -msgstr "Operation cancelled." +#: TimeTrackerCLI.py:293 +msgid "No main projects found. Cannot list tasks." +msgstr "No main projects found. Cannot list tasks." -#: TimeTrackerCLI.py:219 TimeTrackerCLI.py:281 -msgid "Error: Main project or sub-project not found." -msgstr "Error: Main project or sub-project not found." +#: TimeTrackerCLI.py:296 +msgid "Select the main project whose tasks you want to list:" +msgstr "Select the main project whose tasks you want to list:" -#: TimeTrackerCLI.py:226 -msgid "\n--- List Inactive Sub-Projects ---" -msgstr "\n--- List Inactive Sub-Projects ---" +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1307 +#, python-brace-format +msgid "Tasks for '{name}':" +msgstr "Tasks for '{name}':" -#: TimeTrackerCLI.py:228 -msgid "Enter the number of weeks without activity (e.g., 4): " -msgstr "Enter the number of weeks without activity (e.g., 4): " +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:524 sl/SL_Menu.py:612 +msgid "Due" +msgstr "Due" -#: TimeTrackerCLI.py:235 -msgid "\nInactive Sub-Projects (>{weeks} weeks):" -msgstr "\nInactive Sub-Projects (>{weeks} weeks):" +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:409 sl/SL_Menu.py:419 sl/SL_Menu.py:484 +#: sl/SL_Menu.py:546 sl/SL_Menu.py:747 sl/SL_Menu.py:1603 sl/SL_Menu.py:1771 +msgid "Today" +msgstr "Today" -#: TimeTrackerCLI.py:238 -msgid " Sub-Project: {name}" -msgstr " Sub-Project: {name}" +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:2276 +#, python-brace-format +msgid "No tasks found for '{name}'." +msgstr "No tasks found for '{name}'." -#: TimeTrackerCLI.py:241 -msgid "No sub-projects found inactive for more than {weeks} week." -msgid_plural "No sub-projects found inactive for more than {weeks} weeks." -msgstr[0] "No sub-projects found inactive for more than {weeks} week." -msgstr[1] "No sub-projects found inactive for more than {weeks} weeks." +#: TimeTrackerCLI.py:322 +msgid "" +"\n" +"--- Rename Task ---" +msgstr "" +"\n" +"--- Rename Task ---" -#: TimeTrackerCLI.py:248 -msgid "\n--- Move Sub-Project ---" -msgstr "\n--- Move Sub-Project ---" +#: TimeTrackerCLI.py:325 TimeTrackerCLI.py:362 TimeTrackerCLI.py:397 +#: TimeTrackerCLI.py:432 TimeTrackerCLI.py:560 +msgid "No open main projects found." +msgstr "No open main projects found." -#: TimeTrackerCLI.py:250 -msgid "You need at least two main projects to move a sub-project." -msgstr "You need at least two main projects to move a sub-project." +#: TimeTrackerCLI.py:328 TimeTrackerCLI.py:365 TimeTrackerCLI.py:400 +#: TimeTrackerCLI.py:435 TimeTrackerCLI.py:599 TimeTrackerCLI.py:852 +msgid "Select the main project:" +msgstr "Select the main project:" -#: TimeTrackerCLI.py:254 -msgid "Select the source main project:" -msgstr "Select the source main project:" +#: TimeTrackerCLI.py:338 +#, python-brace-format +msgid "No tasks to rename for '{name}'." +msgstr "No tasks to rename for '{name}'." -#: TimeTrackerCLI.py:257 -msgid "Enter the number of the source main project: " -msgstr "Enter the number of the source main project: " +#: TimeTrackerCLI.py:341 +#, python-brace-format +msgid "Select a task from '{name}' to rename:" +msgstr "Select a task from '{name}' to rename:" -#: TimeTrackerCLI.py:265 -msgid "\nSelect a sub-project from '{name}' to move:" -msgstr "\nSelect a sub-project from '{name}' to move:" +#: TimeTrackerCLI.py:345 TimeTrackerCLI.py:382 TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:453 TimeTrackerCLI.py:489 TimeTrackerCLI.py:580 +#: TimeTrackerCLI.py:867 TimeTrackerCLI.py:982 +msgid "Enter the number of the task: " +msgstr "Enter the number of the task: " -#: TimeTrackerCLI.py:269 -msgid "\nSelect the destination main project:" -msgstr "\nSelect the destination main project:" +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1358 +#, python-brace-format +msgid "Task '{old_name}' renamed to '{new_name}'." +msgstr "Task '{old_name}' renamed to '{new_name}'." -#: TimeTrackerCLI.py:274 -msgid "Enter the number of the destination main project: " -msgstr "Enter the number of the destination main project: " +#: TimeTrackerCLI.py:354 +msgid "" +"Error: Could not rename. The new name might already exist or the project was" +" not found." +msgstr "" +"Error: Could not rename. The new name might already exist or the project was" +" not found." -#: TimeTrackerCLI.py:279 +#: TimeTrackerCLI.py:359 msgid "" -"Successfully moved '{sub_name}' from '{source_name}' to '{dest_name}'." +"\n" +"--- Close Task ---" msgstr "" -"Successfully moved '{sub_name}' from '{source_name}' to '{dest_name}'." +"\n" +"--- Close Task ---" -msgid "Error: {message}" -msgstr "Error: {message}" +#: TimeTrackerCLI.py:375 +#, python-brace-format +msgid "No open tasks to close for '{name}'." +msgstr "No open tasks to close for '{name}'." + +#: TimeTrackerCLI.py:378 +#, python-brace-format +msgid "Select a task from '{name}' to close:" +msgstr "Select a task from '{name}' to close:" + +#: TimeTrackerCLI.py:387 +#, python-brace-format +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:945 sl/SL_Menu.py:990 sl/SL_Menu.py:1036 +msgid "Error: Main project or task not found." +msgstr "Error: Main project or task not found." + +#: TimeTrackerCLI.py:394 +msgid "" +"\n" +"--- Re-open Task ---" +msgstr "" +"\n" +"--- Re-open Task ---" -#: TimeTrackerCLI.py:286 -msgid "\n--- Promote Sub-Project to Main-Project ---" -msgstr "\n--- Promote Sub-Project to Main-Project ---" +#: TimeTrackerCLI.py:410 +#, python-brace-format +msgid "No closed tasks to reopen for '{name}'." +msgstr "No closed tasks to reopen for '{name}'." -#: TimeTrackerCLI.py:293 -msgid "Select the main project containing the sub-project to promote:" -msgstr "Select the main project containing the sub-project to promote:" +#: TimeTrackerCLI.py:413 +#, python-brace-format +msgid "Select a task from '{name}' to reopen:" +msgstr "Select a task from '{name}' to reopen:" -#: TimeTrackerCLI.py:301 -msgid "No sub-projects to promote in '{name}'." -msgstr "No sub-projects to promote in '{name}'." +#: TimeTrackerCLI.py:422 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been reopened." +msgstr "Task '{task_name}' in '{main_name}' has been reopened." -#: TimeTrackerCLI.py:304 -msgid "\nSelect a sub-project from '{name}' to promote:" -msgstr "\nSelect a sub-project from '{name}' to promote:" +#: TimeTrackerCLI.py:429 +msgid "" +"\n" +"--- Delete Task ---" +msgstr "" +"\n" +"--- Delete Task ---" -#: TimeTrackerCLI.py:315 -msgid "\n--- Demote Main-Project to Sub-Project ---" -msgstr "\n--- Demote Main-Project to Sub-Project ---" +#: TimeTrackerCLI.py:446 +#, python-brace-format +msgid "No tasks to delete for '{name}'." +msgstr "No tasks to delete for '{name}'." -#: TimeTrackerCLI.py:318 -msgid "You need at least two main projects for this operation." -msgstr "You need at least two main projects for this operation." +#: TimeTrackerCLI.py:449 +#, python-brace-format +msgid "Select a task from '{name}' to delete:" +msgstr "Select a task from '{name}' to delete:" -#: TimeTrackerCLI.py:322 -msgid "Select the main project to demote:" -msgstr "Select the main project to demote:" +#: TimeTrackerCLI.py:458 +#, python-brace-format +msgid "Task '{task_name}' deleted from '{main_name}'." +msgstr "Task '{task_name}' deleted from '{main_name}'." -#: TimeTrackerCLI.py:325 -msgid "Enter the number of the project to demote: " -msgstr "Enter the number of the project to demote: " +#: TimeTrackerCLI.py:466 +msgid "" +"\n" +"--- Move Task ---" +msgstr "" +"\n" +"--- Move Task ---" -#: TimeTrackerCLI.py:328 -msgid "\nSelect the new parent main project:" -msgstr "\nSelect the new parent main project:" +#: TimeTrackerCLI.py:469 +msgid "You need at least two open main projects to move a task." +msgstr "You need at least two open main projects to move a task." -#: TimeTrackerCLI.py:333 -msgid "Enter the number of the new parent project: " -msgstr "Enter the number of the new parent project: " +#: TimeTrackerCLI.py:474 +msgid "Select the source main project:" +msgstr "Select the source main project:" -msgid "Invalid choice. Please enter a number from 0 to 17." -msgstr "Invalid choice. Please enter a number from 0 to 17." +#: TimeTrackerCLI.py:477 +msgid "Enter the number of the source main project: " +msgstr "Enter the number of the source main project: " -#: TimeTrackerCLI.py:348 -msgid "\n--- Reporting ---" -msgstr "\n--- Reporting ---" +#: TimeTrackerCLI.py:483 +#, python-brace-format +msgid "No tasks to move from '{name}'." +msgstr "No tasks to move from '{name}'." -#: TimeTrackerCLI.py:349 -msgid "1. Daily Report (Today)" -msgstr "1. Daily Report (Today)" +#: TimeTrackerCLI.py:486 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to move:" +msgstr "" +"\n" +"Select a task from '{name}' to move:" -#: TimeTrackerCLI.py:350 -msgid "2. Daily Report (Specific Day)" -msgstr "2. Daily Report (Specific Day)" +#: TimeTrackerCLI.py:494 +msgid "" +"\n" +"Select the destination main project:" +msgstr "" +"\n" +"Select the destination main project:" -#: TimeTrackerCLI.py:351 -msgid "3. Date Range Report" -msgstr "3. Date Range Report" +#: TimeTrackerCLI.py:499 +msgid "Enter the number of the destination main project: " +msgstr "Enter the number of the destination main project: " -#: TimeTrackerCLI.py:352 -msgid "4. Detailed Sub-Project Report" -msgstr "4. Detailed Sub-Project Report" +#: TimeTrackerCLI.py:505 +#, python-brace-format +msgid "" +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." +msgstr "" +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." -#: TimeTrackerCLI.py:353 -msgid "5. Detailed Main-Project Report" -msgstr "5. Detailed Main-Project Report" +#: TimeTrackerCLI.py:507 +#, python-brace-format +msgid "Error: {message}" +msgstr "Error: {message}" -#: TimeTrackerCLI.py:359 -msgid "\n--- Generate Daily Report (Today) ---" -msgstr "\n--- Generate Daily Report (Today) ---" +#: TimeTrackerCLI.py:514 +msgid "" +"\n" +"--- List Inactive Tasks ---" +msgstr "" +"\n" +"--- List Inactive Tasks ---" -#: TimeTrackerCLI.py:363 -msgid "\n--- Generate Daily Report for a specific Day ---" -msgstr "\n--- Generate Daily Report for a specific Day ---" +#: TimeTrackerCLI.py:516 +msgid "Enter the number of weeks without activity (e.g., 4): " +msgstr "Enter the number of weeks without activity (e.g., 4): " -#: TimeTrackerCLI.py:364 -msgid "Enter the date (YYYY-MM-DD): " -msgstr "Enter the date (YYYY-MM-DD): " +#: TimeTrackerCLI.py:524 +#, python-brace-format +msgid "" +"\n" +"Inactive Tasks (>{weeks} weeks):" +msgstr "" +"\n" +"Inactive Tasks (>{weeks} weeks):" -#: TimeTrackerCLI.py:369 -msgid "Invalid date format. Please use YYYY-MM-DD." -msgstr "Invalid date format. Please use YYYY-MM-DD." +#: TimeTrackerCLI.py:527 +#, python-brace-format +msgid " Task: {name}" +msgstr " Task: {name}" -#: TimeTrackerCLI.py:371 -msgid "\n--- Generate Report for a Date Range ---" -msgstr "\n--- Generate Report for a Date Range ---" +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1118 +#, python-brace-format +msgid "No tasks found inactive for more than {weeks} weeks." +msgstr "No tasks found inactive for more than {weeks} weeks." -#: TimeTrackerCLI.py:373 -msgid "Enter the start date (YYYY-MM-DD): " -msgstr "Enter the start date (YYYY-MM-DD): " +#: TimeTrackerCLI.py:537 +msgid "" +"\n" +"--- List All Closed Tasks ---" +msgstr "" +"\n" +"--- List All Closed Tasks ---" +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1143 sl/SL_Menu.py:1166 +msgid "No closed tasks found." +msgstr "No closed tasks found." -#: TimeTrackerCLI.py:375 -msgid "Enter the end date (YYYY-MM-DD): " -msgstr "Enter the end date (YYYY-MM-DD): " +#: TimeTrackerCLI.py:547 +msgid "" +"\n" +"--- Delete All Closed Tasks ---" +msgstr "" +"\n" +"--- Delete All Closed Tasks ---" -#: TimeTrackerCLI.py:377 -msgid "Error: The start date cannot be after the end date." -msgstr "Error: The start date cannot be after the end date." +#: TimeTrackerCLI.py:548 +msgid "Are you sure you want to delete ALL closed tasks? (y/n): " +msgstr "Are you sure you want to delete ALL closed tasks? (y/n): " -#: TimeTrackerCLI.py:382 -msgid "\n--- Detailed Sub-Project Report ---" -msgstr "\n--- Detailed Sub-Project Report ---" +#: TimeTrackerCLI.py:551 +#, python-brace-format +msgid "{count} closed tasks were deleted." +msgstr "{count} closed tasks were deleted." -#: TimeTrackerCLI.py:384 TimeTrackerCLI.py:407 -msgid "No projects found." -msgstr "No projects found." +#: TimeTrackerCLI.py:553 +msgid "Operation cancelled." +msgstr "Operation cancelled." -#: TimeTrackerCLI.py:397 -msgid "\nSelect the sub-project for the report:" -msgstr "\nSelect the sub-project for the report:" +#: TimeTrackerCLI.py:557 +msgid "" +"\n" +"--- Promote Task to Main-Project ---" +msgstr "" +"\n" +"--- Promote Task to Main-Project ---" -#: TimeTrackerCLI.py:405 -msgid "\n--- Detailed Main-Project Report ---" -msgstr "\n--- Detailed Main-Project Report ---" +#: TimeTrackerCLI.py:565 +msgid "Select the main project containing the task to promote:" +msgstr "Select the main project containing the task to promote:" -#: TimeTrackerCLI.py:417 -msgid "Select the main project for the report:" -msgstr "Select the main project for the report:" +#: TimeTrackerCLI.py:574 +#, python-brace-format +msgid "No tasks to promote in '{name}'." +msgstr "No tasks to promote in '{name}'." -#: TimeTrackerCLI.py:424 -msgid "Invalid choice. Please enter a number from 0 to 5." -msgstr "Invalid choice. Please enter a number from 0 to 5." +#: TimeTrackerCLI.py:577 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to promote:" +msgstr "" +"\n" +"Select a task from '{name}' to promote:" -#: TimeTrackerCLI.py:428 TimeTrackerCLI.py:469 -msgid "\n--- Settings ---" -msgstr "\n--- Settings ---" +#: TimeTrackerCLI.py:593 +msgid "" +"\n" +"--- Edit Task ---" +msgstr "" +"\n" +"--- Edit Task ---" + +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:913 sl/SL_Menu.py:958 +#: sl/SL_Menu.py:1003 sl/SL_Menu.py:1049 sl/SL_Menu.py:1198 sl/SL_Menu.py:1328 +#: sl/SL_Menu.py:1487 sl/SL_Menu.py:1677 +msgid "No open projects found." +msgstr "No open projects found." + +#: TimeTrackerCLI.py:609 +#, python-brace-format +msgid "No open tasks in '{name}'." +msgstr "No open tasks in '{name}'." + +#: TimeTrackerCLI.py:612 +msgid "Select a task to edit:" +msgstr "Select a task to edit:" + +#: TimeTrackerCLI.py:616 +msgid "Enter the number: " +msgstr "Enter the number: " + +#: TimeTrackerCLI.py:623 +#, python-brace-format +msgid "New name (press Enter to keep '{name}'): " +msgstr "New name (press Enter to keep '{name}'): " + +#: TimeTrackerCLI.py:624 +#, python-brace-format +msgid "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " +msgstr "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " + +#: TimeTrackerCLI.py:627 +#, python-brace-format +msgid "Is this for today? (current: {current}, y/n, press Enter to keep): " +msgstr "Is this for today? (current: {current}, y/n, press Enter to keep): " + +#: TimeTrackerCLI.py:630 +#, python-brace-format +msgid "Current Note: {note}" +msgstr "Current Note: {note}" + +#: TimeTrackerCLI.py:631 +msgid "New note (press Enter to keep current): " +msgstr "New note (press Enter to keep current): " + +#: TimeTrackerCLI.py:635 +#, python-brace-format +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:1834 +msgid "Task updated successfully." +msgstr "Task updated successfully." + +#: TimeTrackerCLI.py:641 +msgid "Error updating task." +msgstr "Error updating task." + +#: TimeTrackerCLI.py:643 +msgid "Invalid input." +msgstr "Invalid input." + +#: TimeTrackerCLI.py:648 +msgid "Invalid choice. Please enter a number from 0 to 11." +msgstr "Invalid choice. Please enter a number from 0 to 11." + +#: TimeTrackerCLI.py:653 +msgid "" +"\n" +"--- Settings ---" +msgstr "" +"\n" +"--- Settings ---" -#: TimeTrackerCLI.py:429 TimeTrackerCLI.py:562 +#: TimeTrackerCLI.py:654 sl/SL_Menu.py:870 msgid "1. Change Language" msgstr "1. Change Language" +#: TimeTrackerCLI.py:655 sl/SL_Menu.py:871 +msgid "2. Restore Previous Version" +msgstr "2. Restore Previous Version" + +#: TimeTrackerCLI.py:656 sl/SL_Menu.py:872 msgid "3. Change Data Storage Location" msgstr "3. Change Data Storage Location" -#: TimeTrackerCLI.py:430 -msgid "2. Restore Previous Version" -msgstr "2. Restore Previous Version" +#: TimeTrackerCLI.py:657 sl/SL_Menu.py:874 +msgid "4. Change Streamlit Port" +msgstr "4. Change Streamlit Port" -msgid "Invalid choice. Please enter a number from 0 to 3." -msgstr "Invalid choice. Please enter a number from 0 to 3." +#: TimeTrackerCLI.py:659 TimeTrackerCLI.py:698 TimeTrackerCLI.py:808 +#: sl/SL_Menu.py:881 +msgid "0. Back to Main Menu" +msgstr "0. Back to Main Menu" -#: TimeTrackerCLI.py:446 TimeTrackerCLI.py:545 -msgid "\n--- Language Settings ---" -msgstr "\n--- Language Settings ---" +#: TimeTrackerCLI.py:682 +msgid "Invalid choice. Please enter a number from 0 to 4." +msgstr "Invalid choice. Please enter a number from 0 to 4." + +#: TimeTrackerCLI.py:687 +msgid "" +"\n" +"--- Language Settings ---" +msgstr "" +"\n" +"--- Language Settings ---" -#: TimeTrackerCLI.py:449 TimeTrackerCLI.py:548 +#: TimeTrackerCLI.py:692 msgid "No additional languages found." msgstr "No additional languages found." -#: TimeTrackerCLI.py:458 TimeTrackerCLI.py:587 +#: TimeTrackerCLI.py:716 +#, python-brace-format msgid "Language changed to '{lang}'. Please restart the application." msgstr "Language changed to '{lang}'. Please restart the application." -#: TimeTrackerCLI.py:460 TimeTrackerCLI.py:590 +#: TimeTrackerCLI.py:719 msgid "Invalid choice." msgstr "Invalid choice." -#: TimeTrackerCLI.py:462 TimeTrackerCLI.py:592 +#: TimeTrackerCLI.py:721 msgid "Invalid input. Please enter a number." msgstr "Invalid input. Please enter a number." -msgid "\n--- Data Storage Settings ---" -msgstr "\n--- Data Storage Settings ---" +#: TimeTrackerCLI.py:725 +msgid "" +"\n" +"--- Data Storage Settings ---" +msgstr "" +"\n" +"--- Data Storage Settings ---" +#: TimeTrackerCLI.py:726 +#, python-brace-format msgid "Current data file: {path}" msgstr "Current data file: {path}" +#: TimeTrackerCLI.py:728 msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." msgstr "Enter the new path for the data file (e.g., /path/to/my_data.json)." +#: TimeTrackerCLI.py:729 msgid "Leave empty to cancel." msgstr "Leave empty to cancel." +#: TimeTrackerCLI.py:730 msgid "New Path: " msgstr "New Path: " +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1974 +#, python-brace-format msgid "Error: The directory '{dir}' does not exist." msgstr "Error: The directory '{dir}' does not exist." +#: TimeTrackerCLI.py:752 msgid "Storage location updated." msgstr "Storage location updated." +#: TimeTrackerCLI.py:756 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:1985 msgid "Data moved successfully." msgstr "Data moved successfully." +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1987 +#, python-brace-format msgid "Error moving data: {error}" msgstr "Error moving data: {error}" +#: TimeTrackerCLI.py:764 tt/TimeTracker.py:117 +msgid "Please restart the application for the changes to take effect." +msgstr "Please restart the application for the changes to take effect." + +#: TimeTrackerCLI.py:767 +#, python-brace-format msgid "Error updating configuration: {error}" msgstr "Error updating configuration: {error}" -#: TimeTrackerCLI.py:508 -msgid "\n--- Update Available ---" -msgstr "\n--- Update Available ---" +#: TimeTrackerCLI.py:771 +msgid "" +"\n" +"--- Streamlit Port Settings ---" +msgstr "" +"\n" +"--- Streamlit Port Settings ---" + +#: TimeTrackerCLI.py:781 +#, python-brace-format +msgid "Current Streamlit Port: {port}" +msgstr "Current Streamlit Port: {port}" + +#: TimeTrackerCLI.py:783 +msgid "Enter new port (or press Enter to keep current): " +msgstr "Enter new port (or press Enter to keep current): " + +#: TimeTrackerCLI.py:792 +#, python-brace-format +msgid "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." +msgstr "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." + +#: TimeTrackerCLI.py:800 +msgid "" +"\n" +"--- Reporting ---" +msgstr "" +"\n" +"--- Reporting ---" + +#: TimeTrackerCLI.py:801 +msgid "1. Daily Report (Today)" +msgstr "1. Daily Report (Today)" + +#: TimeTrackerCLI.py:802 +msgid "2. Daily Report (Specific Day)" +msgstr "2. Daily Report (Specific Day)" + +#: TimeTrackerCLI.py:803 +msgid "3. Date Range Report" +msgstr "3. Date Range Report" + +#: TimeTrackerCLI.py:804 +msgid "4. Detailed Task Report" +msgstr "4. Detailed Task Report" + +#: TimeTrackerCLI.py:805 +msgid "5. Detailed Main-Project Report" +msgstr "5. Detailed Main-Project Report" + +#: TimeTrackerCLI.py:806 +msgid "6. Detailed Daily Report" +msgstr "6. Detailed Daily Report" + +#: TimeTrackerCLI.py:815 +msgid "" +"\n" +"--- Generate Daily Report (Today) ---" +msgstr "" +"\n" +"--- Generate Daily Report (Today) ---" + +#: TimeTrackerCLI.py:820 +msgid "" +"\n" +"--- Generate Daily Report for a specific Day ---" +msgstr "" +"\n" +"--- Generate Daily Report for a specific Day ---" + +#: TimeTrackerCLI.py:821 +msgid "Enter the date (YYYY-MM-DD): " +msgstr "Enter the date (YYYY-MM-DD): " + +#: TimeTrackerCLI.py:827 TimeTrackerCLI.py:842 TimeTrackerCLI.py:903 +msgid "Invalid date format. Please use YYYY-MM-DD." +msgstr "Invalid date format. Please use YYYY-MM-DD." + +#: TimeTrackerCLI.py:830 +msgid "" +"\n" +"--- Generate Report for a Date Range ---" +msgstr "" +"\n" +"--- Generate Report for a Date Range ---" + +#: TimeTrackerCLI.py:831 +msgid "Enter the start date (YYYY-MM-DD): " +msgstr "Enter the start date (YYYY-MM-DD): " + +#: TimeTrackerCLI.py:832 +msgid "Enter the end date (YYYY-MM-DD): " +msgstr "Enter the end date (YYYY-MM-DD): " + +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2227 +msgid "Error: The start date cannot be after the end date." +msgstr "Error: The start date cannot be after the end date." + +#: TimeTrackerCLI.py:844 +msgid "" +"\n" +"--- Detailed Task Report ---" +msgstr "" +"\n" +"--- Detailed Task Report ---" + +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1249 +#: sl/SL_Menu.py:1296 sl/SL_Menu.py:1435 sl/SL_Menu.py:2245 sl/SL_Menu.py:2304 +msgid "No projects found." +msgstr "No projects found." + +#: TimeTrackerCLI.py:864 +msgid "" +"\n" +"Select the task for the report:" +msgstr "" +"\n" +"Select the task for the report:" + +#: TimeTrackerCLI.py:877 +msgid "" +"\n" +"--- Detailed Main-Project Report ---" +msgstr "" +"\n" +"--- Detailed Main-Project Report ---" + +#: TimeTrackerCLI.py:885 +msgid "Select the main project for the report:" +msgstr "Select the main project for the report:" + +#: TimeTrackerCLI.py:896 +msgid "" +"\n" +"--- Detailed Daily Report ---" +msgstr "" +"\n" +"--- Detailed Daily Report ---" + +#: TimeTrackerCLI.py:897 +msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " +msgstr "Enter the date (YYYY-MM-DD) or press Enter for today: " + +#: TimeTrackerCLI.py:911 TimeTrackerCLI.py:1042 +msgid "Invalid choice. Please enter a number from 0 to 6." +msgstr "Invalid choice. Please enter a number from 0 to 6." + +#: TimeTrackerCLI.py:919 +msgid "" +"\n" +"--- Update Available ---" +msgstr "" +"\n" +"--- Update Available ---" -#: TimeTrackerCLI.py:509 +#: TimeTrackerCLI.py:920 msgid "A downloaded update is ready to be installed." msgstr "A downloaded update is ready to be installed." -#: TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:921 msgid "0. Skip update for now" msgstr "0. Skip update for now" -#: TimeTrackerCLI.py:511 +#: TimeTrackerCLI.py:922 msgid "1. Install update now" msgstr "1. Install update now" -#: TimeTrackerCLI.py:512 +#: TimeTrackerCLI.py:923 msgid "Enter your choice (0 or 1): " msgstr "Enter your choice (0 or 1): " -#: TimeTrackerCLI.py:515 +#: TimeTrackerCLI.py:927 msgid "Application is restarting to complete the update..." msgstr "Application is restarting to complete the update..." -#: TimeTrackerCLI.py:518 +#: TimeTrackerCLI.py:931 msgid "Update installation skipped. The application will start normally." msgstr "Update installation skipped. The application will start normally." -#: TimeTrackerCLI.py:520 +#: TimeTrackerCLI.py:933 msgid "" "Invalid choice. Update installation skipped. The application will start " "normally." @@ -796,410 +1121,1626 @@ msgstr "" "Invalid choice. Update installation skipped. The application will start " "normally." -#: TimeTrackerCLI.py:525 -msgid "\n=== Time Control {version} ===" -msgstr "\n=== Time Control {version} ===" +#: TimeTrackerCLI.py:940 +#, python-brace-format +msgid "" +"\n" +"=== Time Control {version} ===" +msgstr "" +"\n" +"=== Time Control {version} ===" -#: TimeTrackerCLI.py:526 +#: TimeTrackerCLI.py:941 msgid "--- Main Menu ---" msgstr "--- Main Menu ---" -msgid "1. Start work on sub-project" -msgstr "1. Start work on sub-project" +#: TimeTrackerCLI.py:942 +msgid "1. Start work on task" +msgstr "1. Start work on task" -#: TimeTrackerCLI.py:528 +#: TimeTrackerCLI.py:943 msgid "2. Show current work" msgstr "2. Show current work" -#: TimeTrackerCLI.py:529 +#: TimeTrackerCLI.py:944 msgid "3. Stop current work" msgstr "3. Stop current work" -#: TimeTrackerCLI.py:531 -msgid "4. Handle projects and sub-projects" -msgstr "4. Handle projects and sub-projects" +#: TimeTrackerCLI.py:946 +msgid "4. Handle projects and tasks" +msgstr "4. Handle projects and tasks" -#: TimeTrackerCLI.py:532 +#: TimeTrackerCLI.py:947 msgid "5. Reporting" msgstr "5. Reporting" -#: TimeTrackerCLI.py:533 +#: TimeTrackerCLI.py:948 msgid "6. Settings" msgstr "6. Settings" -#: TimeTrackerCLI.py:535 +#: TimeTrackerCLI.py:950 msgid "0. Exit" msgstr "0. Exit" -#: TimeTrackerCLI.py:541 -msgid "\n--- Start Work on a Sub-Project ---" -msgstr "\n--- Start Work on a Sub-Project ---" +#: TimeTrackerCLI.py:957 +msgid "" +"\n" +"--- Start Work on a Task ---" +msgstr "" +"\n" +"--- Start Work on a Task ---" + +#: TimeTrackerCLI.py:963 +msgid "Select a main project:" +msgstr "Select a main project:" -#: TimeTrackerCLI.py:498 -msgid "Select a sub-project from '{name}':" -msgstr "Select a sub-project from '{name}':" +#: TimeTrackerCLI.py:974 +#, python-brace-format +msgid "No open tasks found for '{name}' to start work on." +msgstr "No open tasks found for '{name}' to start work on." -#: TimeTrackerCLI.py:507 -msgid "Work started on '{sub_name}' in project '{main_name}'." -msgstr "Work started on '{sub_name}' in project '{main_name}'." +#: TimeTrackerCLI.py:977 +#, python-brace-format +msgid "Select a task from '{name}':" +msgstr "Select a task from '{name}':" + +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:1884 +#, 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:1888 msgid "Error starting work." msgstr "Error starting work." -#: TimeTrackerCLI.py:514 -msgid "\n--- Current Active Work ---" -msgstr "\n--- Current Active Work ---" +#: TimeTrackerCLI.py:996 +msgid "" +"\n" +"--- Current Active Work ---" +msgstr "" +"\n" +"--- Current Active Work ---" -#: TimeTrackerCLI.py:523 +#: TimeTrackerCLI.py:1006 msgid "You are currently working on:" msgstr "You are currently working on:" -#: TimeTrackerCLI.py:524 +#: TimeTrackerCLI.py:1007 +#, python-brace-format msgid " Main Project: {name}" msgstr " Main Project: {name}" -#: TimeTrackerCLI.py:525 -msgid " Sub-Project: {name}" -msgstr " Sub-Project: {name}" +#: TimeTrackerCLI.py:1008 +#, python-brace-format +msgid " Task: {name}" +msgstr " Task: {name}" -#: TimeTrackerCLI.py:526 +#: TimeTrackerCLI.py:1009 +#, python-brace-format msgid " Started at: {date}" msgstr " Started at: {date}" -#: TimeTrackerCLI.py:527 +#: TimeTrackerCLI.py:1010 +#, python-brace-format msgid " Duration: {duration}" msgstr " Duration: {duration}" -#: TimeTrackerCLI.py:529 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:373 sl/SL_Menu.py:1910 msgid "No active work session." msgstr "No active work session." -#: TimeTrackerCLI.py:532 -msgid "\n--- Stop Work ---" -msgstr "\n--- Stop Work ---" +#: TimeTrackerCLI.py:1016 +msgid "" +"\n" +"--- Stop Work ---" +msgstr "" +"\n" +"--- Stop Work ---" -#: TimeTrackerCLI.py:534 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:341 msgid "Work session stopped successfully." msgstr "Work session stopped successfully." -#: TimeTrackerCLI.py:536 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:343 msgid "No active work session to stop." msgstr "No active work session to stop." -#: TimeTrackerCLI.py:598 -msgid "\nChecking for updates..." -msgstr "\nChecking for updates..." +#: TimeTrackerCLI.py:1034 +msgid "" +"\n" +"Checking for updates..." +msgstr "" +"\n" +"Checking for updates..." -#: TimeTrackerCLI.py:602 +#: TimeTrackerCLI.py:1038 msgid "Exiting application. Goodbye!" msgstr "Exiting application. Goodbye!" -#: TimeTrackerCLI.py:605 -msgid "Invalid choice. Please enter a number from 0 to 6." -msgstr "Invalid choice. Please enter a number from 0 to 6." +#: update.py:35 +msgid "" +"Warning: Update check skipped. 'github_repo' not found in config.json or " +"file is invalid." +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." + +#: update.py:59 +#, python-brace-format +msgid "Error checking for updates: {error}" +msgstr "Error checking for updates: {error}" + +#: update.py:61 +#, python-brace-format +msgid "An unexpected error occurred while checking for updates: {error}" +msgstr "An unexpected error occurred while checking for updates: {error}" + +#: update.py:73 +msgid "Downloading update..." +msgstr "Downloading update..." + +#: update.py:79 +msgid "Download complete. The update will be installed on the next start." +msgstr "Download complete. The update will be installed on the next start." + +#: update.py:82 +#, python-brace-format +msgid "Error downloading the update: {error}" +msgstr "Error downloading the update: {error}" + +#: update.py:108 +msgid "Creating backup of current version before update..." +msgstr "Creating backup of current version before update..." + +#: update.py:118 +#, python-brace-format +msgid "Backup created successfully as {filename}." +msgstr "Backup created successfully as {filename}." + +#: update.py:120 +#, python-brace-format +msgid "Warning: Could not create backup. Error: {error}" +msgstr "Warning: Could not create backup. Error: {error}" + +#: update.py:122 +msgid "Installing update..." +msgstr "Installing update..." + +#: update.py:142 +#, 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 +msgid "Update installed successfully." +msgstr "Update installed successfully." + +#: update.py:153 +#, python-brace-format +msgid "Error during update installation: {error}" +msgstr "Error during update installation: {error}" + +#: update.py:168 +#, python-brace-format +msgid "Error: No previous version backup '{filename}' found." +msgstr "Error: No previous version backup '{filename}' found." + +#: update.py:171 +#, python-brace-format +msgid "Restoring previous version from '{filename}'..." +msgstr "Restoring previous version from '{filename}'..." + +#: update.py:192 +#, python-brace-format +msgid "" +"Skipping user data file: {filename}. It will not be overwritten during " +"restore." +msgstr "" +"Skipping user data file: {filename}. It will not be overwritten during " +"restore." + +#: update.py:199 +msgid "Previous version restored successfully." +msgstr "Previous version restored successfully." + +#: update.py:201 +msgid "Restarting application to apply changes..." +msgstr "Restarting application to apply changes..." + +#: update.py:204 +#, python-brace-format +msgid "Error during restoration: {error}" +msgstr "Error during restoration: {error}" + +#: update.py:205 +#, python-brace-format +msgid "The backup file '{filename}' was not deleted." +msgstr "The backup file '{filename}' was not deleted." + +#: update.py:212 +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 +msgid "Checking for updates..." +msgstr "Checking for updates..." + +#: update.py:222 +msgid "No updates available." +msgstr "No updates available." + +#: tt/TimeTracker.py:90 +#, python-brace-format +msgid "Warning: Could not read {file}. Error: {error}" +msgstr "Warning: Could not read {file}. Error: {error}" + +#: tt/TimeTracker.py:105 +msgid "Some required packages are missing. Attempting to install them..." +msgstr "Some required packages are missing. Attempting to install them..." + +#: tt/TimeTracker.py:108 +#, python-brace-format +msgid "Installing {package}..." +msgstr "Installing {package}..." + +#: tt/TimeTracker.py:112 +#, python-brace-format +msgid "Failed to install {package}. Continuing without it." +msgstr "Failed to install {package}. Continuing without it." + +#: tt/TimeTracker.py:116 +msgid "" +"\n" +"Dependencies installed successfully." +msgstr "" +"\n" +"Dependencies installed successfully." + +#: tt/TimeTracker.py:120 +#, python-brace-format +msgid "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" +msgstr "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" + +#: tt/TimeTracker.py:122 +#, python-brace-format +msgid "An unexpected error occurred during dependency check: {error}" +msgstr "An unexpected error occurred during dependency check: {error}" + +#: tt/TimeTracker.py:229 +msgid "Info: Report content has been copied to the clipboard." +msgstr "Info: Report content has been copied to the clipboard." + +#: tt/TimeTracker.py:231 +#, python-brace-format +msgid "Warning: Could not copy to clipboard. Error: {error}" +msgstr "Warning: Could not copy to clipboard. Error: {error}" -#: update.py:24 +#: tt/TimeTracker.py:233 msgid "" -"Warning: Update check skipped. 'github_repo' not found in config.json or " -"file is invalid." +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." msgstr "" -"Warning: Update check skipped. 'github_repo' not found in config.json or " -"file is invalid." +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." -#: update.py:38 -msgid "A new version ({version}) is available." -msgstr "A new version ({version}) is available." +#: tt/TimeTracker.py:253 +#, python-brace-format +msgid "{hours} hours ({dlp} DLP)" +msgstr "{hours} hours ({dlp} DLP)" -#: update.py:43 -msgid "Error: Download URL for the new version not found." -msgstr "Error: Download URL for the new version not found." +#: tt/TimeTracker.py:846 tt/TimeTracker.py:886 +#, python-brace-format +msgid "Source main project '{name}' not found." +msgstr "Source main project '{name}' not found." -#: update.py:47 -msgid "Error checking for updates: {error}" -msgstr "Error checking for updates: {error}" +#: tt/TimeTracker.py:848 +#, python-brace-format +msgid "Destination main project '{name}' not found." +msgstr "Destination main project '{name}' not found." -#: update.py:49 -msgid "An unexpected error occurred while checking for updates: {error}" -msgstr "An unexpected error occurred while checking for updates: {error}" +#: tt/TimeTracker.py:860 +#, python-brace-format +msgid "Task '{task_name}' moved successfully." +msgstr "Task '{task_name}' moved successfully." -#: update.py:61 -msgid "Downloading update..." -msgstr "Downloading update..." +#: tt/TimeTracker.py:861 tt/TimeTracker.py:896 tt/TimeTracker.py:1373 +#, python-brace-format +msgid "Task '{task_name}' not found in '{main_name}'." +msgstr "Task '{task_name}' not found in '{main_name}'." -#: update.py:67 -msgid "Download complete. The update will be installed on the next start." -msgstr "Download complete. The update will be installed on the next start." +#: tt/TimeTracker.py:880 +#, python-brace-format +msgid "A main project named '{name}' already exists." +msgstr "A main project named '{name}' already exists." -#: update.py:70 -msgid "Error downloading the update: {error}" -msgstr "Error downloading the update: {error}" +#: tt/TimeTracker.py:905 +msgid "General" +msgstr "General" -#: update.py:112 -msgid "Creating backup of current version before update..." -msgstr "Creating backup of current version before update..." +#: tt/TimeTracker.py:909 +#, python-brace-format +msgid "Task '{task_name}' was promoted to a new main project." +msgstr "Task '{task_name}' was promoted to a new main project." -#: update.py:121 -msgid "Backup created successfully as {filename}." -msgstr "Backup created successfully as {filename}." +#: tt/TimeTracker.py:936 +#, python-brace-format +msgid "Main project to demote '{name}' not found." +msgstr "Main project to demote '{name}' not found." -#: update.py:123 -msgid "Warning: Could not create backup. Error: {error}" -msgstr "Warning: Could not create backup. Error: {error}" +#: tt/TimeTracker.py:938 +#, python-brace-format +msgid "New parent main project '{name}' not found." +msgstr "New parent main project '{name}' not found." -#: update.py:125 -msgid "Installing update..." -msgstr "Installing update..." +#: tt/TimeTracker.py:963 +#, python-brace-format +msgid "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." +msgstr "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." -#: update.py:143 -msgid "Skipping protected file: {filename}. It will not be overwritten." -msgstr "Skipping protected file: {filename}. It will not be overwritten." +#: tt/TimeTracker.py:1042 +msgid "Email import is not enabled." +msgstr "Email import is not enabled." -#: update.py:152 -msgid "Update installed successfully." -msgstr "Update installed successfully." +#: tt/TimeTracker.py:1051 +msgid "Email settings are incomplete." +msgstr "Email settings are incomplete." -#: update.py:154 -msgid "Error during update installation: {error}" -msgstr "Error during update installation: {error}" +#: tt/TimeTracker.py:1064 +msgid "Error searching emails." +msgstr "Error searching emails." -#: update.py:164 -msgid "Error: No previous version backup '{filename}' found." -msgstr "Error: No previous version backup '{filename}' found." +#: tt/TimeTracker.py:1079 +msgid "No Subject" +msgstr "No Subject" -#: update.py:167 -msgid "Restoring previous version from '{filename}'..." -msgstr "Restoring previous version from '{filename}'..." +#: tt/TimeTracker.py:1139 +msgid "Unknown Task" +msgstr "Unknown Task" -#: update.py:182 -msgid "" -"Skipping user data file: {filename}. It will not be overwritten during " -"restore." -msgstr "" -"Skipping user data file: {filename}. It will not be overwritten during " -"restore." +#: tt/TimeTracker.py:1330 +#, python-brace-format +msgid "- {name}: {hours} hours" +msgstr "- {name}: {hours} hours" -#: update.py:188 -msgid "Previous version restored successfully." -msgstr "Previous version restored successfully." +#: tt/TimeTracker.py:1338 +#, python-brace-format +msgid "## {name} ({hours} hours)\n" +msgstr "## {name} ({hours} hours)\n" -#: update.py:190 -msgid "Restarting application to apply changes..." -msgstr "Restarting application to apply changes..." +#: tt/TimeTracker.py:1347 +#, python-brace-format +msgid "# Daily Time Report: {date}\n" +msgstr "# Daily Time Report: {date}\n" -#: update.py:192 -msgid "Error during restoration: {error}" -msgstr "Error during restoration: {error}" +#: tt/TimeTracker.py:1348 +#, python-brace-format +msgid "" +"\n" +"**Total Daily Time: {hours} hours**" +msgstr "" +"\n" +"**Total Daily Time: {hours} hours**" -#: update.py:193 -msgid "The backup file '{filename}' was not deleted." -msgstr "The backup file '{filename}' was not deleted." +#: tt/TimeTracker.py:1352 tt/TimeTracker.py:1665 +#, python-brace-format +msgid "No time tracked for {date}." +msgstr "No time tracked for {date}." -msgid "# Detailed Daily Report: {date}" -msgstr "# Detailed Daily Report: {date}" +#: tt/TimeTracker.py:1369 tt/TimeTracker.py:1464 +#, python-brace-format +msgid "Main project '{name}' not found." +msgstr "Main project '{name}' not found." +#: tt/TimeTracker.py:1377 +#, python-brace-format +msgid "No time entries found for task '{task_name}'." +msgstr "No time entries found for task '{task_name}'." + +#: tt/TimeTracker.py:1410 tt/TimeTracker.py:1640 msgid "now" msgstr "now" -msgid "\nNo time tracked for {date}." -msgstr "\nNo time tracked for {date}." +#: tt/TimeTracker.py:1411 sl/SL_Menu.py:1908 +msgid "Duration" +msgstr "Duration" -msgid "# Detailed Report for Sub-Project: {name}" -msgstr "# Detailed Report for Sub-Project: {name}" +#: tt/TimeTracker.py:1415 +#, python-brace-format +msgid "# Detailed Report for Task: {name}" +msgstr "# Detailed Report for Task: {name}" +#: tt/TimeTracker.py:1416 +#, python-brace-format msgid "Part of Main Project: {name}" msgstr "Part of Main Project: {name}" +#: tt/TimeTracker.py:1419 msgid "Active (currently running)" msgstr "Active (currently running)" +#: tt/TimeTracker.py:1419 tt/TimeTracker.py:1516 msgid "Inactive" msgstr "Inactive" +#: tt/TimeTracker.py:1420 tt/TimeTracker.py:1517 msgid "Status" msgstr "Status" +#: tt/TimeTracker.py:1422 tt/TimeTracker.py:1519 msgid "First entry" msgstr "First entry" +#: tt/TimeTracker.py:1424 tt/TimeTracker.py:1521 msgid "Last activity" msgstr "Last activity" +#: tt/TimeTracker.py:1426 tt/TimeTracker.py:1523 msgid "Total recorded time" msgstr "Total recorded time" +#: tt/TimeTracker.py:1427 tt/TimeTracker.py:1525 msgid "Total work sessions" msgstr "Total work sessions" +#: tt/TimeTracker.py:1431 tt/TimeTracker.py:1529 msgid "Average session duration" msgstr "Average session duration" +#: tt/TimeTracker.py:1434 tt/TimeTracker.py:1532 msgid "Weekday Distribution" msgstr "Weekday Distribution" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Monday" msgstr "Monday" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Tuesday" msgstr "Tuesday" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Wednesday" msgstr "Wednesday" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Thursday" msgstr "Thursday" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Friday" msgstr "Friday" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Saturday" msgstr "Saturday" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 msgid "Sunday" msgstr "Sunday" +#: tt/TimeTracker.py:1444 msgid "Daily Breakdown" msgstr "Daily Breakdown" -msgid "Duration" -msgstr "Duration" - +#: tt/TimeTracker.py:1513 +#, python-brace-format msgid "# Detailed Report for Main Project: {name}" msgstr "# Detailed Report for Main Project: {name}" -msgid "Number of sub-projects" -msgstr "Number of sub-projects" +#: tt/TimeTracker.py:1516 +#, python-brace-format +msgid "Active (working on '{task_name}')" +msgstr "Active (working on '{task_name}')" -msgid "Active (working on '{sub_name}')" -msgstr "Active (working on '{sub_name}')" +#: tt/TimeTracker.py:1524 +msgid "Number of tasks" +msgstr "Number of tasks" -msgid "Sub-Project Breakdown" -msgstr "Sub-Project Breakdown" +#: tt/TimeTracker.py:1543 +msgid "Task Breakdown" +msgstr "Task Breakdown" +#: tt/TimeTracker.py:1552 +#, python-brace-format msgid "{num_sessions} sessions" msgstr "{num_sessions} sessions" -msgid "6. Detailed Daily Report" -msgstr "6. Detailed Daily Report" +#: tt/TimeTracker.py:1605 +#, python-brace-format +msgid "# Time Report: {start_date} to {end_date}\n" +msgstr "# Time Report: {start_date} to {end_date}\n" -msgid "\n--- Detailed Daily Report ---" -msgstr "\n--- Detailed Daily Report ---" +#: tt/TimeTracker.py:1606 +#, python-brace-format +msgid "" +"\n" +"**Total Time in Period: {total_time}**" +msgstr "" +"\n" +"**Total Time in Period: {total_time}**" -msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " -msgstr "Enter the date (YYYY-MM-DD) or press Enter for today: " +#: tt/TimeTracker.py:1610 +#, python-brace-format +msgid "No time tracked between {start_date} and {end_date}." +msgstr "No time tracked between {start_date} and {end_date}." -msgid "Stop current work" -msgstr "Stop current work" +#: tt/TimeTracker.py:1626 +#, python-brace-format +msgid "# Detailed Daily Report: {date}" +msgstr "# Detailed Daily Report: {date}" -msgid "Project Management" -msgstr "Project Management" +#: sl/SL_Menu.py:277 +msgid "New" +msgstr "New" -msgid "Reporting" -msgstr "Reporting" +#: sl/SL_Menu.py:278 +msgid "New Project" +msgstr "New Project" -msgid "Settings" -msgstr "Settings" +#: sl/SL_Menu.py:281 +msgid "New Task" +msgstr "New Task" +#: sl/SL_Menu.py:286 +msgid "Project & Task Management" +msgstr "Project & Task Management" + +#: sl/SL_Menu.py:287 sl/SL_Menu.py:780 msgid "Main Project Management" msgstr "Main Project Management" -msgid "Sub-Project Management" -msgstr "Sub-Project Management" +#: sl/SL_Menu.py:288 sl/SL_Menu.py:796 sl/SL_Menu.py:894 +msgid "Add Project" +msgstr "Add Project" + +#: sl/SL_Menu.py:291 sl/SL_Menu.py:799 sl/SL_Menu.py:1242 +msgid "List Projects" +msgstr "List Projects" + +#: sl/SL_Menu.py:292 sl/SL_Menu.py:800 sl/SL_Menu.py:1257 +msgid "Rename Project" +msgstr "Rename Project" + +#: sl/SL_Menu.py:293 sl/SL_Menu.py:801 sl/SL_Menu.py:1371 sl/SL_Menu.py:1384 +msgid "Close Project" +msgstr "Close Project" + +#: sl/SL_Menu.py:294 sl/SL_Menu.py:802 sl/SL_Menu.py:1401 sl/SL_Menu.py:1414 +msgid "Re-open Project" +msgstr "Re-open Project" + +#: sl/SL_Menu.py:295 sl/SL_Menu.py:803 sl/SL_Menu.py:1431 sl/SL_Menu.py:1445 +msgid "Delete Project" +msgstr "Delete Project" + +#: sl/SL_Menu.py:296 sl/SL_Menu.py:804 sl/SL_Menu.py:1462 +msgid "List Inactive Projects" +msgstr "List Inactive Projects" + +#: sl/SL_Menu.py:297 sl/SL_Menu.py:805 +msgid "Demote Project to Task" +msgstr "Demote Project to Task" -msgid "Add Main Project" -msgstr "Add Main Project" +#: sl/SL_Menu.py:298 sl/SL_Menu.py:806 sl/SL_Menu.py:1524 +msgid "List Completed Projects" +msgstr "List Completed Projects" -msgid "List Main Projects" -msgstr "List Main Projects" +#: sl/SL_Menu.py:300 sl/SL_Menu.py:782 sl/SL_Menu.py:817 +msgid "Task Management" +msgstr "Task Management" -msgid "Rename Main Project" -msgstr "Rename Main Project" +#: sl/SL_Menu.py:301 sl/SL_Menu.py:819 sl/SL_Menu.py:1542 sl/SL_Menu.py:1573 +#: sl/SL_Menu.py:1646 +msgid "Add Task" +msgstr "Add Task" -msgid "Close Main Project" -msgstr "Close Main Project" +#: sl/SL_Menu.py:304 sl/SL_Menu.py:822 sl/SL_Menu.py:1292 +msgid "List Tasks" +msgstr "List Tasks" -msgid "Re-open Main Project" -msgstr "Re-open Main Project" +#: sl/SL_Menu.py:305 sl/SL_Menu.py:823 sl/SL_Menu.py:1324 +msgid "Rename Task" +msgstr "Rename Task" -msgid "Delete Main Project" -msgstr "Delete Main Project" +#: sl/SL_Menu.py:306 sl/SL_Menu.py:824 sl/SL_Menu.py:909 sl/SL_Menu.py:935 +#: sl/SL_Menu.py:1114 +msgid "Close Task" +msgstr "Close Task" -msgid "List Inactive Main Projects" -msgstr "List Inactive Main Projects" +#: sl/SL_Menu.py:307 sl/SL_Menu.py:825 sl/SL_Menu.py:954 sl/SL_Menu.py:980 +msgid "Re-open Task" +msgstr "Re-open Task" -msgid "Demote Main-Project to Sub-Project" -msgstr "Demote Main-Project to Sub-Project" +#: sl/SL_Menu.py:308 sl/SL_Menu.py:826 sl/SL_Menu.py:999 sl/SL_Menu.py:1026 +msgid "Delete Task" +msgstr "Delete Task" -msgid "List Completed Main Projects" -msgstr "List Completed Main Projects" +#: sl/SL_Menu.py:309 sl/SL_Menu.py:827 sl/SL_Menu.py:1045 sl/SL_Menu.py:1081 +msgid "Move Task" +msgstr "Move Task" -msgid "Add Sub-Project" -msgstr "Add Sub-Project" +#: sl/SL_Menu.py:310 sl/SL_Menu.py:828 sl/SL_Menu.py:1100 +msgid "List Inactive Tasks" +msgstr "List Inactive Tasks" -msgid "List Sub-Projects" -msgstr "List Sub-Projects" +#: sl/SL_Menu.py:311 sl/SL_Menu.py:829 sl/SL_Menu.py:1127 +msgid "List All Closed Tasks" +msgstr "List All Closed Tasks" -msgid "Rename Sub-Project" -msgstr "Rename Sub-Project" +#: sl/SL_Menu.py:312 sl/SL_Menu.py:477 sl/SL_Menu.py:539 sl/SL_Menu.py:626 +#: sl/SL_Menu.py:830 sl/SL_Menu.py:1673 sl/SL_Menu.py:1693 sl/SL_Menu.py:1728 +msgid "Edit Task" +msgstr "Edit Task" -msgid "Close Sub-Project" -msgstr "Close Sub-Project" +#: sl/SL_Menu.py:315 sl/SL_Menu.py:833 sl/SL_Menu.py:1152 +msgid "Delete All Closed Tasks" +msgstr "Delete All Closed Tasks" -msgid "Re-open Sub-Project" -msgstr "Re-open Sub-Project" +#: sl/SL_Menu.py:316 sl/SL_Menu.py:834 sl/SL_Menu.py:1194 +msgid "Promote Task to Project" +msgstr "Promote Task to Project" -msgid "Delete Sub-Project" -msgstr "Delete Sub-Project" +#: sl/SL_Menu.py:319 +msgid "Today View" +msgstr "Today View" + +#: sl/SL_Menu.py:323 sl/SL_Menu.py:405 +msgid "Task Planning" +msgstr "Task Planning" -msgid "Move Sub-Project" -msgstr "Move Sub-Project" +#: sl/SL_Menu.py:327 sl/SL_Menu.py:655 +msgid "E-Mail Task Assignment" +msgstr "E-Mail Task Assignment" -msgid "List Inactive Sub-Projects" -msgstr "List Inactive Sub-Projects" +#: sl/SL_Menu.py:331 sl/SL_Menu.py:473 sl/SL_Menu.py:535 sl/SL_Menu.py:622 +msgid "Start work on task" +msgstr "Start work on task" -msgid "List All Closed Sub-Projects" -msgstr "List All Closed Sub-Projects" +#: sl/SL_Menu.py:335 +msgid "Show current work" +msgstr "Show current work" -msgid "Delete All Closed Sub-Projects" -msgstr "Delete All Closed Sub-Projects" +#: sl/SL_Menu.py:339 +msgid "Stop current work" +msgstr "Stop current work" -msgid "Promote Sub-Project to Main-Project" -msgstr "Promote Sub-Project to Main-Project" +#: sl/SL_Menu.py:347 sl/SL_Menu.py:845 +msgid "Reporting" +msgstr "Reporting" +#: sl/SL_Menu.py:348 sl/SL_Menu.py:848 msgid "Daily Report (Today)" msgstr "Daily Report (Today)" +#: sl/SL_Menu.py:352 sl/SL_Menu.py:853 sl/SL_Menu.py:2195 msgid "Daily Report (Specific Day)" msgstr "Daily Report (Specific Day)" +#: sl/SL_Menu.py:354 sl/SL_Menu.py:854 sl/SL_Menu.py:2214 msgid "Date Range Report" msgstr "Date Range Report" -msgid "Detailed Sub-Project Report" -msgstr "Detailed Sub-Project Report" +#: sl/SL_Menu.py:356 sl/SL_Menu.py:855 sl/SL_Menu.py:2241 sl/SL_Menu.py:2272 +msgid "Detailed Task Report" +msgstr "Detailed Task Report" -msgid "Detailed Main-Project Report" -msgstr "Detailed Main-Project Report" +#: sl/SL_Menu.py:358 sl/SL_Menu.py:856 sl/SL_Menu.py:2300 +msgid "Detailed Project Report" +msgstr "Detailed Project Report" +#: sl/SL_Menu.py:360 sl/SL_Menu.py:857 sl/SL_Menu.py:2327 msgid "Detailed Daily Report" msgstr "Detailed Daily Report" -msgid "Change Language" -msgstr "Change Language" +#: sl/SL_Menu.py:364 sl/SL_Menu.py:868 +msgid "Settings" +msgstr "Settings" -msgid "Restore Previous Version" -msgstr "Restore Previous Version" +#: sl/SL_Menu.py:371 sl/SL_Menu.py:1897 +msgid "Current Active Work" +msgstr "Current Active Work" + +#: sl/SL_Menu.py:376 sl/SL_Menu.py:497 sl/SL_Menu.py:559 sl/SL_Menu.py:633 +#: sl/SL_Menu.py:1773 +msgid "Done" +msgstr "Done" + +#: sl/SL_Menu.py:390 +msgid "Edit current task" +msgstr "Edit current task" + +#: sl/SL_Menu.py:398 +msgid "Exit" +msgstr "Exit" + +#: sl/SL_Menu.py:410 sl/SL_Menu.py:420 +msgid "Tomorrow" +msgstr "Tomorrow" + +#: sl/SL_Menu.py:411 sl/SL_Menu.py:421 +msgid "Weekly overview" +msgstr "Weekly overview" + +#: sl/SL_Menu.py:412 sl/SL_Menu.py:422 +msgid "Overdue tasks" +msgstr "Overdue tasks" + +#: sl/SL_Menu.py:413 sl/SL_Menu.py:423 +msgid "Unplanned tasks" +msgstr "Unplanned tasks" + +#: sl/SL_Menu.py:414 +msgid "All" +msgstr "All" + +#: sl/SL_Menu.py:416 +msgid "Filter" +msgstr "Filter" + +#: sl/SL_Menu.py:430 +msgid "Tasks" +msgstr "Tasks" + +#: sl/SL_Menu.py:572 +msgid "No tasks found." +msgstr "No tasks found." + +#: sl/SL_Menu.py:574 sl/SL_Menu.py:648 sl/SL_Menu.py:770 sl/SL_Menu.py:810 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:914 sl/SL_Menu.py:925 sl/SL_Menu.py:959 +#: sl/SL_Menu.py:970 sl/SL_Menu.py:1004 sl/SL_Menu.py:1015 sl/SL_Menu.py:1050 +#: sl/SL_Menu.py:1061 sl/SL_Menu.py:1069 sl/SL_Menu.py:1120 sl/SL_Menu.py:1145 +#: sl/SL_Menu.py:1167 sl/SL_Menu.py:1199 sl/SL_Menu.py:1210 sl/SL_Menu.py:1250 +#: sl/SL_Menu.py:1262 sl/SL_Menu.py:1297 sl/SL_Menu.py:1317 sl/SL_Menu.py:1329 +#: sl/SL_Menu.py:1340 sl/SL_Menu.py:1376 sl/SL_Menu.py:1406 sl/SL_Menu.py:1436 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1488 sl/SL_Menu.py:1535 sl/SL_Menu.py:1547 +#: sl/SL_Menu.py:1678 sl/SL_Menu.py:1697 sl/SL_Menu.py:1710 sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1858 sl/SL_Menu.py:1868 sl/SL_Menu.py:1912 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:2102 sl/SL_Menu.py:2207 sl/SL_Menu.py:2234 sl/SL_Menu.py:2246 +#: sl/SL_Menu.py:2258 sl/SL_Menu.py:2277 sl/SL_Menu.py:2293 sl/SL_Menu.py:2305 +#: sl/SL_Menu.py:2320 sl/SL_Menu.py:2339 sl/SL_Menu.py:2380 sl/SL_Menu.py:2395 +msgid "Back" +msgstr "Back" + +#: sl/SL_Menu.py:581 +msgid "Today's Tasks" +msgstr "Today's Tasks" + +#: sl/SL_Menu.py:646 +msgid "No tasks for today." +msgstr "No tasks for today." + +#: sl/SL_Menu.py:661 +msgid "Fetching emails..." +msgstr "Fetching emails..." + +#: sl/SL_Menu.py:664 +#, python-brace-format +msgid "Error fetching emails: {error}" +msgstr "Error fetching emails: {error}" + +#: sl/SL_Menu.py:667 +#, python-brace-format +msgid "{count} new tasks created from emails." +msgstr "{count} new tasks created from emails." + +#: sl/SL_Menu.py:669 +msgid "No new emails found." +msgstr "No new emails found." + +#: sl/SL_Menu.py:675 +msgid "No unassigned email tasks available." +msgstr "No unassigned email tasks available." + +#: sl/SL_Menu.py:687 +msgid "Assign Project" +msgstr "Assign Project" + +#: sl/SL_Menu.py:698 +msgid "Are you sure you want to delete this task?" +msgstr "Are you sure you want to delete this task?" + +#: sl/SL_Menu.py:701 +msgid "Yes, delete" +msgstr "Yes, delete" + +#: sl/SL_Menu.py:706 +msgid "No, cancel" +msgstr "No, cancel" + +#: sl/SL_Menu.py:713 +msgid "Delete" +msgstr "Delete" + +#: sl/SL_Menu.py:717 +msgid "Edit Details" +msgstr "Edit Details" + +#: sl/SL_Menu.py:725 sl/SL_Menu.py:1757 +msgid "Task Name" +msgstr "Task Name" + +#: sl/SL_Menu.py:734 sl/SL_Menu.py:1761 +msgid "Due Date" +msgstr "Due Date" + +#: sl/SL_Menu.py:742 sl/SL_Menu.py:1765 +msgid "Clear" +msgstr "Clear" + +#: sl/SL_Menu.py:749 sl/SL_Menu.py:1634 sl/SL_Menu.py:1804 +msgid "Notes (Markdown)" +msgstr "Notes (Markdown)" + +#: sl/SL_Menu.py:751 sl/SL_Menu.py:1816 +msgid "Save Changes" +msgstr "Save Changes" + +#: sl/SL_Menu.py:762 +msgid "Task details updated successfully." +msgstr "Task details updated successfully." + +#: sl/SL_Menu.py:768 +msgid "Error updating task details." +msgstr "Error updating task details." + +#: sl/SL_Menu.py:778 sl/SL_Menu.py:794 +msgid "Project Management" +msgstr "Project Management" + +#: sl/SL_Menu.py:787 sl/SL_Menu.py:861 +msgid "Back to Main Menu" +msgstr "Back to Main Menu" +#: sl/SL_Menu.py:873 sl/SL_Menu.py:2000 +msgid "Report Format" +msgstr "Report Format" + +#: sl/SL_Menu.py:875 sl/SL_Menu.py:2159 +msgid "Email Settings" +msgstr "Email Settings" + +#: sl/SL_Menu.py:876 sl/SL_Menu.py:2020 +msgid "Change CSS Style" +msgstr "Change CSS Style" + +#: sl/SL_Menu.py:877 sl/SL_Menu.py:2058 +msgid "Change View Mode" +msgstr "Change View Mode" + +#: sl/SL_Menu.py:890 +msgid "Add New Project" +msgstr "Add New Project" + +#: sl/SL_Menu.py:893 +msgid "Name of the project" +msgstr "Name of the project" + +#: sl/SL_Menu.py:897 +#, python-brace-format +msgid "Project '{name}' added." +msgstr "Project '{name}' added." + +#: sl/SL_Menu.py:901 sl/SL_Menu.py:947 sl/SL_Menu.py:992 sl/SL_Menu.py:1038 +#: sl/SL_Menu.py:1093 sl/SL_Menu.py:1187 sl/SL_Menu.py:1235 sl/SL_Menu.py:1285 +#: sl/SL_Menu.py:1364 sl/SL_Menu.py:1394 sl/SL_Menu.py:1424 sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1517 sl/SL_Menu.py:1557 sl/SL_Menu.py:1666 sl/SL_Menu.py:1685 +#: sl/SL_Menu.py:1843 sl/SL_Menu.py:1890 sl/SL_Menu.py:1934 sl/SL_Menu.py:1995 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2051 sl/SL_Menu.py:2084 sl/SL_Menu.py:2152 +#: sl/SL_Menu.py:2188 +msgid "Cancel" +msgstr "Cancel" + +#: sl/SL_Menu.py:919 sl/SL_Menu.py:964 sl/SL_Menu.py:1009 sl/SL_Menu.py:1204 +#: sl/SL_Menu.py:1267 sl/SL_Menu.py:1302 sl/SL_Menu.py:1334 sl/SL_Menu.py:1383 +#: sl/SL_Menu.py:1413 sl/SL_Menu.py:1443 sl/SL_Menu.py:1863 sl/SL_Menu.py:2251 +#: sl/SL_Menu.py:2312 +msgid "Select Project" +msgstr "Select Project" + +#: sl/SL_Menu.py:924 +#, python-brace-format +msgid "No open tasks to close in '{name}'." +msgstr "No open tasks to close in '{name}'." + +#: sl/SL_Menu.py:931 sl/SL_Menu.py:976 sl/SL_Menu.py:1021 sl/SL_Menu.py:1075 +#: sl/SL_Menu.py:1216 sl/SL_Menu.py:1344 sl/SL_Menu.py:1700 sl/SL_Menu.py:1874 +#: sl/SL_Menu.py:2282 +msgid "Select Task" +msgstr "Select Task" + +#: sl/SL_Menu.py:941 +#, 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:969 +#, python-brace-format +msgid "No closed tasks to reopen in '{name}'." +msgstr "No closed tasks to reopen in '{name}'." + +#: sl/SL_Menu.py:986 +#, 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:1014 +#, python-brace-format +msgid "No open tasks to delete in '{name}'." +msgstr "No open tasks to delete in '{name}'." + +#: sl/SL_Menu.py:1025 +msgid "This action cannot be undone." +msgstr "This action cannot be undone." + +#: sl/SL_Menu.py:1032 +#, python-brace-format +msgid "Task '{sub_name}' deleted from '{main_name}'." +msgstr "Task '{sub_name}' deleted from '{main_name}'." + +#: sl/SL_Menu.py:1055 +msgid "Select Source Project" +msgstr "Select Source Project" + +#: sl/SL_Menu.py:1060 +#, python-brace-format +msgid "No tasks found in '{name}'." +msgstr "No tasks found in '{name}'." + +#: sl/SL_Menu.py:1068 +msgid "No other projects available to move to." +msgstr "No other projects available to move to." + +#: sl/SL_Menu.py:1079 sl/SL_Menu.py:1503 +msgid "Select Target Project" +msgstr "Select Target Project" + +#: sl/SL_Menu.py:1087 +#, python-brace-format +msgid "Task '{sub}' moved from '{src}' to '{dst}'." +msgstr "Task '{sub}' moved from '{src}' to '{dst}'." + +#: sl/SL_Menu.py:1091 +msgid "Error: Could not move task." +msgstr "Error: Could not move task." + +#: sl/SL_Menu.py:1102 sl/SL_Menu.py:1464 +msgid "Weeks of inactivity" +msgstr "Weeks of inactivity" + +#: sl/SL_Menu.py:1107 +#, python-brace-format +msgid "Inactive Tasks (> {weeks} weeks):" +msgstr "Inactive Tasks (> {weeks} weeks):" + +#: sl/SL_Menu.py:1112 sl/SL_Menu.py:1472 +msgid "Last Activity" +msgstr "Last Activity" + +#: sl/SL_Menu.py:1171 +#, python-brace-format +msgid "" +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." +msgstr "" +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." + +#: sl/SL_Menu.py:1173 +msgid "Show projects to delete" +msgstr "Show projects to delete" + +#: sl/SL_Menu.py:1177 +msgid "Delete All" +msgstr "Delete All" + +#: sl/SL_Menu.py:1183 +#, python-brace-format +msgid "Successfully deleted {count} tasks." +msgstr "Successfully deleted {count} tasks." + +#: sl/SL_Menu.py:1209 +#, python-brace-format +msgid "No open tasks to promote in '{name}'." +msgstr "No open tasks to promote in '{name}'." + +#: sl/SL_Menu.py:1220 +msgid "" +"This will create a new Project with the task's name and move all time " +"entries to a 'General' task within it." +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:1222 +msgid "Promote to Project" +msgstr "Promote to Project" + +#: sl/SL_Menu.py:1261 +msgid "No open projects to rename." +msgstr "No open projects to rename." + +#: sl/SL_Menu.py:1270 sl/SL_Menu.py:1349 +msgid "New Name" +msgstr "New Name" + +#: sl/SL_Menu.py:1271 sl/SL_Menu.py:1350 +msgid "Rename" +msgstr "Rename" + +#: sl/SL_Menu.py:1275 sl/SL_Menu.py:1354 +msgid "Please enter a new name." +msgstr "Please enter a new name." + +#: sl/SL_Menu.py:1277 sl/SL_Menu.py:1356 +msgid "New name is the same as the old name." +msgstr "New name is the same as the old name." + +#: sl/SL_Menu.py:1279 +#, 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:1339 +#, python-brace-format +msgid "No open tasks to rename in '{name}'." +msgstr "No open tasks to rename in '{name}'." + +#: sl/SL_Menu.py:1362 +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:1375 +msgid "No open projects to close." +msgstr "No open projects to close." + +#: sl/SL_Menu.py:1388 +#, python-brace-format +msgid "Project '{name}' has been closed." +msgstr "Project '{name}' has been closed." + +#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1422 sl/SL_Menu.py:1453 +msgid "Error: Project not found." +msgstr "Error: Project not found." + +#: sl/SL_Menu.py:1405 +msgid "No closed projects to reopen." +msgstr "No closed projects to reopen." + +#: sl/SL_Menu.py:1418 +#, python-brace-format +msgid "Project '{name}' has been reopened." +msgstr "Project '{name}' has been reopened." + +#: sl/SL_Menu.py:1444 +msgid "" +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." +msgstr "" +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." + +#: sl/SL_Menu.py:1449 +#, python-brace-format +msgid "Project '{name}' has been deleted." +msgstr "Project '{name}' has been deleted." + +#: sl/SL_Menu.py:1469 +#, python-brace-format +msgid "Inactive Projects (> {weeks} weeks):" +msgstr "Inactive Projects (> {weeks} weeks):" + +#: sl/SL_Menu.py:1474 +#, 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:1483 sl/SL_Menu.py:1506 +msgid "Demote Project" +msgstr "Demote Project" + +#: sl/SL_Menu.py:1495 +msgid "Select Project to Demote" +msgstr "Select Project to Demote" + +#: sl/SL_Menu.py:1501 +msgid "No other projects available to demote into." +msgstr "No other projects available to demote into." + +#: sl/SL_Menu.py:1504 +#, 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:1529 +msgid "Projects with only closed or no tasks:" +msgstr "Projects with only closed or no tasks:" + +#: sl/SL_Menu.py:1533 +msgid "No completed projects found." +msgstr "No completed projects found." + +#: sl/SL_Menu.py:1542 sl/SL_Menu.py:1673 sl/SL_Menu.py:2241 +msgid "Step 1: Select Project" +msgstr "Step 1: Select Project" + +#: sl/SL_Menu.py:1546 sl/SL_Menu.py:1857 +msgid "No open projects found. Please add one first." +msgstr "No open projects found. Please add one first." + +#: sl/SL_Menu.py:1551 sl/SL_Menu.py:1680 sl/SL_Menu.py:1905 +msgid "Project" +msgstr "Project" + +#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1681 sl/SL_Menu.py:1705 sl/SL_Menu.py:2253 +msgid "Next" +msgstr "Next" + +#: sl/SL_Menu.py:1568 sl/SL_Menu.py:2267 +msgid "No project selected. Please start again." +msgstr "No project selected. Please start again." + +#: sl/SL_Menu.py:1573 +msgid "To Project:" +msgstr "To Project:" + +#: sl/SL_Menu.py:1594 +msgid "Name of the new task" +msgstr "Name of the new task" + +#: sl/SL_Menu.py:1600 +msgid "Due date" +msgstr "Due date" + +#: sl/SL_Menu.py:1606 sl/SL_Menu.py:1775 +msgid "Recurring" +msgstr "Recurring" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "daily" +msgstr "daily" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "on all business days" +msgstr "on all business days" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "weekly" +msgstr "weekly" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "monthly" +msgstr "monthly" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "userdefined" +msgstr "userdefined" + +#: sl/SL_Menu.py:1624 sl/SL_Menu.py:1797 +msgid "Frequency" +msgstr "Frequency" + +#: sl/SL_Menu.py:1628 sl/SL_Menu.py:1800 +msgid "Days" +msgstr "Days" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Edit" +msgstr "Edit" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Preview" +msgstr "Preview" + +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1807 +msgid "No notes provided." +msgstr "No notes provided." + +#: sl/SL_Menu.py:1642 sl/SL_Menu.py:1812 +msgid "A due date is required for recurring tasks." +msgstr "A due date is required for recurring tasks." + +#: sl/SL_Menu.py:1650 +msgid "Please enter a name." +msgstr "Please enter a name." + +#: sl/SL_Menu.py:1661 +#, python-brace-format +msgid "Task '{sub_name}' added to '{main_name}'." +msgstr "Task '{sub_name}' added to '{main_name}'." + +#: sl/SL_Menu.py:1693 sl/SL_Menu.py:2272 +msgid "Step 2: Select Task from" +msgstr "Step 2: Select Task from" + +#: sl/SL_Menu.py:1696 +msgid "No open tasks found." +msgstr "No open tasks found." + +#: sl/SL_Menu.py:1724 +msgid "Task not found." +msgstr "Task not found." + +#: sl/SL_Menu.py:1840 +msgid "Error: Could not update task." +msgstr "Error: Could not update task." + +#: sl/SL_Menu.py:1853 +msgid "Start Work on Task" +msgstr "Start Work on Task" + +#: sl/SL_Menu.py:1867 +#, 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:1878 +msgid "Start Work" +msgstr "Start Work" + +#: sl/SL_Menu.py:1906 +msgid "Task" +msgstr "Task" + +#: sl/SL_Menu.py:1907 +msgid "Started at" +msgstr "Started at" + +#: sl/SL_Menu.py:1918 +msgid "Streamlit Port Settings" +msgstr "Streamlit Port Settings" + +#: sl/SL_Menu.py:1922 +msgid "Current Streamlit Port" +msgstr "Current Streamlit Port" + +#: sl/SL_Menu.py:1925 +msgid "New Port" +msgstr "New Port" + +#: sl/SL_Menu.py:1926 sl/SL_Menu.py:1958 sl/SL_Menu.py:2007 sl/SL_Menu.py:2042 +#: sl/SL_Menu.py:2074 sl/SL_Menu.py:2141 sl/SL_Menu.py:2173 +msgid "Save" +msgstr "Save" + +#: sl/SL_Menu.py:1930 +#, python-brace-format +msgid "Port updated to {port}. Please restart Streamlit." +msgstr "Port updated to {port}. Please restart Streamlit." + +#: sl/SL_Menu.py:1940 msgid "Change Data Storage Location" msgstr "Change Data Storage Location" -msgid "Select Action" -msgstr "Select Action" +#: sl/SL_Menu.py:1943 +msgid "Current data file" +msgstr "Current data file" -msgid "Select Main Project" -msgstr "Select Main Project" +#: sl/SL_Menu.py:1946 +msgid "New Path for data file" +msgstr "New Path for data file" -msgid "Select Sub-Project" -msgstr "Select Sub-Project" +#: sl/SL_Menu.py:1952 +msgid "Move existing data to the new location" +msgstr "Move existing data to the new location" -msgid "Back to Main Menu" -msgstr "Back to Main Menu" \ No newline at end of file +#: sl/SL_Menu.py:1955 +msgid "" +"If unchecked, the old data file will remain, and a new empty one might be " +"created at the new location on restart." +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:1962 +msgid "Please enter a new path." +msgstr "Please enter a new path." + +#: sl/SL_Menu.py:1970 +msgid "" +"Error: For security, the data file must be located within the application " +"directory." +msgstr "" +"Error: For security, the data file must be located within the application " +"directory." + +#: sl/SL_Menu.py:1980 +msgid "" +"Storage location updated. Please restart the application for the changes to " +"take effect." +msgstr "" +"Storage location updated. Please restart the application for the changes to " +"take effect." + +#: sl/SL_Menu.py:2006 +msgid "Select Format" +msgstr "Select Format" + +#: sl/SL_Menu.py:2011 +msgid "Report format updated." +msgstr "Report format updated." + +#: sl/SL_Menu.py:2024 +msgid "Current CSS file" +msgstr "Current CSS file" + +#: sl/SL_Menu.py:2041 +msgid "Select CSS File" +msgstr "Select CSS File" + +#: sl/SL_Menu.py:2047 +msgid "" +"CSS style updated. Please restart the application for the changes to take " +"effect." +msgstr "" +"CSS style updated. Please restart the application for the changes to take " +"effect." + +#: sl/SL_Menu.py:2063 +msgid "App Window (Webview)" +msgstr "App Window (Webview)" + +#: sl/SL_Menu.py:2063 +msgid "System Browser" +msgstr "System Browser" + +#: sl/SL_Menu.py:2073 +msgid "Select View Mode" +msgstr "Select View Mode" + +#: sl/SL_Menu.py:2080 +msgid "" +"View mode updated. Please restart the application for the changes to take " +"effect." +msgstr "" +"View mode updated. Please restart the application for the changes to take " +"effect." + +#: sl/SL_Menu.py:2091 +msgid "Restore Previous Version" +msgstr "Restore Previous Version" + +#: sl/SL_Menu.py:2096 +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:2101 +#, python-brace-format +msgid "No previous version backup '{filename}' found." +msgstr "No previous version backup '{filename}' found." + +#: sl/SL_Menu.py:2105 +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 "" +"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." + +#: sl/SL_Menu.py:2107 +msgid "Restore and Restart" +msgstr "Restore and Restart" + +#: sl/SL_Menu.py:2108 +msgid "Restoring and restarting..." +msgstr "Restoring and restarting..." + +#: sl/SL_Menu.py:2111 +msgid "Restore complete. Please restart the application." +msgstr "Restore complete. Please restart the application." + +#: sl/SL_Menu.py:2117 +msgid "Change Language" +msgstr "Change Language" + +#: sl/SL_Menu.py:2140 +msgid "Select Language" +msgstr "Select Language" + +#: sl/SL_Menu.py:2148 +msgid "" +"Language changed. Please restart the application for the changes to take " +"effect." +msgstr "" +"Language changed. Please restart the application for the changes to take " +"effect." + +#: sl/SL_Menu.py:2166 +msgid "Enable email import" +msgstr "Enable email import" + +#: sl/SL_Menu.py:2167 +msgid "IMAP Server" +msgstr "IMAP Server" + +#: sl/SL_Menu.py:2168 +msgid "Port" +msgstr "Port" + +#: sl/SL_Menu.py:2169 +msgid "Username" +msgstr "Username" + +#: sl/SL_Menu.py:2170 +msgid "Password" +msgstr "Password" + +#: sl/SL_Menu.py:2171 +msgid "Use SSL" +msgstr "Use SSL" + +#: sl/SL_Menu.py:2184 +msgid "Email settings saved." +msgstr "Email settings saved." + +#: sl/SL_Menu.py:2198 sl/SL_Menu.py:2330 +msgid "Select Date" +msgstr "Select Date" + +#: sl/SL_Menu.py:2199 sl/SL_Menu.py:2223 sl/SL_Menu.py:2287 sl/SL_Menu.py:2313 +#: sl/SL_Menu.py:2331 +msgid "Generate Report" +msgstr "Generate Report" + +#: sl/SL_Menu.py:2219 +msgid "Start Date" +msgstr "Start Date" + +#: sl/SL_Menu.py:2221 +msgid "End Date" +msgstr "End Date" + +#: sl/SL_Menu.py:2346 +msgid "Report Result" +msgstr "Report Result" + +#: sl/SL_Menu.py:2375 +msgid "Export Report" +msgstr "Export Report" + +#~ msgid "" +#~ "\n" +#~ "Error: Failed to install dependencies. Please install them manually using: pip install -r {requirements_path}" +#~ msgstr "" +#~ "\n" +#~ "Error: Failed to install dependencies. Please install them manually using: pip install -r {requirements_path}" + +#~ msgid "A task named '{task_name}' already exists in '{main_name}'." +#~ msgstr "A task named '{task_name}' already exists in '{main_name}'." + +#~ msgid "Main project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Main project '{old_name}' renamed to '{new_name}'." + +#~ msgid "7. Add Sub-Project" +#~ msgstr "7. Add Sub-Project" + +#~ msgid "8. List Sub-Projects" +#~ msgstr "8. List Sub-Projects" + +#~ msgid "9. Rename Sub-Project" +#~ msgstr "9. Rename Sub-Project" + +#~ msgid "10. Close Sub-Project" +#~ msgstr "10. Close Sub-Project" + +#~ msgid "11. Re-open Sub-Project" +#~ msgstr "11. Re-open Sub-Project" + +#~ msgid "12. Delete Sub-Project" +#~ msgstr "12. Delete Task" + +#~ msgid "13. Move Sub-Project" +#~ msgstr "13. Move Task" + +#~ msgid "14. List Inactive Sub-Projects" +#~ msgstr "14. List Inactive Tasks" + +#~ msgid "" +#~ "\n" +#~ "--- Add New Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Add New Sub-Project ---" + +#~ msgid "" +#~ "\n" +#~ "--- List Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- List Sub-Projects ---" + +#~ msgid "" +#~ "\n" +#~ "--- Rename Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Rename Sub-Project ---" + +#~ msgid "Sub-project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Sub-project '{old_name}' renamed to '{new_name}'." + +#~ msgid "" +#~ "\n" +#~ "--- Delete Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Delete Sub-Project ---" + +#~ msgid "" +#~ "\n" +#~ "--- List Inactive Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- List Inactive Sub-Projects ---" + +#~ msgid " Sub-Project: {name}" +#~ msgstr " Sub-Project: {name}" + +#~ msgid "" +#~ "\n" +#~ "--- Move Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Move Sub-Project ---" + +#~ msgid "4. Detailed Sub-Project Report" +#~ msgstr "4. Detailed Sub-Project Report" + +#~ msgid "" +#~ "\n" +#~ "--- Detailed Sub-Project Report ---" +#~ msgstr "" +#~ "\n" +#~ "--- Detailed Sub-Project Report ---" + +#~ msgid "Invalid choice. Please enter a number from 0 to 3." +#~ msgstr "Invalid choice. Please enter a number from 0 to 3." + +#~ msgid " Sub-Project: {name}" +#~ msgstr " Sub-Project: {name}" + +#~ msgid "" +#~ "\n" +#~ "No time tracked for {date}." +#~ msgstr "" +#~ "\n" +#~ "No time tracked for {date}." + +#~ msgid "# Detailed Report for Sub-Project: {name}" +#~ msgstr "# Detailed Report for Sub-Project: {name}" + +#~ msgid "Sub-Project Breakdown" +#~ msgstr "Sub-Project Breakdown" + +#~ msgid "Sub-Project Management" +#~ msgstr "Sub-Project Management" + +#~ msgid "List Main Projects" +#~ msgstr "List Main Projects" + +#~ msgid "Rename Main Project" +#~ msgstr "Rename Main Project" + +#~ msgid "Delete Main Project" +#~ msgstr "Delete Main Project" + +#~ msgid "Detailed Main-Project Report" +#~ msgstr "Detailed Main-Project Report" diff --git a/locale/es/LC_MESSAGES/timetracker.mo b/locale/es/LC_MESSAGES/timetracker.mo index c793721..e6e8dba 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 a2654d9..9302079 100644 --- a/locale/es/LC_MESSAGES/timetracker.po +++ b/locale/es/LC_MESSAGES/timetracker.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" -"Report-Msgid-Bugs-To: https://github.com/FrankFaulstich/TimeControl/issues\n" -"POT-Creation-Date: 2026-01-01 14:30+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-18 12:24+0200\n" "PO-Revision-Date: 2026-01-01 14:40+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: Spanish\n" @@ -16,1014 +16,1268 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Edit current task" -msgstr "Editar tarea actual" - -#: TimeTracker.py:63 -msgid "Warning: Could not read {file}. Error: {error}" -msgstr "Advertencia: No se pudo leer {file}. Error: {error}" - -#: TimeTracker.py:75 -msgid "Some required packages are missing. Attempting to install them..." -msgstr "Faltan algunos paquetes requeridos. Intentando instalarlos..." - -#: TimeTracker.py:78 -msgid "Installing {package}..." -msgstr "Instalando {package}..." - -#: TimeTracker.py:81 +#: TimeTrackerCLI.py:25 msgid "" "\n" -"Dependencies installed successfully." +"--- Project Management ---" msgstr "" "\n" -"Dependencias instaladas con éxito." +"--- Gestión de Proyectos ---" -#: TimeTracker.py:82 -msgid "Please restart the application for the changes to take effect." -msgstr "Por favor, reinicie la aplicación para que los cambios surtan efecto." +#: TimeTrackerCLI.py:26 +msgid "1. Main Project Management" +msgstr "1. Gestión de Proyecto Principal" -#: TimeTracker.py:85 -msgid "" -"\n" -"Error: Failed to install dependencies. Please install them manually using: " -"pip install -r {requirements_path}" -msgstr "" -"\n" -"Error: No se pudieron instalar las dependencias. Por favor, instálelas " -"manualmente usando: pip install -r {requirements_path}" +#: TimeTrackerCLI.py:27 +msgid "2. Task Management" +msgstr "2. Gestión de Tareas" -#: TimeTracker.py:88 -msgid "An unexpected error occurred during dependency check: {error}" -msgstr "Ocurrió un error inesperado durante la comprobación de dependencias: {error}" +#: TimeTrackerCLI.py:29 +msgid "0. Back to Main Menu" +msgstr "0. Volver al Menú Principal" -#: TimeTracker.py:112 -msgid "Info: Report content has been copied to the clipboard." -msgstr "Info: El contenido del informe ha sido copiado al portapapeles." +#: TimeTrackerCLI.py:32 TimeTrackerCLI.py:60 TimeTrackerCLI.py:257 +#: TimeTrackerCLI.py:662 TimeTrackerCLI.py:701 TimeTrackerCLI.py:811 +#: TimeTrackerCLI.py:953 +msgid "Choice: " +msgstr "Elección: " -#: TimeTracker.py:114 -msgid "Warning: Could not copy to clipboard. Error: {error}" -msgstr "Advertencia: No se pudo copiar al portapapeles. Error: {error}" +#: TimeTrackerCLI.py:41 +msgid "Invalid choice. Please enter a number from 0 to 2." +msgstr "Elección no válida. Por favor ingrese un número del 0 al 2." -#: TimeTracker.py:116 +#: TimeTrackerCLI.py:46 msgid "" -"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " -"install pyperclip`)." +"\n" +"--- Main Project Management ---" msgstr "" -"Advertencia: No se pudo copiar al portapapeles. Por favor, instale " -"'pyperclip' (`pip install pyperclip`)." +"\n" +"--- Gestión del proyecto principal ---" -#: TimeTracker.py:130 -msgid "{hours} hour ({dlp} DLP)" -msgid_plural "{hours} hours ({dlp} DLP)" -msgstr[0] "{hours} hora ({dlp} DLP)" -msgstr[1] "{hours} horas ({dlp} DLP)" +#: TimeTrackerCLI.py:47 +msgid "1. Add Main Project" +msgstr "1. Añadir Proyecto Principal" -msgid "closed" -msgstr "cerrado" +#: TimeTrackerCLI.py:48 +msgid "2. List Main Projects" +msgstr "2. Listar Proyectos Principales" -msgid "open" -msgstr "abierto" +#: TimeTrackerCLI.py:49 +msgid "3. Rename Main Project" +msgstr "3. Renombrar Proyecto Principal" -msgid "all" -msgstr "todos" +#: TimeTrackerCLI.py:50 +msgid "4. Close Main Project" +msgstr "4. Cerrar el proyecto principal" -#: TimeTracker.py:350 -msgid "Source main project '{name}' not found." -msgstr "Proyecto principal de origen '{name}' no encontrado." +#: TimeTrackerCLI.py:51 +msgid "5. Re-open Main Project" +msgstr "5. Reabrir el proyecto principal" -#: TimeTracker.py:352 -msgid "Destination main project '{name}' not found." -msgstr "Proyecto principal de destino '{name}' no encontrado." +#: TimeTrackerCLI.py:52 +msgid "6. Delete Main Project" +msgstr "6. Eliminar el proyecto principal" -#: tt/TimeTracker.py:356 -msgid "A task named '{task_name}' already exists in '{main_name}'." -msgstr "Ya existe una tarea llamada '{task_name}' en '{main_name}'." +#: TimeTrackerCLI.py:53 +msgid "7. List Inactive Main Projects" +msgstr "7. Enumerar proyectos principales inactivos" -msgid "Task '{task_name}' moved successfully." -msgstr "Tarea '{task_name}' movida con éxito." +#: TimeTrackerCLI.py:54 +msgid "8. Demote Main-Project to Sub-Project" +msgstr "8. Degradar proyecto principal a subproyecto" -#: TimeTracker.py:378 -msgid "A main project named '{name}' already exists." -msgstr "Ya existe un proyecto principal llamado '{name}'." +#: TimeTrackerCLI.py:55 +msgid "9. List Completed Main Projects" +msgstr "9. Enumerar proyectos principales completados" -msgid "Main project '{old_name}' renamed to '{new_name}'." -msgstr "Proyecto principal '{old_name}' renombrado a '{new_name}'." +#: TimeTrackerCLI.py:57 TimeTrackerCLI.py:254 +msgid "0. Back" +msgstr "0. Atrás" -#: TimeTracker.py:398 -msgid "Task '{sub_name}' not found in '{main_name}'." -msgstr "No se encontró la tarea '{sub_name}' en '{main_name}'." +#: TimeTrackerCLI.py:64 +msgid "" +"\n" +"--- Add New Main Project ---" +msgstr "" +"\n" +"--- Añadir Nuevo Proyecto Principal ---" -#: TimeTracker.py:406 -msgid "General" -msgstr "General" +#: TimeTrackerCLI.py:65 +msgid "Name of the main project: " +msgstr "Nombre del proyecto principal: " -#: TimeTracker.py:410 -msgid "Task '{name}' was promoted to a new main project." -msgstr "La tarea '{name}' fue promovida a un nuevo proyecto principal." +#: TimeTrackerCLI.py:67 +#, python-brace-format +msgid "Main project '{name}' added." +msgstr "Proyecto principal '{name}' añadido." -#: TimeTracker.py:439 -msgid "Main project to demote '{name}' not found." -msgstr "No se encontró el proyecto principal a degradar '{name}'." +#: TimeTrackerCLI.py:70 +msgid "" +"\n" +"--- List Main Projects ---" +msgstr "" +"\n" +"--- Listar Proyectos Principales ---" -#: TimeTracker.py:441 -msgid "New parent main project '{name}' not found." -msgstr "No se encontró el nuevo proyecto principal padre '{name}'." +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1246 +#: sl/SL_Menu.py:1310 +msgid "closed" +msgstr "cerrado" -#: TimeTracker.py:455 -msgid "Task '{old_name}' has been renamed to '{new_name}'." -msgstr "La tarea '{old_name}' ha sido renombrada a '{new_name}'." +#: TimeTrackerCLI.py:79 +msgid "No main projects found." +msgstr "No se encontraron proyectos principales." -#: TimeTracker.py:463 +#: TimeTrackerCLI.py:82 msgid "" -"Main project '{demoted_name}' was demoted to a task under " -"'{parent_name}'." +"\n" +"--- Rename Main Project ---" msgstr "" -"El proyecto principal '{demoted_name}' fue degradado a un subproyecto bajo " -"'{parent_name}'." +"\n" +"--- Renombrar Proyecto Principal ---" -msgid "Task Planning" -msgstr "Planificación de tareas" +#: TimeTrackerCLI.py:85 +msgid "No main projects to rename." +msgstr "No hay proyectos principales para renombrar." -msgid "Today View" -msgstr "Vista de hoy" +#: TimeTrackerCLI.py:88 +msgid "Select an open main project to rename:" +msgstr "Seleccione un proyecto principal abierto para cambiarle el nombre:" -msgid "E-Mail Task Assignment" -msgstr "Asignación de tareas por correo" +#: TimeTrackerCLI.py:93 TimeTrackerCLI.py:117 TimeTrackerCLI.py:139 +#: TimeTrackerCLI.py:162 TimeTrackerCLI.py:272 TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:333 TimeTrackerCLI.py:370 TimeTrackerCLI.py:405 +#: TimeTrackerCLI.py:441 TimeTrackerCLI.py:568 TimeTrackerCLI.py:604 +#: TimeTrackerCLI.py:855 TimeTrackerCLI.py:888 TimeTrackerCLI.py:969 +msgid "Enter the number of the main project: " +msgstr "Introduzca el número del proyecto principal: " -msgid "Fetching emails..." -msgstr "Recuperando correos electrónicos..." +#: TimeTrackerCLI.py:96 TimeTrackerCLI.py:349 +#, python-brace-format +msgid "Enter the new name for '{name}': " +msgstr "Introduzca el nuevo nombre para '{name}': " -msgid "Error fetching emails: {error}" -msgstr "Error al recuperar correos: {error}" +#: TimeTrackerCLI.py:99 +#, python-brace-format +msgid "Main project '{old_name}' successfully renamed to '{new_name}'." +msgstr "Proyecto principal '{old_name}' renombrado a '{new_name}' con éxito." -msgid "{count} new tasks created from emails." -msgstr "{count} nuevas tareas creadas desde correos." +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1283 +#, python-brace-format +msgid "" +"Error: Could not rename. The new name '{new_name}' might already exist." +msgstr "" +"Error: No se pudo renombrar. El nuevo nombre '{new_name}' ya podría existir." + +#: TimeTrackerCLI.py:103 TimeTrackerCLI.py:125 TimeTrackerCLI.py:147 +#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:221 TimeTrackerCLI.py:287 +#: TimeTrackerCLI.py:319 TimeTrackerCLI.py:356 TimeTrackerCLI.py:391 +#: TimeTrackerCLI.py:426 TimeTrackerCLI.py:463 TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:589 TimeTrackerCLI.py:794 TimeTrackerCLI.py:875 +#: TimeTrackerCLI.py:894 TimeTrackerCLI.py:992 +msgid "Invalid input. Please enter a valid number." +msgstr "Entrada inválida. Por favor, introduzca un número válido." -msgid "No new emails found." -msgstr "No se encontraron correos nuevos." +#: TimeTrackerCLI.py:106 +msgid "" +"\n" +"--- Close Main Project ---" +msgstr "" +"\n" +"--- Cerrar proyecto principal ---" -msgid "No unassigned email tasks available." -msgstr "No hay tareas de correo sin asignar disponibles." +#: TimeTrackerCLI.py:109 +msgid "No open main projects to close." +msgstr "No hay proyectos principales abiertos para cerrar." -msgid "Assign Project" -msgstr "Asignar proyecto" +#: TimeTrackerCLI.py:112 +msgid "Select a main project to close:" +msgstr "Seleccione un proyecto principal para cerrar:" -msgid "Edit Details" -msgstr "Editar detalles" +#: TimeTrackerCLI.py:121 +#, python-brace-format +msgid "Main project '{name}' has been closed." +msgstr "El proyecto principal '{name}' ha sido cerrado." -msgid "Due Date" -msgstr "Fecha de vencimiento" +#: TimeTrackerCLI.py:123 TimeTrackerCLI.py:145 +msgid "Error: Main project not found." +msgstr "Error: Proyecto principal no encontrado." -msgid "Clear" -msgstr "Limpiar" +#: TimeTrackerCLI.py:128 +msgid "" +"\n" +"--- Re-open Main Project ---" +msgstr "" +"\n" +"--- Reabrir proyecto principal ---" -msgid "Task Name" -msgstr "Nombre de la tarea" +#: TimeTrackerCLI.py:131 +msgid "No closed main projects to reopen." +msgstr "No hay proyectos principales cerrados para reabrir." -msgid "Task details updated successfully." -msgstr "Detalles de la tarea actualizados con éxito." +#: TimeTrackerCLI.py:134 +msgid "Select a main project to reopen:" +msgstr "Seleccione un proyecto principal para reabrir:" -msgid "Error updating task details." -msgstr "Error al actualizar los detalles de la tarea." +#: TimeTrackerCLI.py:143 +#, python-brace-format +msgid "Main project '{name}' has been reopened." +msgstr "El proyecto principal '{name}' ha sido reabierto." -msgid "Email Settings" -msgstr "Configuración de correo" +#: TimeTrackerCLI.py:150 +msgid "" +"\n" +"--- Delete Main Project ---" +msgstr "" +"\n" +"--- Eliminar Proyecto Principal ---" -msgid "Enable email import" -msgstr "Activar importación de correo" +#: TimeTrackerCLI.py:153 +msgid "No main projects to delete." +msgstr "No hay proyectos principales para eliminar." -msgid "Username" -msgstr "Usuario" +#: TimeTrackerCLI.py:156 +msgid "Select a main project to delete:" +msgstr "Seleccione un proyecto principal para eliminar:" -msgid "Password" -msgstr "Contraseña" +#: TimeTrackerCLI.py:165 +#, python-brace-format +msgid "Main project '{name}' deleted." +msgstr "Proyecto principal '{name}' eliminado." -msgid "Use SSL" -msgstr "Usar SSL" +#: TimeTrackerCLI.py:167 TimeTrackerCLI.py:285 +#, python-brace-format +msgid "Error: Main project '{name}' not found." +msgstr "Error: Proyecto principal '{name}' no encontrado." -msgid "Email settings saved." -msgstr "Configuración de correo guardada." +#: TimeTrackerCLI.py:172 +msgid "" +"\n" +"--- List Inactive Main-Projects ---" +msgstr "" +"\n" +"--- Listar Proyectos Principales Inactivos ---" -msgid "4. Change Streamlit Port" -msgstr "4. Cambiar puerto de Streamlit" +#: TimeTrackerCLI.py:174 +msgid "Enter the number of weeks without activity (e.g., 8): " +msgstr "Introduzca el número de semanas sin actividad (ej: 8): " -msgid "Current Streamlit Port: {port}" -msgstr "Puerto actual de Streamlit: {port}" +#: TimeTrackerCLI.py:176 TimeTrackerCLI.py:518 +msgid "Please enter a positive number." +msgstr "Por favor, introduzca un número positivo." -msgid "Enter new port (or press Enter to keep current): " -msgstr "Ingrese el nuevo puerto (o presione Enter para mantener el actual): " +#: TimeTrackerCLI.py:182 +#, python-brace-format +msgid "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" +msgstr "" +"\n" +"Proyectos Principales Inactivos (>{weeks} semanas):" -msgid "Port updated to {port}. Please restart Streamlit for changes to take effect." -msgstr "Puerto actualizado a {port}. Reinicie Streamlit para que los cambios surtan efecto." +#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:526 +#, python-brace-format +msgid " - Main Project: {name}" +msgstr " - Proyecto Principal: {name}" -msgid "Work started on '{task_name}' in project '{main_name}'." -msgstr "Trabajo iniciado en '{task_name}' en el proyecto '{main_name}'." +#: TimeTrackerCLI.py:185 TimeTrackerCLI.py:528 +#, python-brace-format +msgid " Last Activity: {date}" +msgstr " Última Actividad: {date}" -#: TimeTracker.py:651 -msgid "- {name}: {hours} hour" -msgid_plural "- {name}: {hours} hours" -msgstr[0] "- {name}: {hours} hora" -msgstr[1] "- {name}: {hours} horas" +#: TimeTrackerCLI.py:188 +#, python-brace-format +msgid "No main-projects found inactive for more than {weeks} weeks." +msgstr "" +"No se encontraron proyectos principales inactivos durante más " +"de{weeks}semanas." -#: TimeTracker.py:657 -msgid "## {name} ({hours} hour)\n" -msgid_plural "## {name} ({hours} hours)\n" -msgstr[0] "## {name} ({hours} hora)\n" -msgstr[1] "## {name} ({hours} horas)\n" +#: TimeTrackerCLI.py:191 TimeTrackerCLI.py:534 +msgid "Invalid input. Please enter a valid number for weeks." +msgstr "" +"Entrada inválida. Por favor, introduzca un número válido para las semanas." -#: TimeTracker.py:665 -msgid "# Daily Time Report: {date}\n" -msgstr "# Informe de Tiempo Diario: {date}\n" +#: TimeTrackerCLI.py:194 +msgid "" +"\n" +"--- Demote Main-Project to Sub-Project ---" +msgstr "" +"\n" +"--- Degradar Proyecto Principal a Subproyecto ---" -#: TimeTracker.py:666 -msgid "\n**Total Daily Time: {hours} hour**" -msgid_plural "\n**Total Daily Time: {hours} hours**" -msgstr[0] "\n**Tiempo Total Diario: {hours} hora**" -msgstr[1] "\n**Tiempo Total Diario: {hours} horas**" +#: TimeTrackerCLI.py:197 +msgid "You need at least two open main projects for this operation." +msgstr "" +"Necesita al menos dos proyectos principales abiertos para esta operación." -#: TimeTracker.py:670 -msgid "No time tracked for {date}." -msgstr "No hay tiempo registrado para {date}." +#: TimeTrackerCLI.py:202 +msgid "Select the main project to demote:" +msgstr "Seleccione el proyecto principal a degradar:" -#: TimeTracker.py:708 -msgid "# Time Report: {start_date} to {end_date}\n" -msgstr "# Informe de Tiempo: {start_date} a {end_date}\n" +#: TimeTrackerCLI.py:205 +msgid "Enter the number of the project to demote: " +msgstr "Introduzca el número del proyecto a degradar: " -#: TimeTracker.py:709 +#: TimeTrackerCLI.py:209 msgid "" "\n" -"**Total Time in Period: {total_time}**" +"Select the new parent main project:" msgstr "" "\n" -"**Tiempo Total en el Periodo: {total_time}**" +"Seleccione el nuevo proyecto principal padre:" -#: TimeTracker.py:721 -msgid "No time tracked between {start_date} and {end_date}." -msgstr "No hay tiempo registrado entre {start_date} y {end_date}." +#: TimeTrackerCLI.py:213 +msgid "Enter the number of the new parent project: " +msgstr "Introduzca el número del nuevo proyecto padre: " -msgid "now" -msgstr "ahora" +#: TimeTrackerCLI.py:224 +msgid "" +"\n" +"--- List Completed Main Projects ---" +msgstr "" +"\n" +"--- Lista de proyectos principales completados ---" -msgid "# Detailed Daily Report: {date}" -msgstr "# Informe Diario Detallado: {date}" +#: TimeTrackerCLI.py:227 +msgid "Main projects with only closed or no sub-projects:" +msgstr "" +"Proyectos principales con solo subproyectos cerrados o sin subproyectos:" -msgid "\nNo time tracked for {date}." -msgstr "\nNo hay tiempo registrado para {date}." +#: TimeTrackerCLI.py:231 +msgid "No completed main projects found." +msgstr "No se encontraron proyectos principales completados." -msgid "Active (working on '{sub_name}')" -msgstr "Activo (trabajando en '{sub_name}')" +#: TimeTrackerCLI.py:235 +msgid "Invalid choice. Please enter a number from 0 to 9." +msgstr "Elección no válida. Por favor ingrese un número del 0 al 9." -msgid "Part of Main Project: {name}" -msgstr "Parte del Proyecto Principal: {name}" +#: TimeTrackerCLI.py:240 +msgid "" +"\n" +"--- Task Management ---" +msgstr "" +"\n" +"--- Gestión de tareas ---" -msgid "Sub-Project Breakdown" -msgstr "Desglose de Subproyectos" +#: TimeTrackerCLI.py:241 +msgid "1. Add Task" +msgstr "1. Agregar tarea" -msgid "{num_sessions} sessions" -msgstr "{num_sessions} sesiones" +#: TimeTrackerCLI.py:242 +msgid "2. List Tasks" +msgstr "2. Enumerar tareas" -msgid "6. Detailed Daily Report" -msgstr "6. Informe Diario Detallado" +#: TimeTrackerCLI.py:243 +msgid "3. Rename Task" +msgstr "3. Cambiar nombre de tarea" -msgid "\n--- Detailed Daily Report ---" -msgstr "\n--- Informe Diario Detallado ---" +#: TimeTrackerCLI.py:244 +msgid "4. Close Task" +msgstr "4. Cerrar tarea" -msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " -msgstr "Introduzca la fecha (AAAA-MM-DD) o presione Enter para hoy: " +#: TimeTrackerCLI.py:245 +msgid "5. Re-open Task" +msgstr "5. Reabrir tarea" -msgid "Active (currently running)" -msgstr "Activo (actualmente en ejecución)" +#: TimeTrackerCLI.py:246 +msgid "6. Delete Task" +msgstr "6. Eliminar tarea" -msgid "Last activity" -msgstr "Última actividad" +#: TimeTrackerCLI.py:247 +msgid "7. Move Task" +msgstr "7. Mover tarea" -msgid "Inactive" -msgstr "Inactivo" +#: TimeTrackerCLI.py:248 +msgid "8. List Inactive Tasks" +msgstr "8. Enumerar tareas inactivas" -msgid "Status" -msgstr "Estado" +#: TimeTrackerCLI.py:249 +msgid "9. List All Closed Tasks" +msgstr "9. Enumerar todas las tareas cerradas" -msgid "First entry" -msgstr "Primera entrada" +#: TimeTrackerCLI.py:250 +msgid "10. Delete All Closed Tasks" +msgstr "10. Eliminar todas las tareas cerradas" -msgid "Total recorded time" -msgstr "Tiempo total registrado" - -msgid "Total work sessions" -msgstr "Total de sesiones de trabajo" +#: TimeTrackerCLI.py:251 +msgid "11. Promote Task to Main-Project" +msgstr "11. Promocionar tarea a proyecto principal" -msgid "Average session duration" -msgstr "Duración media de la sesión" - -msgid "Weekday Distribution" -msgstr "Distribución por día de la semana" +#: TimeTrackerCLI.py:252 +msgid "12. Edit Task (Name & Due Date)" +msgstr "12. Editar tarea (nombre y fecha de vencimiento)" -msgid "Monday" -msgstr "Lunes" +#: TimeTrackerCLI.py:261 +msgid "" +"\n" +"--- Add New Task ---" +msgstr "" +"\n" +"--- Agregar nueva tarea ---" -msgid "Tuesday" -msgstr "Martes" +#: TimeTrackerCLI.py:264 TimeTrackerCLI.py:960 +msgid "No open main projects found. Please add one first." +msgstr "" +"No se encontraron proyectos principales abiertos. Por favor agregue uno " +"primero." -msgid "Wednesday" -msgstr "Miércoles" +#: TimeTrackerCLI.py:267 +msgid "Select a main project to add a task to:" +msgstr "Seleccione un proyecto principal al que agregar una tarea:" -msgid "Thursday" -msgstr "Jueves" +#: TimeTrackerCLI.py:275 +msgid "Name of the new task: " +msgstr "Nombre de la nueva tarea:" -msgid "Friday" -msgstr "Viernes" +#: TimeTrackerCLI.py:276 +msgid "Due date (YYYY-MM-DD, press Enter to skip): " +msgstr "Fecha de vencimiento (AAAA-MM-DD, presione Entrar para omitir):" -msgid "Saturday" -msgstr "Sábado" +#: TimeTrackerCLI.py:278 +msgid "Add to 'Today' list? (y/n, default n): " +msgstr "¿Agregar a la lista 'Hoy'? (sí/no, n predeterminado):" -msgid "Sunday" -msgstr "Domingo" +#: TimeTrackerCLI.py:280 +msgid "Note (Markdown supported): " +msgstr "Nota (se admite Markdown):" -msgid "Daily Breakdown" -msgstr "Desglose diario" +#: TimeTrackerCLI.py:283 +#, python-brace-format +msgid "Task '{task_name}' added." +msgstr "Se agregó la tarea '{task_name}'." -msgid "Duration" -msgstr "Duración" +#: TimeTrackerCLI.py:290 +msgid "" +"\n" +"--- List Tasks ---" +msgstr "" +"\n" +"--- Listar tareas ---" -msgid "# Detailed Report for Main Project: {name}" -msgstr "# Informe Detallado del Proyecto Principal: {name}" +#: TimeTrackerCLI.py:293 +msgid "No main projects found. Cannot list tasks." +msgstr "" +"No se encontraron proyectos principales. No se pueden enumerar tareas." -msgid "Number of sub-projects" -msgstr "Número de subproyectos" +#: TimeTrackerCLI.py:296 +msgid "Select the main project whose tasks you want to list:" +msgstr "Seleccione el proyecto principal cuyas tareas desea enumerar:" -#: TimeTrackerCLI.py:21 -msgid "\n--- Project Management ---" -msgstr "\n--- Gestión de Proyectos ---" +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1307 +#, python-brace-format +msgid "Tasks for '{name}':" +msgstr "Tareas para '{name}':" -#: TimeTrackerCLI.py:22 -msgid "1. Add Main Project" -msgstr "1. Añadir Proyecto Principal" +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:524 sl/SL_Menu.py:612 +msgid "Due" +msgstr "Vencimiento" -#: TimeTrackerCLI.py:24 -msgid "2. List Main Projects" -msgstr "2. Listar Proyectos Principales" +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:409 sl/SL_Menu.py:419 sl/SL_Menu.py:484 +#: sl/SL_Menu.py:546 sl/SL_Menu.py:747 sl/SL_Menu.py:1603 sl/SL_Menu.py:1771 +msgid "Today" +msgstr "hoy" -#: TimeTrackerCLI.py:24 -msgid "3. Rename Main Project" -msgstr "3. Renombrar Proyecto Principal" +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:2276 +#, python-brace-format +msgid "No tasks found for '{name}'." +msgstr "No se encontraron tareas para '{name}'." -#: TimeTrackerCLI.py:25 -msgid "4. Delete Main Project" -msgstr "4. Eliminar Proyecto Principal" +#: TimeTrackerCLI.py:322 +msgid "" +"\n" +"--- Rename Task ---" +msgstr "" +"\n" +"--- Cambiar nombre de tarea ---" -#: TimeTrackerCLI.py:26 -msgid "5. List Inactive Main Projects" -msgstr "5. Listar Proyectos Principales Inactivos" +#: TimeTrackerCLI.py:325 TimeTrackerCLI.py:362 TimeTrackerCLI.py:397 +#: TimeTrackerCLI.py:432 TimeTrackerCLI.py:560 +msgid "No open main projects found." +msgstr "No se encontraron proyectos principales abiertos." -#: TimeTrackerCLI.py:27 -msgid "6. Demote Main-Project to Sub-Project" -msgstr "6. Degradar Proyecto Principal a Subproyecto" +#: TimeTrackerCLI.py:328 TimeTrackerCLI.py:365 TimeTrackerCLI.py:400 +#: TimeTrackerCLI.py:435 TimeTrackerCLI.py:599 TimeTrackerCLI.py:852 +msgid "Select the main project:" +msgstr "Seleccione el proyecto principal:" -#: TimeTrackerCLI.py:29 -msgid "7. Add Sub-Project" -msgstr "7. Añadir Subproyecto" +#: TimeTrackerCLI.py:338 +#, python-brace-format +msgid "No tasks to rename for '{name}'." +msgstr "No hay tareas para cambiar el nombre de '{name}'." -#: TimeTrackerCLI.py:30 -msgid "8. List Sub-Projects" -msgstr "8. Listar Subproyectos" +#: TimeTrackerCLI.py:341 +#, python-brace-format +msgid "Select a task from '{name}' to rename:" +msgstr "Seleccione una tarea de '{name}' para cambiarle el nombre:" -#: TimeTrackerCLI.py:31 -#: TimeTrackerCLI.py:32 -msgid "9. Rename Sub-Project" -msgstr "9. Renombrar Subproyecto" +#: TimeTrackerCLI.py:345 TimeTrackerCLI.py:382 TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:453 TimeTrackerCLI.py:489 TimeTrackerCLI.py:580 +#: TimeTrackerCLI.py:867 TimeTrackerCLI.py:982 +msgid "Enter the number of the task: " +msgstr "Ingrese el número de la tarea:" -msgid "10. Close Sub-Project" -msgstr "10. Cerrar Subproyecto" +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1358 +#, python-brace-format +msgid "Task '{old_name}' renamed to '{new_name}'." +msgstr "Tarea '{old_name}' renombrada a '{new_name}'." -msgid "11. Re-open Sub-Project" -msgstr "11. Reabrir Subproyecto" +#: TimeTrackerCLI.py:354 +msgid "" +"Error: Could not rename. The new name might already exist or the project was" +" not found." +msgstr "" +"Error: No se pudo renombrar. El nuevo nombre ya podría existir o el proyecto" +" no fue encontrado." -msgid "12. Delete Sub-Project" -msgstr "12. Eliminar Subproyecto" +#: TimeTrackerCLI.py:359 +msgid "" +"\n" +"--- Close Task ---" +msgstr "" +"\n" +"--- Cerrar tarea ---" -msgid "13. Move Sub-Project" -msgstr "13. Mover Subproyecto" +#: TimeTrackerCLI.py:375 +#, python-brace-format +msgid "No open tasks to close for '{name}'." +msgstr "No hay tareas abiertas para cerrar para '{name}'." + +#: TimeTrackerCLI.py:378 +#, python-brace-format +msgid "Select a task from '{name}' to close:" +msgstr "Seleccione una tarea de '{name}' para cerrar:" + +#: TimeTrackerCLI.py:387 +#, python-brace-format +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:945 sl/SL_Menu.py:990 sl/SL_Menu.py:1036 +msgid "Error: Main project or task not found." +msgstr "Error: Proyecto principal o tarea no encontrada." + +#: TimeTrackerCLI.py:394 +msgid "" +"\n" +"--- Re-open Task ---" +msgstr "" +"\n" +"--- Reabrir tarea ---" -msgid "14. List Inactive Sub-Projects" -msgstr "14. Listar Subproyectos Inactivos" +#: TimeTrackerCLI.py:410 +#, python-brace-format +msgid "No closed tasks to reopen for '{name}'." +msgstr "No hay tareas cerradas para reabrir para '{name}'." -msgid "15. List All Closed Sub-Projects" -msgstr "15. Listar Todos los Subproyectos Cerrados" +#: TimeTrackerCLI.py:413 +#, python-brace-format +msgid "Select a task from '{name}' to reopen:" +msgstr "Seleccione una tarea de '{name}' para reabrir:" -msgid "16. Delete All Closed Sub-Projects" -msgstr "16. Eliminar Todos los Subproyectos Cerrados" +#: TimeTrackerCLI.py:422 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been reopened." +msgstr "La tarea '{task_name}' en '{main_name}' se ha reabierto." -msgid "17. Promote Sub-Project to Main-Project" -msgstr "17. Promover Subproyecto a Proyecto Principal" +#: TimeTrackerCLI.py:429 +msgid "" +"\n" +"--- Delete Task ---" +msgstr "" +"\n" +"--- Eliminar tarea ---" -#: TimeTrackerCLI.py:37 TimeTrackerCLI.py:403 TimeTrackerCLI.py:461 TimeTrackerCLI.py:539 -msgid "0. Back to Main Menu" -msgstr "0. Volver al Menú Principal" +#: TimeTrackerCLI.py:446 +#, python-brace-format +msgid "No tasks to delete for '{name}'." +msgstr "No hay tareas para eliminar para '{name}'." -#: TimeTrackerCLI.py:40 TimeTrackerCLI.py:406 TimeTrackerCLI.py:464 TimeTrackerCLI.py:595 -msgid "Choice: " -msgstr "Elección: " +#: TimeTrackerCLI.py:449 +#, python-brace-format +msgid "Select a task from '{name}' to delete:" +msgstr "Seleccione una tarea de '{name}' para eliminar:" -#: TimeTrackerCLI.py:44 -msgid "\n--- Add New Main Project ---" -msgstr "\n--- Añadir Nuevo Proyecto Principal ---" +#: TimeTrackerCLI.py:458 +#, python-brace-format +msgid "Task '{task_name}' deleted from '{main_name}'." +msgstr "Tarea '{task_name}' eliminada de '{main_name}'." -#: TimeTrackerCLI.py:45 -msgid "Name of the main project: " -msgstr "Nombre del proyecto principal: " +#: TimeTrackerCLI.py:466 +msgid "" +"\n" +"--- Move Task ---" +msgstr "" +"\n" +"--- Mover tarea ---" -#: TimeTrackerCLI.py:48 -msgid "Main project '{name}' added." -msgstr "Proyecto principal '{name}' añadido." +#: TimeTrackerCLI.py:469 +msgid "You need at least two open main projects to move a task." +msgstr "" +"Necesita al menos dos proyectos principales abiertos para mover una tarea." -#: TimeTrackerCLI.py:50 TimeTrackerCLI.py:55 -msgid "\n--- List Main Projects ---" -msgstr "\n--- Listar Proyectos Principales ---" +#: TimeTrackerCLI.py:474 +msgid "Select the source main project:" +msgstr "Seleccione el proyecto principal de origen:" -#: TimeTrackerCLI.py:55 TimeTrackerCLI.py:166 TimeTrackerCLI.py:288 TimeTrackerCLI.py:479 -msgid "No main projects found." -msgstr "No se encontraron proyectos principales." +#: TimeTrackerCLI.py:477 +msgid "Enter the number of the source main project: " +msgstr "Introduzca el número del proyecto principal de origen: " -#: TimeTrackerCLI.py:58 -msgid "\n--- Rename Main Project ---" -msgstr "\n--- Renombrar Proyecto Principal ---" +#: TimeTrackerCLI.py:483 +#, python-brace-format +msgid "No tasks to move from '{name}'." +msgstr "No hay tareas para mover desde '{name}'." -#: TimeTrackerCLI.py:61 -msgid "No main projects to rename." -msgstr "No hay proyectos principales para renombrar." +#: TimeTrackerCLI.py:486 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to move:" +msgstr "" +"\n" +"Seleccione una tarea de '{name}' para mover:" -#: TimeTrackerCLI.py:64 -msgid "Select a main project to rename:" -msgstr "Seleccione un proyecto principal para renombrar:" +#: TimeTrackerCLI.py:494 +msgid "" +"\n" +"Select the destination main project:" +msgstr "" +"\n" +"Seleccione el proyecto principal de destino:" -#: TimeTrackerCLI.py:68 -msgid "Enter the number of the main project: " -msgstr "Introduzca el número del proyecto principal: " +#: TimeTrackerCLI.py:499 +msgid "Enter the number of the destination main project: " +msgstr "Introduzca el número del proyecto principal de destino: " -#: TimeTrackerCLI.py:71 -msgid "Enter the new name for '{name}': " -msgstr "Introduzca el nuevo nombre para '{name}': " +#: TimeTrackerCLI.py:505 +#, python-brace-format +msgid "" +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." +msgstr "" +"Se movió correctamente '{task_name}' de '{source_main_project}' a " +"'{dest_main_project}'." -#: TimeTrackerCLI.py:74 -msgid "Main project '{old_name}' successfully renamed to '{new_name}'." -msgstr "Proyecto principal '{old_name}' renombrado a '{new_name}' con éxito." +#: TimeTrackerCLI.py:507 +#, python-brace-format +msgid "Error: {message}" +msgstr "Error: {message}" -#: TimeTrackerCLI.py:76 -msgid "Error: Could not rename. The new name '{new_name}' might already exist." -msgstr "Error: No se pudo renombrar. El nuevo nombre '{new_name}' ya podría existir." +#: TimeTrackerCLI.py:514 +msgid "" +"\n" +"--- List Inactive Tasks ---" +msgstr "" +"\n" +"--- Listar tareas inactivas ---" -#: TimeTrackerCLI.py:78 TimeTrackerCLI.py:98 TimeTrackerCLI.py:120 TimeTrackerCLI.py:139 TimeTrackerCLI.py:160 TimeTrackerCLI.py:194 TimeTrackerCLI.py:222 TimeTrackerCLI.py:247 TimeTrackerCLI.py:284 TimeTrackerCLI.py:311 TimeTrackerCLI.py:342 TimeTrackerCLI.py:387 TimeTrackerCLI.py:431 TimeTrackerCLI.py:456 TimeTrackerCLI.py:532 -msgid "Invalid input. Please enter a valid number." -msgstr "Entrada inválida. Por favor, introduzca un número válido." +#: TimeTrackerCLI.py:516 +msgid "Enter the number of weeks without activity (e.g., 4): " +msgstr "Introduzca el número de semanas sin actividad (ej: 4): " -#: TimeTrackerCLI.py:81 -msgid "\n--- Delete Main Project ---" -msgstr "\n--- Eliminar Proyecto Principal ---" +#: TimeTrackerCLI.py:524 +#, python-brace-format +msgid "" +"\n" +"Inactive Tasks (>{weeks} weeks):" +msgstr "" +"\n" +"Tareas inactivas (>{weeks}semanas):" -#: TimeTrackerCLI.py:84 -msgid "No main projects to delete." -msgstr "No hay proyectos principales para eliminar." +#: TimeTrackerCLI.py:527 +#, python-brace-format +msgid " Task: {name}" +msgstr "Tarea:{name}" -#: TimeTrackerCLI.py:87 -msgid "Select a main project to delete:" -msgstr "Seleccione un proyecto principal para eliminar:" +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1118 +#, 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." -#: TimeTrackerCLI.py:93 -msgid "Main project '{name}' deleted." -msgstr "Proyecto principal '{name}' eliminado." +#: TimeTrackerCLI.py:537 +msgid "" +"\n" +"--- List All Closed Tasks ---" +msgstr "" +"\n" +"--- Listar todas las tareas cerradas ---" -#: TimeTrackerCLI.py:95 -msgid "Error: Main project '{name}' not found." -msgstr "Error: Proyecto principal '{name}' no encontrado." +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1143 sl/SL_Menu.py:1166 +msgid "No closed tasks found." +msgstr "No se encontraron tareas cerradas." -#: TimeTrackerCLI.py:101 -msgid "\n--- List Inactive Main-Projects ---" -msgstr "\n--- Listar Proyectos Principales Inactivos ---" +#: TimeTrackerCLI.py:547 +msgid "" +"\n" +"--- Delete All Closed Tasks ---" +msgstr "" +"\n" +"--- Eliminar todas las tareas cerradas ---" -#: TimeTrackerCLI.py:103 -msgid "Enter the number of weeks without activity (e.g., 8): " -msgstr "Introduzca el número de semanas sin actividad (ej: 8): " +#: TimeTrackerCLI.py:548 +msgid "Are you sure you want to delete ALL closed tasks? (y/n): " +msgstr "¿Está seguro de que desea eliminar TODAS las tareas cerradas? (t/n):" -#: TimeTrackerCLI.py:105 -msgid "Please enter a positive number." -msgstr "Por favor, introduzca un número positivo." +#: TimeTrackerCLI.py:551 +#, python-brace-format +msgid "{count} closed tasks were deleted." +msgstr "Se eliminaron{count}tareas cerradas." -#: TimeTrackerCLI.py:110 -msgid "\nInactive Main-Projects (>{weeks} weeks):" -msgstr "\nProyectos Principales Inactivos (>{weeks} semanas):" +#: TimeTrackerCLI.py:553 +msgid "Operation cancelled." +msgstr "Operación cancelada." -#: TimeTrackerCLI.py:112 -msgid " - Main Project: {name}" -msgstr " - Proyecto Principal: {name}" +#: TimeTrackerCLI.py:557 +msgid "" +"\n" +"--- Promote Task to Main-Project ---" +msgstr "" +"\n" +"--- Promocionar tarea a proyecto principal ---" -#: TimeTrackerCLI.py:113 -msgid " Last Activity: {date}" -msgstr " Última Actividad: {date}" +#: TimeTrackerCLI.py:565 +msgid "Select the main project containing the task to promote:" +msgstr "Seleccione el proyecto principal que contiene la tarea a promover:" -#: TimeTrackerCLI.py:116 -msgid "No main-projects found inactive for more than {weeks} week." -msgid_plural "No main-projects found inactive for more than {weeks} weeks." -msgstr[0] "No se encontró ningún proyecto principal inactivo por más de {weeks} semana." -msgstr[1] "No se encontraron proyectos principales inactivos por más de {weeks} semanas." +#: TimeTrackerCLI.py:574 +#, python-brace-format +msgid "No tasks to promote in '{name}'." +msgstr "No hay tareas para promover en '{name}'." -#: TimeTrackerCLI.py:119 -msgid "Invalid input. Please enter a valid number for weeks." -msgstr "Entrada inválida. Por favor, introduzca un número válido para las semanas." +#: TimeTrackerCLI.py:577 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to promote:" +msgstr "" +"\n" +"Seleccione una tarea de '{name}' para promover:" -#: TimeTrackerCLI.py:122 -msgid "\n--- Add New Sub-Project ---" -msgstr "\n--- Añadir Nuevo Subproyecto ---" +#: TimeTrackerCLI.py:593 +msgid "" +"\n" +"--- Edit Task ---" +msgstr "" +"\n" +"--- Editar tarea ---" + +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:913 sl/SL_Menu.py:958 +#: sl/SL_Menu.py:1003 sl/SL_Menu.py:1049 sl/SL_Menu.py:1198 sl/SL_Menu.py:1328 +#: sl/SL_Menu.py:1487 sl/SL_Menu.py:1677 +msgid "No open projects found." +msgstr "No se encontraron proyectos abiertos." + +#: TimeTrackerCLI.py:609 +#, python-brace-format +msgid "No open tasks in '{name}'." +msgstr "No hay tareas abiertas en '{name}'." + +#: TimeTrackerCLI.py:612 +msgid "Select a task to edit:" +msgstr "Seleccione una tarea para editar:" + +#: TimeTrackerCLI.py:616 +msgid "Enter the number: " +msgstr "Ingrese el número:" + +#: TimeTrackerCLI.py:623 +#, python-brace-format +msgid "New name (press Enter to keep '{name}'): " +msgstr "Nuevo nombre (presione Enter para conservar '{name}'):" + +#: TimeTrackerCLI.py:624 +#, python-brace-format +msgid "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " +msgstr "" +"Nueva fecha de vencimiento (AAAA-MM-DD, actual: '{due}', ingrese '-' para " +"borrar):" -#: TimeTrackerCLI.py:125 -msgid "No main projects found. Please add one first." -msgstr "No se encontraron proyectos principales. Por favor, añada uno primero." +#: TimeTrackerCLI.py:627 +#, python-brace-format +msgid "Is this for today? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"¿Es esto para hoy? (actual:{current}, y/n, presione Enter para mantener):" -#: TimeTrackerCLI.py:128 -msgid "Select a main project to add a sub-project to:" -msgstr "Seleccione un proyecto principal para añadirle un subproyecto:" +#: TimeTrackerCLI.py:630 +#, python-brace-format +msgid "Current Note: {note}" +msgstr "Nota actual:{note}" -#: TimeTrackerCLI.py:135 -msgid "Name of the new sub-project: " -msgstr "Nombre del nuevo subproyecto: " +#: TimeTrackerCLI.py:631 +msgid "New note (press Enter to keep current): " +msgstr "Nueva nota (presione Enter para mantener actual):" -#: TimeTrackerCLI.py:137 -msgid "Sub-project '{sub_name}' added to '{main_name}'." -msgstr "Subproyecto '{sub_name}' añadido a '{main_name}'." +#: TimeTrackerCLI.py:635 +#, python-brace-format +msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"¿Se completó esta tarea? (actual:{current}, y/n, presione Entrar para " +"mantener):" -#: TimeTrackerCLI.py:142 -msgid "\n--- List Sub-Projects ---" -msgstr "\n--- Listar Subproyectos ---" +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:1834 +msgid "Task updated successfully." +msgstr "Tarea actualizada exitosamente." -#: TimeTrackerCLI.py:145 -msgid "No main projects found. Cannot list sub-projects." -msgstr "No se encontraron proyectos principales. No se pueden listar los subproyectos." +#: TimeTrackerCLI.py:641 +msgid "Error updating task." +msgstr "Error al actualizar la tarea." -#: TimeTrackerCLI.py:148 -msgid "Select the main project whose sub-projects you want to list:" -msgstr "Seleccione el proyecto principal cuyos subproyectos desea listar:" +#: TimeTrackerCLI.py:643 +msgid "Invalid input." +msgstr "Entrada no válida." -#: TimeTrackerCLI.py:156 -msgid "Sub-projects for '{name}':" -msgstr "Subproyectos para '{name}':" +#: TimeTrackerCLI.py:648 +msgid "Invalid choice. Please enter a number from 0 to 11." +msgstr "Elección no válida. Ingrese un número del 0 al 11." -#: TimeTrackerCLI.py:159 TimeTrackerCLI.py:262 TimeTrackerCLI.py:489 -msgid "No sub-projects found for '{name}'." -msgstr "No se encontraron subproyectos para '{name}'." +#: TimeTrackerCLI.py:653 +msgid "" +"\n" +"--- Settings ---" +msgstr "" +"\n" +"--- Configuración ---" -#: TimeTrackerCLI.py:163 -msgid "\n--- Rename Sub-Project ---" -msgstr "\n--- Renombrar Subproyecto ---" +#: TimeTrackerCLI.py:654 sl/SL_Menu.py:870 +msgid "1. Change Language" +msgstr "1. Cambiar Idioma" -#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:201 TimeTrackerCLI.py:414 TimeTrackerCLI.py:437 TimeTrackerCLI.py:482 -msgid "Select the main project:" -msgstr "Seleccione el proyecto principal:" +#: TimeTrackerCLI.py:655 sl/SL_Menu.py:871 +msgid "2. Restore Previous Version" +msgstr "2. Restaurar Versión Anterior" -#: TimeTrackerCLI.py:177 -msgid "No sub-projects to rename for '{name}'." -msgstr "No hay subproyectos para renombrar en '{name}'." +#: TimeTrackerCLI.py:656 sl/SL_Menu.py:872 +msgid "3. Change Data Storage Location" +msgstr "3. Cambiar Ubicación de Almacenamiento de Datos" -#: TimeTrackerCLI.py:180 -msgid "Select a sub-project from '{name}' to rename:" -msgstr "Seleccione un subproyecto de '{name}' para renombrar:" +#: TimeTrackerCLI.py:657 sl/SL_Menu.py:874 +msgid "4. Change Streamlit Port" +msgstr "4. Cambiar puerto de Streamlit" -#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:214 TimeTrackerCLI.py:267 TimeTrackerCLI.py:307 TimeTrackerCLI.py:499 -msgid "Enter the number of the sub-project: " -msgstr "Introduzca el número del subproyecto: " +#: TimeTrackerCLI.py:659 TimeTrackerCLI.py:698 TimeTrackerCLI.py:808 +#: sl/SL_Menu.py:881 +msgid "0. Back to Main Menu" +msgstr "0. Volver al menú principal" -#: TimeTrackerCLI.py:190 -msgid "Sub-project '{old_name}' renamed to '{new_name}'." -msgstr "Subproyecto '{old_name}' renombrado a '{new_name}'." +#: TimeTrackerCLI.py:682 +msgid "Invalid choice. Please enter a number from 0 to 4." +msgstr "Elección no válida. Por favor ingrese un número del 0 al 4." -#: TimeTrackerCLI.py:192 +#: TimeTrackerCLI.py:687 msgid "" -"Error: Could not rename. The new name might already exist or the project " -"was not found." -msgstr "Error: No se pudo renombrar. El nuevo nombre ya podría existir o el proyecto no fue encontrado." - -#: TimeTrackerCLI.py:195 -msgid "\n--- Delete Sub-Project ---" -msgstr "\n--- Eliminar Subproyecto ---" +"\n" +"--- Language Settings ---" +msgstr "" +"\n" +"--- Configuración de Idioma ---" -#: TimeTrackerCLI.py:207 -msgid "No sub-projects to delete for '{name}'." -msgstr "No hay subproyectos para eliminar en '{name}'." +#: TimeTrackerCLI.py:692 +msgid "No additional languages found." +msgstr "No se encontraron idiomas adicionales." -#: TimeTrackerCLI.py:210 -msgid "Select a sub-project from '{name}' to delete:" -msgstr "Seleccione un subproyecto de '{name}' para eliminar:" +#: TimeTrackerCLI.py:716 +#, python-brace-format +msgid "Language changed to '{lang}'. Please restart the application." +msgstr "Idioma cambiado a '{lang}'. Por favor, reinicie la aplicación." -#: TimeTrackerCLI.py:217 -msgid "Sub-project '{sub_name}' deleted from '{main_name}'." -msgstr "Subproyecto '{sub_name}' eliminado de '{main_name}'." +#: TimeTrackerCLI.py:719 +msgid "Invalid choice." +msgstr "Elección inválida." -msgid "\n--- List All Closed Sub-Projects ---" -msgstr "\n--- Listar Todos los Subproyectos Cerrados ---" +#: TimeTrackerCLI.py:721 +msgid "Invalid input. Please enter a number." +msgstr "Entrada inválida. Por favor, introduzca un número." -msgid "No closed sub-projects found." -msgstr "No se encontraron subproyectos cerrados." +#: TimeTrackerCLI.py:725 +msgid "" +"\n" +"--- Data Storage Settings ---" +msgstr "" +"\n" +"--- Configuración de Almacenamiento de Datos ---" -msgid "\n--- Delete All Closed Sub-Projects ---" -msgstr "\n--- Eliminar Todos los Subproyectos Cerrados ---" +#: TimeTrackerCLI.py:726 +#, python-brace-format +msgid "Current data file: {path}" +msgstr "Archivo de datos actual: {path}" -msgid "Are you sure you want to delete ALL closed sub-projects? (y/n): " -msgstr "¿Está seguro de que desea eliminar TODOS los subproyectos cerrados? (s/n): " +#: TimeTrackerCLI.py:728 +msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." +msgstr "" +"Introduzca la nueva ruta para el archivo de datos (ej: " +"/ruta/a/mis_datos.json)." -msgid "{count} closed sub-projects were deleted." -msgstr "Se eliminaron {count} subproyectos cerrados." +#: TimeTrackerCLI.py:729 +msgid "Leave empty to cancel." +msgstr "Dejar vacío para cancelar." -msgid "Operation cancelled." -msgstr "Operación cancelada." +#: TimeTrackerCLI.py:730 +msgid "New Path: " +msgstr "Nueva Ruta: " -#: TimeTrackerCLI.py:219 TimeTrackerCLI.py:281 -msgid "Error: Main project or sub-project not found." -msgstr "Error: Proyecto principal o subproyecto no encontrado." +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1974 +#, python-brace-format +msgid "Error: The directory '{dir}' does not exist." +msgstr "Error: El directorio '{dir}' no existe." -#: TimeTrackerCLI.py:226 -msgid "\n--- List Inactive Sub-Projects ---" -msgstr "\n--- Listar Subproyectos Inactivos ---" +#: TimeTrackerCLI.py:752 +msgid "Storage location updated." +msgstr "Ubicación de almacenamiento actualizada." -#: TimeTrackerCLI.py:228 -msgid "Enter the number of weeks without activity (e.g., 4): " -msgstr "Introduzca el número de semanas sin actividad (ej: 4): " +#: TimeTrackerCLI.py:756 +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:235 -msgid "\nInactive Sub-Projects (>{weeks} weeks):" -msgstr "\nSubproyectos Inactivos (>{weeks} semanas):" +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1985 +msgid "Data moved successfully." +msgstr "Datos movidos con éxito." -#: TimeTrackerCLI.py:238 -msgid " Sub-Project: {name}" -msgstr " Subproyecto: {name}" +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1987 +#, python-brace-format +msgid "Error moving data: {error}" +msgstr "Error al mover datos: {error}" -#: TimeTrackerCLI.py:241 -msgid "No sub-projects found inactive for more than {weeks} week." -msgid_plural "No sub-projects found inactive for more than {weeks} weeks." -msgstr[0] "No se encontró ningún subproyecto inactivo por más de {weeks} semana." -msgstr[1] "No se encontraron subproyectos inactivos por más de {weeks} semanas." +#: TimeTrackerCLI.py:764 tt/TimeTracker.py:117 +msgid "Please restart the application for the changes to take effect." +msgstr "Por favor, reinicie la aplicación para que los cambios surtan efecto." -#: TimeTrackerCLI.py:248 -msgid "\n--- Move Sub-Project ---" -msgstr "\n--- Mover Subproyecto ---" +#: TimeTrackerCLI.py:767 +#, python-brace-format +msgid "Error updating configuration: {error}" +msgstr "Error al actualizar la configuración: {error}" -#: TimeTrackerCLI.py:250 -msgid "You need at least two main projects to move a sub-project." -msgstr "Necesita al menos dos proyectos principales para mover un subproyecto." +#: TimeTrackerCLI.py:771 +msgid "" +"\n" +"--- Streamlit Port Settings ---" +msgstr "" +"\n" +"--- Configuración del puerto Streamlit ---" -#: TimeTrackerCLI.py:254 -msgid "Select the source main project:" -msgstr "Seleccione el proyecto principal de origen:" +#: TimeTrackerCLI.py:781 +#, python-brace-format +msgid "Current Streamlit Port: {port}" +msgstr "Puerto actual de Streamlit: {port}" -#: TimeTrackerCLI.py:257 -msgid "Enter the number of the source main project: " -msgstr "Introduzca el número del proyecto principal de origen: " +#: TimeTrackerCLI.py:783 +msgid "Enter new port (or press Enter to keep current): " +msgstr "Ingrese el nuevo puerto (o presione Enter para mantener el actual): " -#: TimeTrackerCLI.py:265 -msgid "\nSelect a sub-project from '{name}' to move:" -msgstr "\nSeleccione un subproyecto de '{name}' para mover:" +#: TimeTrackerCLI.py:792 +#, python-brace-format +msgid "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." +msgstr "" +"Puerto actualizado a {port}. Reinicie Streamlit para que los cambios surtan " +"efecto." -#: TimeTrackerCLI.py:269 -msgid "\nSelect the destination main project:" -msgstr "\nSeleccione el proyecto principal de destino:" +#: TimeTrackerCLI.py:800 +msgid "" +"\n" +"--- Reporting ---" +msgstr "" +"\n" +"--- Informes ---" -#: TimeTrackerCLI.py:274 -msgid "Enter the number of the destination main project: " -msgstr "Introduzca el número del proyecto principal de destino: " - -#: TimeTrackerCLI.py:279 -msgid "Successfully moved '{sub_name}' from '{source_name}' to '{dest_name}'." -msgstr "Se ha movido '{sub_name}' de '{source_name}' a '{dest_name}' con éxito." - -msgid "Error: {message}" -msgstr "Error: {message}" - -#: TimeTrackerCLI.py:286 -msgid "\n--- Promote Sub-Project to Main-Project ---" -msgstr "\n--- Promover Subproyecto a Proyecto Principal ---" - -#: TimeTrackerCLI.py:293 -msgid "Select the main project containing the sub-project to promote:" -msgstr "Seleccione el proyecto principal que contiene el subproyecto a promover:" - -#: TimeTrackerCLI.py:301 -msgid "No sub-projects to promote in '{name}'." -msgstr "No hay subproyectos para promover en '{name}'." - -#: TimeTrackerCLI.py:304 -msgid "\nSelect a sub-project from '{name}' to promote:" -msgstr "\nSeleccione un subproyecto de '{name}' para promover:" - -#: TimeTrackerCLI.py:315 -msgid "\n--- Demote Main-Project to Sub-Project ---" -msgstr "\n--- Degradar Proyecto Principal a Subproyecto ---" - -#: TimeTrackerCLI.py:318 TimeTrackerCLI.py:322 -msgid "You need at least two main projects for this operation." -msgstr "Necesita al menos dos proyectos principales para esta operación." - -msgid "Select the main project to demote:" -msgstr "Seleccione el proyecto principal a degradar:" - -#: TimeTrackerCLI.py:325 -msgid "Enter the number of the project to demote: " -msgstr "Introduzca el número del proyecto a degradar: " - -#: TimeTrackerCLI.py:328 -msgid "\nSelect the new parent main project:" -msgstr "\nSeleccione el nuevo proyecto principal padre:" - -#: TimeTrackerCLI.py:333 -msgid "Enter the number of the new parent project: " -msgstr "Introduzca el número del nuevo proyecto padre: " - -msgid "Invalid choice. Please enter a number from 0 to 17." -msgstr "Elección inválida. Por favor, introduzca un número del 0 al 17." - -#: TimeTrackerCLI.py:348 -msgid "\n--- Reporting ---" -msgstr "\n--- Informes ---" - -#: TimeTrackerCLI.py:349 +#: TimeTrackerCLI.py:801 msgid "1. Daily Report (Today)" msgstr "1. Informe Diario (Hoy)" -#: TimeTrackerCLI.py:350 +#: TimeTrackerCLI.py:802 msgid "2. Daily Report (Specific Day)" msgstr "2. Informe Diario (Día Específico)" -#: TimeTrackerCLI.py:351 +#: TimeTrackerCLI.py:803 msgid "3. Date Range Report" msgstr "3. Informe por Rango de Fechas" -#: TimeTrackerCLI.py:352 -msgid "4. Detailed Sub-Project Report" -msgstr "4. Informe Detallado de Subproyecto" +#: TimeTrackerCLI.py:804 +msgid "4. Detailed Task Report" +msgstr "4. Informe detallado de tareas" -#: TimeTrackerCLI.py:353 +#: TimeTrackerCLI.py:805 msgid "5. Detailed Main-Project Report" msgstr "5. Informe Detallado de Proyecto Principal" -#: TimeTrackerCLI.py:359 -msgid "\n--- Generate Daily Report (Today) ---" -msgstr "\n--- Generar Informe Diario (Hoy) ---" +#: TimeTrackerCLI.py:806 +msgid "6. Detailed Daily Report" +msgstr "6. Informe Diario Detallado" + +#: TimeTrackerCLI.py:815 +msgid "" +"\n" +"--- Generate Daily Report (Today) ---" +msgstr "" +"\n" +"--- Generar Informe Diario (Hoy) ---" -#: TimeTrackerCLI.py:363 -msgid "\n--- Generate Daily Report for a specific Day ---" -msgstr "\n--- Generar Informe Diario para un Día Específico ---" +#: TimeTrackerCLI.py:820 +msgid "" +"\n" +"--- Generate Daily Report for a specific Day ---" +msgstr "" +"\n" +"--- Generar Informe Diario para un Día Específico ---" -#: TimeTrackerCLI.py:364 +#: TimeTrackerCLI.py:821 msgid "Enter the date (YYYY-MM-DD): " msgstr "Introduzca la fecha (AAAA-MM-DD): " -#: TimeTrackerCLI.py:369 +#: TimeTrackerCLI.py:827 TimeTrackerCLI.py:842 TimeTrackerCLI.py:903 msgid "Invalid date format. Please use YYYY-MM-DD." msgstr "Formato de fecha inválido. Por favor, use AAAA-MM-DD." -#: TimeTrackerCLI.py:371 TimeTrackerCLI.py:373 -msgid "\n--- Generate Report for a Date Range ---" -msgstr "\n--- Generar Informe por Rango de Fechas ---" +#: TimeTrackerCLI.py:830 +msgid "" +"\n" +"--- Generate Report for a Date Range ---" +msgstr "" +"\n" +"--- Generar Informe por Rango de Fechas ---" +#: TimeTrackerCLI.py:831 msgid "Enter the start date (YYYY-MM-DD): " msgstr "Introduzca la fecha de inicio (AAAA-MM-DD): " -#: TimeTrackerCLI.py:375 +#: TimeTrackerCLI.py:832 msgid "Enter the end date (YYYY-MM-DD): " msgstr "Introduzca la fecha de fin (AAAA-MM-DD): " -#: TimeTrackerCLI.py:377 +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2227 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." -#: TimeTrackerCLI.py:382 -msgid "\n--- Detailed Sub-Project Report ---" -msgstr "\n--- Informe Detallado de Subproyecto ---" +#: TimeTrackerCLI.py:844 +msgid "" +"\n" +"--- Detailed Task Report ---" +msgstr "" +"\n" +"--- Informe de tarea detallado ---" -#: TimeTrackerCLI.py:384 TimeTrackerCLI.py:407 +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1249 +#: sl/SL_Menu.py:1296 sl/SL_Menu.py:1435 sl/SL_Menu.py:2245 sl/SL_Menu.py:2304 msgid "No projects found." msgstr "No se encontraron proyectos." -#: TimeTrackerCLI.py:397 -msgid "\nSelect the sub-project for the report:" -msgstr "\nSeleccione el subproyecto para el informe:" +#: TimeTrackerCLI.py:864 +msgid "" +"\n" +"Select the task for the report:" +msgstr "" +"\n" +"Seleccione la tarea para el informe:" -#: TimeTrackerCLI.py:405 -msgid "\n--- Detailed Main-Project Report ---" -msgstr "\n--- Informe Detallado del Proyecto Principal ---" +#: TimeTrackerCLI.py:877 +msgid "" +"\n" +"--- Detailed Main-Project Report ---" +msgstr "" +"\n" +"--- Informe Detallado del Proyecto Principal ---" -#: TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:885 msgid "Select the main project for the report:" msgstr "Seleccione el proyecto principal para el informe:" -#: TimeTrackerCLI.py:424 -msgid "Invalid choice. Please enter a number from 0 to 5." -msgstr "Elección inválida. Por favor, introduzca un número del 0 al 5." - -#: TimeTrackerCLI.py:428 TimeTrackerCLI.py:469 -msgid "\n--- Settings ---" -msgstr "\n--- Configuración ---" - -#: TimeTrackerCLI.py:429 TimeTrackerCLI.py:562 -msgid "1. Change Language" -msgstr "1. Cambiar Idioma" - -#: TimeTrackerCLI.py:430 -msgid "2. Restore Previous Version" -msgstr "2. Restaurar Versión Anterior" - -msgid "3. Change Data Storage Location" -msgstr "3. Cambiar Ubicación de Almacenamiento de Datos" - -msgid "Invalid choice. Please enter a number from 0 to 3." -msgstr "Elección inválida. Por favor, introduzca un número del 0 al 3." - -#: TimeTrackerCLI.py:446 TimeTrackerCLI.py:545 -msgid "\n--- Language Settings ---" -msgstr "\n--- Configuración de Idioma ---" - -#: TimeTrackerCLI.py:449 TimeTrackerCLI.py:548 -msgid "No additional languages found." -msgstr "No se encontraron idiomas adicionales." - -#: TimeTrackerCLI.py:458 TimeTrackerCLI.py:587 -msgid "Language changed to '{lang}'. Please restart the application." -msgstr "Idioma cambiado a '{lang}'. Por favor, reinicie la aplicación." - -#: TimeTrackerCLI.py:460 TimeTrackerCLI.py:590 -msgid "Invalid choice." -msgstr "Elección inválida." - -#: TimeTrackerCLI.py:462 TimeTrackerCLI.py:592 -msgid "Invalid input. Please enter a number." -msgstr "Entrada inválida. Por favor, introduzca un número." - -msgid "\n--- Data Storage Settings ---" -msgstr "\n--- Configuración de Almacenamiento de Datos ---" - -msgid "Current data file: {path}" -msgstr "Archivo de datos actual: {path}" - -msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." -msgstr "Introduzca la nueva ruta para el archivo de datos (ej: /ruta/a/mis_datos.json)." - -msgid "Leave empty to cancel." -msgstr "Dejar vacío para cancelar." - -msgid "New Path: " -msgstr "Nueva Ruta: " - -msgid "Error: The directory '{dir}' does not exist." -msgstr "Error: El directorio '{dir}' no existe." - -msgid "Storage location updated." -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:896 +msgid "" +"\n" +"--- Detailed Daily Report ---" +msgstr "" +"\n" +"--- Informe Diario Detallado ---" -msgid "Data moved successfully." -msgstr "Datos movidos con éxito." +#: TimeTrackerCLI.py:897 +msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " +msgstr "Introduzca la fecha (AAAA-MM-DD) o presione Enter para hoy: " -msgid "Error moving data: {error}" -msgstr "Error al mover datos: {error}" +#: TimeTrackerCLI.py:911 TimeTrackerCLI.py:1042 +msgid "Invalid choice. Please enter a number from 0 to 6." +msgstr "Elección inválida. Por favor, introduzca un número del 0 al 6." -#: TimeTrackerCLI.py:508 -msgid "\n--- Update Available ---" -msgstr "\n--- Actualización Disponible ---" +#: TimeTrackerCLI.py:919 +msgid "" +"\n" +"--- Update Available ---" +msgstr "" +"\n" +"--- Actualización Disponible ---" -#: TimeTrackerCLI.py:509 +#: TimeTrackerCLI.py:920 msgid "A downloaded update is ready to be installed." msgstr "Una actualización descargada está lista para ser instalada." -#: TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:921 msgid "0. Skip update for now" msgstr "0. Omitir actualización por ahora" -#: TimeTrackerCLI.py:511 +#: TimeTrackerCLI.py:922 msgid "1. Install update now" msgstr "1. Instalar actualización ahora" -#: TimeTrackerCLI.py:512 +#: TimeTrackerCLI.py:923 msgid "Enter your choice (0 or 1): " msgstr "Introduzca su elección (0 o 1): " -#: TimeTrackerCLI.py:515 +#: TimeTrackerCLI.py:927 msgid "Application is restarting to complete the update..." msgstr "La aplicación se está reiniciando para completar la actualización..." -#: TimeTrackerCLI.py:518 +#: TimeTrackerCLI.py:931 msgid "Update installation skipped. The application will start normally." -msgstr "Instalación de la actualización omitida. La aplicación se iniciará normalmente." +msgstr "" +"Instalación de la actualización omitida. La aplicación se iniciará " +"normalmente." -#: TimeTrackerCLI.py:520 +#: TimeTrackerCLI.py:933 msgid "" "Invalid choice. Update installation skipped. The application will start " "normally." msgstr "" -"Elección inválida. Instalación de la actualización omitida. La aplicación se " -"iniciará normalmente." +"Elección inválida. Instalación de la actualización omitida. La aplicación se" +" iniciará normalmente." -#: TimeTrackerCLI.py:525 -msgid "\n=== Time Control {version} ===" -msgstr "\n=== Time Control {version} ===" +#: TimeTrackerCLI.py:940 +#, python-brace-format +msgid "" +"\n" +"=== Time Control {version} ===" +msgstr "" +"\n" +"=== Time Control {version} ===" -#: TimeTrackerCLI.py:526 +#: TimeTrackerCLI.py:941 msgid "--- Main Menu ---" msgstr "--- Menú Principal ---" -msgid "1. Start work on sub-project" -msgstr "1. Iniciar trabajo en subproyecto" +#: TimeTrackerCLI.py:942 +msgid "1. Start work on task" +msgstr "1. Comenzar a trabajar en la tarea" -#: TimeTrackerCLI.py:528 +#: TimeTrackerCLI.py:943 msgid "2. Show current work" msgstr "2. Mostrar trabajo actual" -#: TimeTrackerCLI.py:530 +#: TimeTrackerCLI.py:944 msgid "3. Stop current work" msgstr "3. Detener trabajo actual" -#: TimeTrackerCLI.py:531 -msgid "4. Handle projects and sub-projects" -msgstr "4. Gestionar proyectos y subproyectos" +#: TimeTrackerCLI.py:946 +msgid "4. Handle projects and tasks" +msgstr "4. Manejar proyectos y tareas" -#: TimeTrackerCLI.py:532 +#: TimeTrackerCLI.py:947 msgid "5. Reporting" msgstr "5. Informes" -#: TimeTrackerCLI.py:533 +#: TimeTrackerCLI.py:948 msgid "6. Settings" msgstr "6. Configuración" -#: TimeTrackerCLI.py:535 +#: TimeTrackerCLI.py:950 msgid "0. Exit" msgstr "0. Salir" -#: TimeTrackerCLI.py:541 -msgid "\n--- Start Work on a Sub-Project ---" -msgstr "\n--- Iniciar Trabajo en un Subproyecto ---" +#: TimeTrackerCLI.py:957 +msgid "" +"\n" +"--- Start Work on a Task ---" +msgstr "" +"\n" +"--- Comenzar a trabajar en una tarea ---" + +#: TimeTrackerCLI.py:963 +msgid "Select a main project:" +msgstr "Seleccione un proyecto principal:" -#: TimeTrackerCLI.py:498 -msgid "Select a sub-project from '{name}':" -msgstr "Seleccione un subproyecto de '{name}':" +#: TimeTrackerCLI.py:974 +#, python-brace-format +msgid "No open tasks found for '{name}' to start work on." +msgstr "" +"No se encontraron tareas abiertas para '{name}' para comenzar a trabajar." -#: TimeTrackerCLI.py:507 -msgid "Work started on '{sub_name}' in project '{main_name}'." -msgstr "Trabajo iniciado en '{sub_name}' en el proyecto '{main_name}'." +#: TimeTrackerCLI.py:977 +#, python-brace-format +msgid "Select a task from '{name}':" +msgstr "Seleccione una tarea de '{name}':" +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:1884 +#, 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:1888 msgid "Error starting work." msgstr "Error al iniciar el trabajo." -#: TimeTrackerCLI.py:514 -msgid "\n--- Current Active Work ---" -msgstr "\n--- Trabajo Activo Actual ---" +#: TimeTrackerCLI.py:996 +msgid "" +"\n" +"--- Current Active Work ---" +msgstr "" +"\n" +"--- Trabajo Activo Actual ---" -#: TimeTrackerCLI.py:523 +#: TimeTrackerCLI.py:1006 msgid "You are currently working on:" msgstr "Actualmente está trabajando en:" -#: TimeTrackerCLI.py:524 +#: TimeTrackerCLI.py:1007 +#, python-brace-format msgid " Main Project: {name}" msgstr " Proyecto Principal: {name}" -#: TimeTrackerCLI.py:525 -msgid " Sub-Project: {name}" -msgstr " Subproyecto: {name}" +#: TimeTrackerCLI.py:1008 +#, python-brace-format +msgid " Task: {name}" +msgstr "Tarea:{name}" -#: TimeTrackerCLI.py:526 +#: TimeTrackerCLI.py:1009 +#, python-brace-format msgid " Started at: {date}" msgstr " Iniciado a las: {date}" -#: TimeTrackerCLI.py:527 +#: TimeTrackerCLI.py:1010 +#, python-brace-format msgid " Duration: {duration}" msgstr " Duración: {duration}" -#: TimeTrackerCLI.py:529 +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:373 sl/SL_Menu.py:1910 msgid "No active work session." msgstr "No hay sesión de trabajo activa." -#: TimeTrackerCLI.py:532 -msgid "\n--- Stop Work ---" -msgstr "\n--- Detener Trabajo ---" +#: TimeTrackerCLI.py:1016 +msgid "" +"\n" +"--- Stop Work ---" +msgstr "" +"\n" +"--- Detener Trabajo ---" -#: TimeTrackerCLI.py:534 +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:341 msgid "Work session stopped successfully." msgstr "Sesión de trabajo detenida con éxito." -#: TimeTrackerCLI.py:536 +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:343 msgid "No active work session to stop." msgstr "No hay ninguna sesión de trabajo activa para detener." -#: TimeTrackerCLI.py:598 -msgid "\nChecking for updates..." -msgstr "\nBuscando actualizaciones..." +#: TimeTrackerCLI.py:1034 +msgid "" +"\n" +"Checking for updates..." +msgstr "" +"\n" +"Buscando actualizaciones..." -#: TimeTrackerCLI.py:602 +#: TimeTrackerCLI.py:1038 msgid "Exiting application. Goodbye!" msgstr "Saliendo de la aplicación. ¡Adiós!" -#: TimeTrackerCLI.py:605 -msgid "Invalid choice. Please enter a number from 0 to 6." -msgstr "Elección inválida. Por favor, introduzca un número del 0 al 6." - -#: update.py:24 +#: update.py:35 msgid "" "Warning: Update check skipped. 'github_repo' not found in config.json or " "file is invalid." @@ -1031,239 +1285,1190 @@ msgstr "" "Advertencia: Comprobación de actualizaciones omitida. 'github_repo' no " "encontrado en config.json o el archivo es inválido." -#: update.py:24 -msgid "Error updating configuration: {error}" -msgstr "Error al actualizar la configuración: {error}" - -#: update.py:38 +#: update.py:49 +#, python-brace-format msgid "A new version ({version}) is available." msgstr "Una nueva versión ({version}) está disponible." -#: update.py:43 +#: 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." -#: update.py:47 +#: update.py:59 +#, python-brace-format msgid "Error checking for updates: {error}" msgstr "Error al buscar actualizaciones: {error}" -#: update.py:49 +#: update.py:61 +#, python-brace-format msgid "An unexpected error occurred while checking for updates: {error}" msgstr "Ocurrió un error inesperado al buscar actualizaciones: {error}" -#: update.py:61 +#: update.py:73 msgid "Downloading update..." msgstr "Descargando actualización..." -#: update.py:67 +#: update.py:79 msgid "Download complete. The update will be installed on the next start." -msgstr "Descarga completa. La actualización se instalará en el próximo inicio." +msgstr "" +"Descarga completa. La actualización se instalará en el próximo inicio." -#: update.py:70 +#: update.py:82 +#, python-brace-format msgid "Error downloading the update: {error}" msgstr "Error al descargar la actualización: {error}" -#: update.py:112 +#: update.py:108 msgid "Creating backup of current version before update..." -msgstr "Creando copia de seguridad de la versión actual antes de la actualización..." +msgstr "" +"Creando copia de seguridad de la versión actual antes de la actualización..." -#: update.py:121 +#: update.py:118 +#, python-brace-format msgid "Backup created successfully as {filename}." msgstr "Copia de seguridad creada con éxito como {filename}." -#: update.py:123 +#: update.py:120 +#, 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:125 +#: update.py:122 msgid "Installing update..." msgstr "Instalando actualización..." -#: update.py:143 +#: update.py:142 +#, python-brace-format msgid "Skipping protected file: {filename}. It will not be overwritten." msgstr "Omitiendo archivo protegido: {filename}. No será sobrescrito." -#: update.py:152 +#: update.py:151 msgid "Update installed successfully." msgstr "Actualización instalada con éxito." -#: update.py:154 +#: update.py:153 +#, python-brace-format msgid "Error during update installation: {error}" msgstr "Error durante la instalación de la actualización: {error}" -#: update.py:164 +#: update.py:168 +#, 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}'." +msgstr "" +"Error: No se encontró la copia de seguridad de la versión anterior " +"'{filename}'." -#: update.py:167 +#: update.py:171 +#, python-brace-format msgid "Restoring previous version from '{filename}'..." msgstr "Restaurando la versión anterior desde '{filename}'..." -#: update.py:182 -msgid "" -"Skipping user data file: {filename}. It will not be overwritten during " -"restore." -msgstr "" -"Omitiendo archivo de datos de usuario: {filename}. No será sobrescrito " -"durante la restauración." +#: update.py:192 +#, python-brace-format +msgid "" +"Skipping user data file: {filename}. It will not be overwritten during " +"restore." +msgstr "" +"Omitiendo archivo de datos de usuario: {filename}. No será sobrescrito " +"durante la restauración." + +#: update.py:199 +msgid "Previous version restored successfully." +msgstr "Versión anterior restaurada con éxito." + +#: update.py:201 +msgid "Restarting application to apply changes..." +msgstr "Reiniciando la aplicación para aplicar los cambios..." + +#: update.py:204 +#, python-brace-format +msgid "Error during restoration: {error}" +msgstr "Error durante la restauración: {error}" + +#: update.py:205 +#, 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 +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 +msgid "Checking for updates..." +msgstr "Buscando actualizaciones..." + +#: update.py:222 +msgid "No updates available." +msgstr "No hay actualizaciones disponibles." + +#: tt/TimeTracker.py:90 +#, python-brace-format +msgid "Warning: Could not read {file}. Error: {error}" +msgstr "Advertencia: No se pudo leer {file}. Error: {error}" + +#: tt/TimeTracker.py:105 +msgid "Some required packages are missing. Attempting to install them..." +msgstr "Faltan algunos paquetes requeridos. Intentando instalarlos..." + +#: tt/TimeTracker.py:108 +#, python-brace-format +msgid "Installing {package}..." +msgstr "Instalando {package}..." + +#: tt/TimeTracker.py:112 +#, python-brace-format +msgid "Failed to install {package}. Continuing without it." +msgstr "No se pudo instalar{package}. Continuar sin él." + +#: tt/TimeTracker.py:116 +msgid "" +"\n" +"Dependencies installed successfully." +msgstr "" +"\n" +"Dependencias instaladas con éxito." + +#: tt/TimeTracker.py:120 +#, python-brace-format +msgid "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" +msgstr "" +"\n" +"Advertencia: No se pudieron instalar algunas dependencias:{packages}" + +#: tt/TimeTracker.py:122 +#, python-brace-format +msgid "An unexpected error occurred during dependency check: {error}" +msgstr "" +"Ocurrió un error inesperado durante la comprobación de dependencias: {error}" + +#: tt/TimeTracker.py:229 +msgid "Info: Report content has been copied to the clipboard." +msgstr "Info: El contenido del informe ha sido copiado al portapapeles." + +#: tt/TimeTracker.py:231 +#, python-brace-format +msgid "Warning: Could not copy to clipboard. Error: {error}" +msgstr "Advertencia: No se pudo copiar al portapapeles. Error: {error}" + +#: tt/TimeTracker.py:233 +msgid "" +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." +msgstr "" +"Advertencia: No se pudo copiar al portapapeles. Por favor, instale " +"'pyperclip' (`pip install pyperclip`)." + +#: tt/TimeTracker.py:253 +#, python-brace-format +msgid "{hours} hours ({dlp} DLP)" +msgstr "{hours}horas ({dlp}DLP)" + +#: tt/TimeTracker.py:846 tt/TimeTracker.py:886 +#, python-brace-format +msgid "Source main project '{name}' not found." +msgstr "Proyecto principal de origen '{name}' no encontrado." + +#: tt/TimeTracker.py:848 +#, python-brace-format +msgid "Destination main project '{name}' not found." +msgstr "Proyecto principal de destino '{name}' no encontrado." + +#: tt/TimeTracker.py:860 +#, python-brace-format +msgid "Task '{task_name}' moved successfully." +msgstr "Tarea '{task_name}' movida con éxito." + +#: tt/TimeTracker.py:861 tt/TimeTracker.py:896 tt/TimeTracker.py:1373 +#, python-brace-format +msgid "Task '{task_name}' not found in '{main_name}'." +msgstr "Tarea '{task_name}' no encontrada en '{main_name}'." + +#: tt/TimeTracker.py:880 +#, python-brace-format +msgid "A main project named '{name}' already exists." +msgstr "Ya existe un proyecto principal llamado '{name}'." + +#: tt/TimeTracker.py:905 +msgid "General" +msgstr "General" + +#: tt/TimeTracker.py:909 +#, python-brace-format +msgid "Task '{task_name}' was promoted to a new main project." +msgstr "La tarea '{task_name}' fue promovida a un nuevo proyecto principal." + +#: tt/TimeTracker.py:936 +#, python-brace-format +msgid "Main project to demote '{name}' not found." +msgstr "No se encontró el proyecto principal a degradar '{name}'." + +#: tt/TimeTracker.py:938 +#, python-brace-format +msgid "New parent main project '{name}' not found." +msgstr "No se encontró el nuevo proyecto principal padre '{name}'." + +#: tt/TimeTracker.py:963 +#, python-brace-format +msgid "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." +msgstr "" +"El proyecto principal '{demoted_name}' fue degradado a un subproyecto bajo " +"'{parent_name}'." + +#: tt/TimeTracker.py:1042 +msgid "Email import is not enabled." +msgstr "La importación de correo electrónico no está habilitada." + +#: tt/TimeTracker.py:1051 +msgid "Email settings are incomplete." +msgstr "La configuración de correo electrónico está incompleta." + +#: tt/TimeTracker.py:1064 +msgid "Error searching emails." +msgstr "Error al buscar correos electrónicos." + +#: tt/TimeTracker.py:1079 +msgid "No Subject" +msgstr "Sin asunto" + +#: tt/TimeTracker.py:1139 +msgid "Unknown Task" +msgstr "Tarea desconocida" + +#: tt/TimeTracker.py:1330 +#, python-brace-format +msgid "- {name}: {hours} hours" +msgstr "-{name}:{hours}horas" + +#: tt/TimeTracker.py:1338 +#, python-brace-format +msgid "## {name} ({hours} hours)\n" +msgstr "##{name}({hours}horas)\n" + +#: tt/TimeTracker.py:1347 +#, python-brace-format +msgid "# Daily Time Report: {date}\n" +msgstr "# Informe de Tiempo Diario: {date}\n" + +#: tt/TimeTracker.py:1348 +#, python-brace-format +msgid "" +"\n" +"**Total Daily Time: {hours} hours**" +msgstr "" +"\n" +"**Tiempo diario total:{hours}horas**" + +#: tt/TimeTracker.py:1352 tt/TimeTracker.py:1665 +#, python-brace-format +msgid "No time tracked for {date}." +msgstr "No hay tiempo registrado para {date}." + +#: tt/TimeTracker.py:1369 tt/TimeTracker.py:1464 +#, python-brace-format +msgid "Main project '{name}' not found." +msgstr "Proyecto principal '{name}' no encontrado." + +#: tt/TimeTracker.py:1377 +#, 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:1410 tt/TimeTracker.py:1640 +msgid "now" +msgstr "ahora" + +#: tt/TimeTracker.py:1411 sl/SL_Menu.py:1908 +msgid "Duration" +msgstr "Duración" + +#: tt/TimeTracker.py:1415 +#, python-brace-format +msgid "# Detailed Report for Task: {name}" +msgstr "# Informe detallado de la tarea:{name}" + +#: tt/TimeTracker.py:1416 +#, python-brace-format +msgid "Part of Main Project: {name}" +msgstr "Parte del Proyecto Principal: {name}" + +#: tt/TimeTracker.py:1419 +msgid "Active (currently running)" +msgstr "Activo (actualmente en ejecución)" + +#: tt/TimeTracker.py:1419 tt/TimeTracker.py:1516 +msgid "Inactive" +msgstr "Inactivo" + +#: tt/TimeTracker.py:1420 tt/TimeTracker.py:1517 +msgid "Status" +msgstr "Estado" + +#: tt/TimeTracker.py:1422 tt/TimeTracker.py:1519 +msgid "First entry" +msgstr "Primera entrada" + +#: tt/TimeTracker.py:1424 tt/TimeTracker.py:1521 +msgid "Last activity" +msgstr "Última actividad" + +#: tt/TimeTracker.py:1426 tt/TimeTracker.py:1523 +msgid "Total recorded time" +msgstr "Tiempo total registrado" + +#: tt/TimeTracker.py:1427 tt/TimeTracker.py:1525 +msgid "Total work sessions" +msgstr "Total de sesiones de trabajo" + +#: tt/TimeTracker.py:1431 tt/TimeTracker.py:1529 +msgid "Average session duration" +msgstr "Duración media de la sesión" + +#: tt/TimeTracker.py:1434 tt/TimeTracker.py:1532 +msgid "Weekday Distribution" +msgstr "Distribución por día de la semana" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Monday" +msgstr "Lunes" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Tuesday" +msgstr "Martes" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Wednesday" +msgstr "Miércoles" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Thursday" +msgstr "Jueves" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Friday" +msgstr "Viernes" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Saturday" +msgstr "Sábado" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Sunday" +msgstr "Domingo" + +#: tt/TimeTracker.py:1444 +msgid "Daily Breakdown" +msgstr "Desglose diario" + +#: tt/TimeTracker.py:1513 +#, python-brace-format +msgid "# Detailed Report for Main Project: {name}" +msgstr "# Informe Detallado del Proyecto Principal: {name}" + +#: tt/TimeTracker.py:1516 +#, python-brace-format +msgid "Active (working on '{task_name}')" +msgstr "Activo (trabajando en '{task_name}')" + +#: tt/TimeTracker.py:1524 +msgid "Number of tasks" +msgstr "Número de tareas" + +#: tt/TimeTracker.py:1543 +msgid "Task Breakdown" +msgstr "Desglose de tareas" + +#: tt/TimeTracker.py:1552 +#, python-brace-format +msgid "{num_sessions} sessions" +msgstr "{num_sessions} sesiones" + +#: tt/TimeTracker.py:1605 +#, 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:1606 +#, python-brace-format +msgid "" +"\n" +"**Total Time in Period: {total_time}**" +msgstr "" +"\n" +"**Tiempo Total en el Periodo: {total_time}**" + +#: tt/TimeTracker.py:1610 +#, 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:1626 +#, python-brace-format +msgid "# Detailed Daily Report: {date}" +msgstr "# Informe Diario Detallado: {date}" + +#: sl/SL_Menu.py:277 +msgid "New" +msgstr "Nuevo" + +#: sl/SL_Menu.py:278 +msgid "New Project" +msgstr "Nuevo proyecto" + +#: sl/SL_Menu.py:281 +msgid "New Task" +msgstr "Nueva tarea" + +#: sl/SL_Menu.py:286 +msgid "Project & Task Management" +msgstr "Gestión de proyectos y tareas" + +#: sl/SL_Menu.py:287 sl/SL_Menu.py:780 +msgid "Main Project Management" +msgstr "Gestión de Proyectos Principales" + +#: sl/SL_Menu.py:288 sl/SL_Menu.py:796 sl/SL_Menu.py:894 +msgid "Add Project" +msgstr "Añadir Proyecto" + +#: sl/SL_Menu.py:291 sl/SL_Menu.py:799 sl/SL_Menu.py:1242 +msgid "List Projects" +msgstr "Listar Proyectos" + +#: sl/SL_Menu.py:292 sl/SL_Menu.py:800 sl/SL_Menu.py:1257 +msgid "Rename Project" +msgstr "Renombrar Proyecto" + +#: sl/SL_Menu.py:293 sl/SL_Menu.py:801 sl/SL_Menu.py:1371 sl/SL_Menu.py:1384 +msgid "Close Project" +msgstr "Cerrar Proyecto" + +#: sl/SL_Menu.py:294 sl/SL_Menu.py:802 sl/SL_Menu.py:1401 sl/SL_Menu.py:1414 +msgid "Re-open Project" +msgstr "Reabrir Proyecto" + +#: sl/SL_Menu.py:295 sl/SL_Menu.py:803 sl/SL_Menu.py:1431 sl/SL_Menu.py:1445 +msgid "Delete Project" +msgstr "Eliminar Proyecto" + +#: sl/SL_Menu.py:296 sl/SL_Menu.py:804 sl/SL_Menu.py:1462 +msgid "List Inactive Projects" +msgstr "Listar Proyectos Inactivos" + +#: sl/SL_Menu.py:297 sl/SL_Menu.py:805 +msgid "Demote Project to Task" +msgstr "Degradar Proyecto a Tarea" + +#: sl/SL_Menu.py:298 sl/SL_Menu.py:806 sl/SL_Menu.py:1524 +msgid "List Completed Projects" +msgstr "Listar Proyectos Completados" + +#: sl/SL_Menu.py:300 sl/SL_Menu.py:782 sl/SL_Menu.py:817 +msgid "Task Management" +msgstr "Gestión de Tareas" + +#: sl/SL_Menu.py:301 sl/SL_Menu.py:819 sl/SL_Menu.py:1542 sl/SL_Menu.py:1573 +#: sl/SL_Menu.py:1646 +msgid "Add Task" +msgstr "Añadir Tarea" + +#: sl/SL_Menu.py:304 sl/SL_Menu.py:822 sl/SL_Menu.py:1292 +msgid "List Tasks" +msgstr "Listar Tareas" + +#: sl/SL_Menu.py:305 sl/SL_Menu.py:823 sl/SL_Menu.py:1324 +msgid "Rename Task" +msgstr "Renombrar Tarea" + +#: sl/SL_Menu.py:306 sl/SL_Menu.py:824 sl/SL_Menu.py:909 sl/SL_Menu.py:935 +#: sl/SL_Menu.py:1114 +msgid "Close Task" +msgstr "Cerrar Tarea" + +#: sl/SL_Menu.py:307 sl/SL_Menu.py:825 sl/SL_Menu.py:954 sl/SL_Menu.py:980 +msgid "Re-open Task" +msgstr "Reabrir Tarea" + +#: sl/SL_Menu.py:308 sl/SL_Menu.py:826 sl/SL_Menu.py:999 sl/SL_Menu.py:1026 +msgid "Delete Task" +msgstr "Eliminar Tarea" + +#: sl/SL_Menu.py:309 sl/SL_Menu.py:827 sl/SL_Menu.py:1045 sl/SL_Menu.py:1081 +msgid "Move Task" +msgstr "Mover Tarea" + +#: sl/SL_Menu.py:310 sl/SL_Menu.py:828 sl/SL_Menu.py:1100 +msgid "List Inactive Tasks" +msgstr "Listar Tareas Inactivas" + +#: sl/SL_Menu.py:311 sl/SL_Menu.py:829 sl/SL_Menu.py:1127 +msgid "List All Closed Tasks" +msgstr "Listar Todas las Tareas Cerradas" + +#: sl/SL_Menu.py:312 sl/SL_Menu.py:477 sl/SL_Menu.py:539 sl/SL_Menu.py:626 +#: sl/SL_Menu.py:830 sl/SL_Menu.py:1673 sl/SL_Menu.py:1693 sl/SL_Menu.py:1728 +msgid "Edit Task" +msgstr "Editar tarea" + +#: sl/SL_Menu.py:315 sl/SL_Menu.py:833 sl/SL_Menu.py:1152 +msgid "Delete All Closed Tasks" +msgstr "Eliminar Todas las Tareas Cerradas" + +#: sl/SL_Menu.py:316 sl/SL_Menu.py:834 sl/SL_Menu.py:1194 +msgid "Promote Task to Project" +msgstr "Promover Tarea a Proyecto" + +#: sl/SL_Menu.py:319 +msgid "Today View" +msgstr "Vista de hoy" + +#: sl/SL_Menu.py:323 sl/SL_Menu.py:405 +msgid "Task Planning" +msgstr "Planificación de tareas" + +#: sl/SL_Menu.py:327 sl/SL_Menu.py:655 +msgid "E-Mail Task Assignment" +msgstr "Asignación de tareas por correo" + +#: sl/SL_Menu.py:331 sl/SL_Menu.py:473 sl/SL_Menu.py:535 sl/SL_Menu.py:622 +msgid "Start work on task" +msgstr "Iniciar trabajo en tarea" + +#: sl/SL_Menu.py:335 +msgid "Show current work" +msgstr "Mostrar trabajo actual" + +#: sl/SL_Menu.py:339 +msgid "Stop current work" +msgstr "Detener trabajo actual" + +#: sl/SL_Menu.py:347 sl/SL_Menu.py:845 +msgid "Reporting" +msgstr "Informes" + +#: sl/SL_Menu.py:348 sl/SL_Menu.py:848 +msgid "Daily Report (Today)" +msgstr "Informe Diario (Hoy)" + +#: sl/SL_Menu.py:352 sl/SL_Menu.py:853 sl/SL_Menu.py:2195 +msgid "Daily Report (Specific Day)" +msgstr "Informe Diario (Día Específico)" + +#: sl/SL_Menu.py:354 sl/SL_Menu.py:854 sl/SL_Menu.py:2214 +msgid "Date Range Report" +msgstr "Informe por Rango de Fechas" + +#: sl/SL_Menu.py:356 sl/SL_Menu.py:855 sl/SL_Menu.py:2241 sl/SL_Menu.py:2272 +msgid "Detailed Task Report" +msgstr "Informe Detallado de Tarea" + +#: sl/SL_Menu.py:358 sl/SL_Menu.py:856 sl/SL_Menu.py:2300 +msgid "Detailed Project Report" +msgstr "Informe Detallado de Proyecto" + +#: sl/SL_Menu.py:360 sl/SL_Menu.py:857 sl/SL_Menu.py:2327 +msgid "Detailed Daily Report" +msgstr "Informe Diario Detallado" + +#: sl/SL_Menu.py:364 sl/SL_Menu.py:868 +msgid "Settings" +msgstr "Configuración" + +#: sl/SL_Menu.py:371 sl/SL_Menu.py:1897 +msgid "Current Active Work" +msgstr "Trabajo Activo Actual" + +#: sl/SL_Menu.py:376 sl/SL_Menu.py:497 sl/SL_Menu.py:559 sl/SL_Menu.py:633 +#: sl/SL_Menu.py:1773 +msgid "Done" +msgstr "Hecho" + +#: sl/SL_Menu.py:390 +msgid "Edit current task" +msgstr "Editar tarea actual" + +#: sl/SL_Menu.py:398 +msgid "Exit" +msgstr "Salir" + +#: sl/SL_Menu.py:410 sl/SL_Menu.py:420 +msgid "Tomorrow" +msgstr "Mañana" + +#: sl/SL_Menu.py:411 sl/SL_Menu.py:421 +msgid "Weekly overview" +msgstr "Resumen semanal" + +#: sl/SL_Menu.py:412 sl/SL_Menu.py:422 +msgid "Overdue tasks" +msgstr "Tareas vencidas" + +#: sl/SL_Menu.py:413 sl/SL_Menu.py:423 +msgid "Unplanned tasks" +msgstr "Tareas no planificadas" + +#: sl/SL_Menu.py:414 +msgid "All" +msgstr "Todo" + +#: sl/SL_Menu.py:416 +msgid "Filter" +msgstr "Filtro" + +#: sl/SL_Menu.py:430 +msgid "Tasks" +msgstr "Tareas" + +#: sl/SL_Menu.py:572 +msgid "No tasks found." +msgstr "No Tareas encontradas." + +#: sl/SL_Menu.py:574 sl/SL_Menu.py:648 sl/SL_Menu.py:770 sl/SL_Menu.py:810 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:914 sl/SL_Menu.py:925 sl/SL_Menu.py:959 +#: sl/SL_Menu.py:970 sl/SL_Menu.py:1004 sl/SL_Menu.py:1015 sl/SL_Menu.py:1050 +#: sl/SL_Menu.py:1061 sl/SL_Menu.py:1069 sl/SL_Menu.py:1120 sl/SL_Menu.py:1145 +#: sl/SL_Menu.py:1167 sl/SL_Menu.py:1199 sl/SL_Menu.py:1210 sl/SL_Menu.py:1250 +#: sl/SL_Menu.py:1262 sl/SL_Menu.py:1297 sl/SL_Menu.py:1317 sl/SL_Menu.py:1329 +#: sl/SL_Menu.py:1340 sl/SL_Menu.py:1376 sl/SL_Menu.py:1406 sl/SL_Menu.py:1436 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1488 sl/SL_Menu.py:1535 sl/SL_Menu.py:1547 +#: sl/SL_Menu.py:1678 sl/SL_Menu.py:1697 sl/SL_Menu.py:1710 sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1858 sl/SL_Menu.py:1868 sl/SL_Menu.py:1912 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:2102 sl/SL_Menu.py:2207 sl/SL_Menu.py:2234 sl/SL_Menu.py:2246 +#: sl/SL_Menu.py:2258 sl/SL_Menu.py:2277 sl/SL_Menu.py:2293 sl/SL_Menu.py:2305 +#: sl/SL_Menu.py:2320 sl/SL_Menu.py:2339 sl/SL_Menu.py:2380 sl/SL_Menu.py:2395 +msgid "Back" +msgstr "Atrás" + +#: sl/SL_Menu.py:581 +msgid "Today's Tasks" +msgstr "Tareas de hoy" + +#: sl/SL_Menu.py:646 +msgid "No tasks for today." +msgstr "No hay tareas para hoy." + +#: sl/SL_Menu.py:661 +msgid "Fetching emails..." +msgstr "Recuperando correos electrónicos..." + +#: sl/SL_Menu.py:664 +#, python-brace-format +msgid "Error fetching emails: {error}" +msgstr "Error al recuperar correos: {error}" + +#: sl/SL_Menu.py:667 +#, python-brace-format +msgid "{count} new tasks created from emails." +msgstr "{count} nuevas tareas creadas desde correos." + +#: sl/SL_Menu.py:669 +msgid "No new emails found." +msgstr "No se encontraron correos nuevos." + +#: sl/SL_Menu.py:675 +msgid "No unassigned email tasks available." +msgstr "No hay tareas de correo sin asignar disponibles." + +#: sl/SL_Menu.py:687 +msgid "Assign Project" +msgstr "Asignar proyecto" + +#: sl/SL_Menu.py:698 +msgid "Are you sure you want to delete this task?" +msgstr "¿Está seguro de que desea eliminar esta tarea?" + +#: sl/SL_Menu.py:701 +msgid "Yes, delete" +msgstr "Sí, eliminar" + +#: sl/SL_Menu.py:706 +msgid "No, cancel" +msgstr "No, cancelar" + +#: sl/SL_Menu.py:713 +msgid "Delete" +msgstr "Eliminar" + +#: sl/SL_Menu.py:717 +msgid "Edit Details" +msgstr "Editar detalles" + +#: sl/SL_Menu.py:725 sl/SL_Menu.py:1757 +msgid "Task Name" +msgstr "Nombre de la tarea" + +#: sl/SL_Menu.py:734 sl/SL_Menu.py:1761 +msgid "Due Date" +msgstr "Fecha de vencimiento" + +#: sl/SL_Menu.py:742 sl/SL_Menu.py:1765 +msgid "Clear" +msgstr "Limpiar" + +#: sl/SL_Menu.py:749 sl/SL_Menu.py:1634 sl/SL_Menu.py:1804 +msgid "Notes (Markdown)" +msgstr "Notas (Markdown)" -#: update.py:188 -msgid "Previous version restored successfully." -msgstr "Versión anterior restaurada con éxito." +#: sl/SL_Menu.py:751 sl/SL_Menu.py:1816 +msgid "Save Changes" +msgstr "Guardar cambios" -#: update.py:190 -msgid "Restarting application to apply changes..." -msgstr "Reiniciando la aplicación para aplicar los cambios..." +#: sl/SL_Menu.py:762 +msgid "Task details updated successfully." +msgstr "Detalles de la tarea actualizados con éxito." -#: update.py:192 -msgid "Error during restoration: {error}" -msgstr "Error durante la restauración: {error}" +#: sl/SL_Menu.py:768 +msgid "Error updating task details." +msgstr "Error al actualizar los detalles de la tarea." -#: update.py:193 -msgid "The backup file '{filename}' was not deleted." -msgstr "El archivo de copia de seguridad '{filename}' no fue eliminado." +#: sl/SL_Menu.py:778 sl/SL_Menu.py:794 +msgid "Project Management" +msgstr "Gestión de Proyectos" -msgid "Back" -msgstr "Atrás" +#: sl/SL_Menu.py:787 sl/SL_Menu.py:861 +msgid "Back to Main Menu" +msgstr "Volver al Menú Principal" -msgid "Current Active Work" -msgstr "Trabajo Activo Actual" +#: sl/SL_Menu.py:873 sl/SL_Menu.py:2000 +msgid "Report Format" +msgstr "Formato de informe" -msgid "Handle projects and sub-projects" -msgstr "Gestionar proyectos y subproyectos" +#: sl/SL_Menu.py:875 sl/SL_Menu.py:2159 +msgid "Email Settings" +msgstr "Configuración de correo" -msgid "Exit" -msgstr "Salir" +#: sl/SL_Menu.py:876 sl/SL_Menu.py:2020 +msgid "Change CSS Style" +msgstr "Cambiar estilo CSS" + +#: sl/SL_Menu.py:877 sl/SL_Menu.py:2058 +msgid "Change View Mode" +msgstr "Cambiar modo de vista" + +#: sl/SL_Menu.py:890 +msgid "Add New Project" +msgstr "Agregar nuevo proyecto" + +#: sl/SL_Menu.py:893 +msgid "Name of the project" +msgstr "Nombre del proyecto" + +#: sl/SL_Menu.py:897 +#, python-brace-format +msgid "Project '{name}' added." +msgstr "Proyecto '{name}' agregado." + +#: sl/SL_Menu.py:901 sl/SL_Menu.py:947 sl/SL_Menu.py:992 sl/SL_Menu.py:1038 +#: sl/SL_Menu.py:1093 sl/SL_Menu.py:1187 sl/SL_Menu.py:1235 sl/SL_Menu.py:1285 +#: sl/SL_Menu.py:1364 sl/SL_Menu.py:1394 sl/SL_Menu.py:1424 sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1517 sl/SL_Menu.py:1557 sl/SL_Menu.py:1666 sl/SL_Menu.py:1685 +#: sl/SL_Menu.py:1843 sl/SL_Menu.py:1890 sl/SL_Menu.py:1934 sl/SL_Menu.py:1995 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2051 sl/SL_Menu.py:2084 sl/SL_Menu.py:2152 +#: sl/SL_Menu.py:2188 +msgid "Cancel" +msgstr "Cancelar" -msgid "No open main projects found." -msgstr "No se encontraron proyectos principales abiertos." +#: sl/SL_Menu.py:919 sl/SL_Menu.py:964 sl/SL_Menu.py:1009 sl/SL_Menu.py:1204 +#: sl/SL_Menu.py:1267 sl/SL_Menu.py:1302 sl/SL_Menu.py:1334 sl/SL_Menu.py:1383 +#: sl/SL_Menu.py:1413 sl/SL_Menu.py:1443 sl/SL_Menu.py:1863 sl/SL_Menu.py:2251 +#: sl/SL_Menu.py:2312 +msgid "Select Project" +msgstr "Seleccionar Proyecto" + +#: sl/SL_Menu.py:924 +#, python-brace-format +msgid "No open tasks to close in '{name}'." +msgstr "No hay tareas abiertas para cerrar en '{name}'." -msgid "No open sub-projects to close in '{name}'." -msgstr "No hay subproyectos abiertos para cerrar en '{name}'." +#: sl/SL_Menu.py:931 sl/SL_Menu.py:976 sl/SL_Menu.py:1021 sl/SL_Menu.py:1075 +#: sl/SL_Menu.py:1216 sl/SL_Menu.py:1344 sl/SL_Menu.py:1700 sl/SL_Menu.py:1874 +#: sl/SL_Menu.py:2282 +msgid "Select Task" +msgstr "Seleccionar Tarea" -msgid "Sub-project '{sub_name}' in '{main_name}' has been closed." -msgstr "El subproyecto '{sub_name}' en '{main_name}' ha sido cerrado." +#: sl/SL_Menu.py:941 +#, python-brace-format +msgid "Task '{sub_name}' in '{main_name}' has been closed." +msgstr "La tarea '{sub_name}' en '{main_name}' se ha cerrado." -msgid "No closed sub-projects to reopen in '{name}'." -msgstr "No hay subproyectos cerrados para reabrir en '{name}'." +#: sl/SL_Menu.py:969 +#, python-brace-format +msgid "No closed tasks to reopen in '{name}'." +msgstr "No hay tareas cerradas para reabrir en '{name}'." -msgid "Sub-project '{sub_name}' in '{main_name}' has been reopened." -msgstr "El subproyecto '{sub_name}' en '{main_name}' ha sido reabierto." +#: sl/SL_Menu.py:986 +#, python-brace-format +msgid "Task '{sub_name}' in '{main_name}' has been reopened." +msgstr "La tarea '{sub_name}' en '{main_name}' se ha reabierto." -msgid "No open sub-projects to delete in '{name}'." -msgstr "No hay subproyectos abiertos para eliminar en '{name}'." +#: sl/SL_Menu.py:1014 +#, python-brace-format +msgid "No open tasks to delete in '{name}'." +msgstr "No hay tareas abiertas para eliminar en '{name}'." +#: sl/SL_Menu.py:1025 msgid "This action cannot be undone." msgstr "Esta acción no se puede deshacer." -msgid "No sub-projects found in '{name}'." -msgstr "No se encontraron subproyectos en '{name}'." +#: sl/SL_Menu.py:1032 +#, python-brace-format +msgid "Task '{sub_name}' deleted from '{main_name}'." +msgstr "Tarea '{sub_name}' eliminada de '{main_name}'." -msgid "No other main projects available to move to." -msgstr "No hay otros proyectos principales disponibles para mover." +#: sl/SL_Menu.py:1055 +msgid "Select Source Project" +msgstr "Seleccionar proyecto fuente" -msgid "Sub-project '{sub}' moved from '{src}' to '{dst}'." -msgstr "Subproyecto '{sub}' movido de '{src}' a '{dst}'." +#: sl/SL_Menu.py:1060 +#, python-brace-format +msgid "No tasks found in '{name}'." +msgstr "No se encontraron tareas en '{name}'." -msgid "Error: Could not move sub-project." -msgstr "Error: No se pudo mover el subproyecto." +#: sl/SL_Menu.py:1068 +msgid "No other projects available to move to." +msgstr "No hay otros proyectos disponibles para mudarse." +#: sl/SL_Menu.py:1079 sl/SL_Menu.py:1503 +msgid "Select Target Project" +msgstr "Seleccionar proyecto de destino" + +#: sl/SL_Menu.py:1087 +#, 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:1091 +msgid "Error: Could not move task." +msgstr "Error: No se pudo mover la tarea." + +#: sl/SL_Menu.py:1102 sl/SL_Menu.py:1464 msgid "Weeks of inactivity" msgstr "Semanas de inactividad" -msgid "Inactive Sub-Projects (> {weeks} weeks):" -msgstr "Subproyectos Inactivos (> {weeks} semanas):" +#: sl/SL_Menu.py:1107 +#, python-brace-format +msgid "Inactive Tasks (> {weeks} weeks):" +msgstr "Tareas inactivas (>{weeks}semanas):" + +#: sl/SL_Menu.py:1112 sl/SL_Menu.py:1472 +msgid "Last Activity" +msgstr "Última actividad" +#: sl/SL_Menu.py:1171 +#, python-brace-format msgid "" -"Are you sure you want to delete {count} closed sub-projects? This action " -"cannot be undone." +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." msgstr "" -"¿Está seguro de que desea eliminar {count} subproyectos cerrados? Esta " -"acción no se puede deshacer." +"¿Está seguro de que desea eliminar{count}tareas cerradas? Esta acción no se " +"puede deshacer." +#: sl/SL_Menu.py:1173 msgid "Show projects to delete" msgstr "Mostrar proyectos a eliminar" -msgid "Successfully deleted {count} sub-projects." -msgstr "Se eliminaron {count} subproyectos con éxito." +#: sl/SL_Menu.py:1177 +msgid "Delete All" +msgstr "Eliminar todo" + +#: sl/SL_Menu.py:1183 +#, python-brace-format +msgid "Successfully deleted {count} tasks." +msgstr "Tareas{count}eliminadas correctamente." -msgid "No open sub-projects to promote in '{name}'." -msgstr "No hay subproyectos abiertos para promover en '{name}'." +#: sl/SL_Menu.py:1209 +#, python-brace-format +msgid "No open tasks to promote in '{name}'." +msgstr "No hay tareas abiertas para promocionar en '{name}'." +#: sl/SL_Menu.py:1220 msgid "" -"This will create a new Main Project with the sub-project's name and move all " -"time entries to a 'General' sub-project within it." +"This will create a new Project with the task's name and move all time " +"entries to a 'General' task within it." msgstr "" -"Esto creará un nuevo Proyecto Principal con el nombre del subproyecto y " -"moverá todas las entradas de tiempo a un subproyecto 'General' dentro de él." +"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." -msgid "No open main projects to rename." -msgstr "No hay proyectos principales abiertos para renombrar." +#: sl/SL_Menu.py:1222 +msgid "Promote to Project" +msgstr "Promocionar a Proyecto" +#: sl/SL_Menu.py:1261 +msgid "No open projects to rename." +msgstr "No hay proyectos abiertos para cambiar el nombre." + +#: sl/SL_Menu.py:1270 sl/SL_Menu.py:1349 msgid "New Name" msgstr "Nuevo Nombre" +#: sl/SL_Menu.py:1271 sl/SL_Menu.py:1350 +msgid "Rename" +msgstr "Renombrar" + +#: sl/SL_Menu.py:1275 sl/SL_Menu.py:1354 msgid "Please enter a new name." msgstr "Por favor, introduzca un nuevo nombre." +#: sl/SL_Menu.py:1277 sl/SL_Menu.py:1356 msgid "New name is the same as the old name." msgstr "El nuevo nombre es el mismo que el antiguo." -msgid "No open sub-projects to rename in '{name}'." -msgstr "No hay subproyectos abiertos para renombrar en '{name}'." +#: sl/SL_Menu.py:1279 +#, python-brace-format +msgid "Project '{old_name}' successfully renamed to '{new_name}'." +msgstr "El proyecto '{old_name}' se renombra exitosamente a '{new_name}'." -msgid "No open main projects to close." -msgstr "No hay proyectos principales abiertos para cerrar." +#: sl/SL_Menu.py:1339 +#, python-brace-format +msgid "No open tasks to rename in '{name}'." +msgstr "No hay tareas abiertas para cambiar el nombre en '{name}'." -msgid "Main project '{name}' has been closed." -msgstr "El proyecto principal '{name}' ha sido cerrado." +#: sl/SL_Menu.py:1362 +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." -msgid "No closed main projects to reopen." -msgstr "No hay proyectos principales cerrados para reabrir." +#: sl/SL_Menu.py:1375 +msgid "No open projects to close." +msgstr "No hay proyectos abiertos para cerrar." -msgid "Main project '{name}' has been reopened." -msgstr "El proyecto principal '{name}' ha sido reabierto." +#: sl/SL_Menu.py:1388 +#, python-brace-format +msgid "Project '{name}' has been closed." +msgstr "El proyecto '{name}' ha sido cerrado." + +#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1422 sl/SL_Menu.py:1453 +msgid "Error: Project not found." +msgstr "Error: Proyecto no encontrado." +#: sl/SL_Menu.py:1405 +msgid "No closed projects to reopen." +msgstr "No hay proyectos cerrados para reabrir." + +#: sl/SL_Menu.py:1418 +#, python-brace-format +msgid "Project '{name}' has been reopened." +msgstr "El proyecto '{name}' ha sido reabierto." + +#: sl/SL_Menu.py:1444 msgid "" -"This action cannot be undone. All associated sub-projects and time entries " -"will be deleted." +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." msgstr "" -"Esta acción no se puede deshacer. Todos los subproyectos y entradas de " -"tiempo asociados serán eliminados." +"Esta acción no se puede deshacer. Se eliminarán todas las tareas asociadas y" +" entradas de tiempo." + +#: sl/SL_Menu.py:1449 +#, python-brace-format +msgid "Project '{name}' has been deleted." +msgstr "El proyecto '{name}' ha sido eliminado." + +#: sl/SL_Menu.py:1469 +#, python-brace-format +msgid "Inactive Projects (> {weeks} weeks):" +msgstr "Proyectos inactivos (>{weeks}semanas):" + +#: sl/SL_Menu.py:1474 +#, 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:1483 sl/SL_Menu.py:1506 +msgid "Demote Project" +msgstr "Degradar proyecto" + +#: sl/SL_Menu.py:1495 +msgid "Select Project to Demote" +msgstr "Seleccionar proyecto para degradar" + +#: sl/SL_Menu.py:1501 +msgid "No other projects available to demote into." +msgstr "No hay otros proyectos disponibles para degradar." + +#: sl/SL_Menu.py:1504 +#, 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:1529 +msgid "Projects with only closed or no tasks:" +msgstr "Proyectos con solo tareas cerradas o sin tareas:" + +#: sl/SL_Menu.py:1533 +msgid "No completed projects found." +msgstr "No se encontraron proyectos completados." + +#: sl/SL_Menu.py:1542 sl/SL_Menu.py:1673 sl/SL_Menu.py:2241 +msgid "Step 1: Select Project" +msgstr "Paso 1: Seleccionar proyecto" + +#: sl/SL_Menu.py:1546 sl/SL_Menu.py:1857 +msgid "No open projects found. Please add one first." +msgstr "No se encontraron proyectos abiertos. Por favor agregue uno primero." + +#: sl/SL_Menu.py:1551 sl/SL_Menu.py:1680 sl/SL_Menu.py:1905 +msgid "Project" +msgstr "Proyecto" + +#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1681 sl/SL_Menu.py:1705 sl/SL_Menu.py:2253 +msgid "Next" +msgstr "Siguiente" + +#: sl/SL_Menu.py:1568 sl/SL_Menu.py:2267 +msgid "No project selected. Please start again." +msgstr "Ningún proyecto seleccionado. Por favor, empieza de nuevo." + +#: sl/SL_Menu.py:1573 +msgid "To Project:" +msgstr "Al proyecto:" + +#: sl/SL_Menu.py:1594 +msgid "Name of the new task" +msgstr "Nombre de la nueva tarea" + +#: sl/SL_Menu.py:1600 +msgid "Due date" +msgstr "Fecha de vencimiento" -msgid "Main project '{name}' has been deleted." -msgstr "El proyecto principal '{name}' ha sido eliminado." +#: sl/SL_Menu.py:1606 sl/SL_Menu.py:1775 +msgid "Recurring" +msgstr "Recurrente" -msgid "Inactive Main Projects (> {weeks} weeks):" -msgstr "Proyectos Principales Inactivos (> {weeks} semanas):" +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "daily" +msgstr "diario" -msgid "No main projects found inactive for more than {weeks} weeks." -msgstr "No se encontraron proyectos principales inactivos por más de {weeks} semanas." +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "on all business days" +msgstr "todos los días hábiles" -msgid "No other main projects available to demote into." -msgstr "No hay otros proyectos principales disponibles para degradar." +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "weekly" +msgstr "semanal" -msgid "This will convert '{src}' into a sub-project of '{dst}'." -msgstr "Esto convertirá '{src}' en un subproyecto de '{dst}'." +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "monthly" +msgstr "mensual" -msgid "Main projects with only closed or no sub-projects:" -msgstr "Proyectos principales con solo subproyectos cerrados o sin subproyectos:" +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "userdefined" +msgstr "definido por el usuario" -msgid "No completed main projects found." -msgstr "No se encontraron proyectos principales completados." +#: sl/SL_Menu.py:1624 sl/SL_Menu.py:1797 +msgid "Frequency" +msgstr "Frecuencia" + +#: sl/SL_Menu.py:1628 sl/SL_Menu.py:1800 +msgid "Days" +msgstr "Días" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Edit" +msgstr "Editar" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Preview" +msgstr "Vista previa" + +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1807 +msgid "No notes provided." +msgstr "No se proporcionaron notas." + +#: sl/SL_Menu.py:1642 sl/SL_Menu.py:1812 +msgid "A due date is required for recurring tasks." +msgstr "Se requiere una fecha de vencimiento para las tareas recurrentes." + +#: sl/SL_Menu.py:1650 +msgid "Please enter a name." +msgstr "Por favor ingrese un nombre." + +#: sl/SL_Menu.py:1661 +#, python-brace-format +msgid "Task '{sub_name}' added to '{main_name}'." +msgstr "Tarea '{sub_name}' agregada a '{main_name}'." + +#: sl/SL_Menu.py:1693 sl/SL_Menu.py:2272 +msgid "Step 2: Select Task from" +msgstr "Paso 2: Seleccione Tarea de" + +#: sl/SL_Menu.py:1696 +msgid "No open tasks found." +msgstr "No se encontraron tareas abiertas." + +#: sl/SL_Menu.py:1724 +msgid "Task not found." +msgstr "Tarea no encontrada." + +#: sl/SL_Menu.py:1840 +msgid "Error: Could not update task." +msgstr "Error: No se pudo actualizar la tarea." + +#: sl/SL_Menu.py:1853 +msgid "Start Work on Task" +msgstr "Comenzar a trabajar en la tarea" -msgid "A sub-project with this name already exists in this main project." -msgstr "Ya existe un subproyecto con este nombre en este proyecto principal." +#: sl/SL_Menu.py:1867 +#, python-brace-format +msgid "No open tasks to start work on in '{name}'." +msgstr "No hay tareas abiertas para comenzar a trabajar en '{name}'." -msgid "No open sub-projects to start work on in '{name}'." -msgstr "No hay subproyectos abiertos para iniciar trabajo en '{name}'." +#: sl/SL_Menu.py:1878 +msgid "Start Work" +msgstr "Iniciar trabajo" +#: sl/SL_Menu.py:1906 +msgid "Task" +msgstr "Tarea" + +#: sl/SL_Menu.py:1907 +msgid "Started at" +msgstr "Comenzó en" + +#: sl/SL_Menu.py:1918 +msgid "Streamlit Port Settings" +msgstr "Configuración del puerto Streamlit" + +#: sl/SL_Menu.py:1922 msgid "Current Streamlit Port" msgstr "Puerto actual de Streamlit" +#: sl/SL_Menu.py:1925 +msgid "New Port" +msgstr "Nuevo puerto" + +#: sl/SL_Menu.py:1926 sl/SL_Menu.py:1958 sl/SL_Menu.py:2007 sl/SL_Menu.py:2042 +#: sl/SL_Menu.py:2074 sl/SL_Menu.py:2141 sl/SL_Menu.py:2173 +msgid "Save" +msgstr "Guardar" + +#: sl/SL_Menu.py:1930 +#, python-brace-format msgid "Port updated to {port}. Please restart Streamlit." msgstr "Puerto actualizado a {port}. Por favor, reinicie Streamlit." +#: sl/SL_Menu.py:1940 +msgid "Change Data Storage Location" +msgstr "Cambiar ubicación de almacenamiento de datos" + +#: sl/SL_Menu.py:1943 +msgid "Current data file" +msgstr "Archivo de datos actual" + +#: sl/SL_Menu.py:1946 +msgid "New Path for data file" +msgstr "Nueva ruta para el archivo de datos" + +#: sl/SL_Menu.py:1952 +msgid "Move existing data to the new location" +msgstr "Mover datos existentes a la nueva ubicación" + +#: sl/SL_Menu.py:1955 msgid "" "If unchecked, the old data file will remain, and a new empty one might be " "created at the new location on restart." @@ -1271,6 +2476,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:1962 +msgid "Please enter a new path." +msgstr "Por favor ingrese una nueva ruta." + +#: sl/SL_Menu.py:1970 msgid "" "Error: For security, the data file must be located within the application " "directory." @@ -1278,6 +2488,7 @@ msgstr "" "Error: Por seguridad, el archivo de datos debe estar ubicado dentro del " "directorio de la aplicación." +#: sl/SL_Menu.py:1980 msgid "" "Storage location updated. Please restart the application for the changes to " "take effect." @@ -1285,9 +2496,23 @@ msgstr "" "Ubicación de almacenamiento actualizada. Por favor, reinicie la aplicación " "para que los cambios surtan efecto." +#: sl/SL_Menu.py:2006 +msgid "Select Format" +msgstr "Seleccionar formato" + +#: sl/SL_Menu.py:2011 +msgid "Report format updated." +msgstr "Formato de informe actualizado." + +#: sl/SL_Menu.py:2024 msgid "Current CSS file" msgstr "Archivo CSS actual" +#: sl/SL_Menu.py:2041 +msgid "Select CSS File" +msgstr "Seleccionar archivo CSS" + +#: sl/SL_Menu.py:2047 msgid "" "CSS style updated. Please restart the application for the changes to take " "effect." @@ -1295,21 +2520,73 @@ msgstr "" "Estilo CSS actualizado. Por favor, reinicie la aplicación para que los " "cambios surtan efecto." +#: sl/SL_Menu.py:2063 +msgid "App Window (Webview)" +msgstr "Ventana de aplicación (vista web)" + +#: sl/SL_Menu.py:2063 +msgid "System Browser" +msgstr "Navegador del sistema" + +#: sl/SL_Menu.py:2073 +msgid "Select View Mode" +msgstr "Seleccionar modo de visualización" + +#: sl/SL_Menu.py:2080 +msgid "" +"View mode updated. Please restart the application for the changes to take " +"effect." +msgstr "" +"Modo de visualización actualizado. Reinicie la aplicación para que los " +"cambios surtan efecto." + +#: sl/SL_Menu.py:2091 +msgid "Restore Previous Version" +msgstr "Restaurar versión anterior" + +#: sl/SL_Menu.py:2096 msgid "The 'update' module is not available. This feature is disabled." -msgstr "El módulo 'update' no está disponible. Esta función está deshabilitada." +msgstr "" +"El módulo 'update' no está disponible. Esta función está deshabilitada." + +#: sl/SL_Menu.py:2101 +#, 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:2105 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." +"application will then restart. You may need to manually refresh your browser" +" if it does not reconnect automatically." msgstr "" "Esto restaurará la aplicación a la versión respaldada anteriormente. La " "aplicación se reiniciará. Es posible que deba actualizar manualmente su " "navegador si no se vuelve a conectar automáticamente." +#: sl/SL_Menu.py:2107 +msgid "Restore and Restart" +msgstr "Restaurar y reiniciar" + +#: sl/SL_Menu.py:2108 msgid "Restoring and restarting..." msgstr "Restaurando y reiniciando..." +#: sl/SL_Menu.py:2111 +msgid "Restore complete. Please restart the application." +msgstr "Restauración completa. Reinicie la aplicación." + +#: sl/SL_Menu.py:2117 +msgid "Change Language" +msgstr "Cambiar idioma" + +#: sl/SL_Menu.py:2140 +msgid "Select Language" +msgstr "Seleccionar idioma" + +#: sl/SL_Menu.py:2148 msgid "" "Language changed. Please restart the application for the changes to take " "effect." @@ -1317,185 +2594,251 @@ msgstr "" "Idioma cambiado. Por favor, reinicie la aplicación para que los cambios " "surtan efecto." -msgid "Step 2: Select Sub-Project from" -msgstr "Paso 2: Seleccionar Subproyecto de" - -msgid "No main project selected. Please start again." -msgstr "No se ha seleccionado ningún proyecto principal. Por favor, empiece de nuevo." - -msgid "Report Result" -msgstr "Resultado del Informe" - -msgid "Error: Could not find main project '{name}'." -msgstr "Error: No se pudo encontrar el proyecto principal '{name}'." - -msgid "Start work on sub-project" -msgstr "Iniciar trabajo en subproyecto" - -msgid "Show current work" -msgstr "Mostrar trabajo actual" - -msgid "Stop current work" -msgstr "Detener trabajo actual" - -msgid "Project Management" -msgstr "Gestión de Proyectos" - -msgid "Reporting" -msgstr "Informes" - -msgid "Settings" -msgstr "Configuración" - -msgid "Task Management" -msgstr "Gestión de Tareas" - -msgid "Add Project" -msgstr "Añadir Proyecto" - -msgid "List Projects" -msgstr "Listar Proyectos" - -msgid "Rename Project" -msgstr "Renombrar Proyecto" - -msgid "Close Project" -msgstr "Cerrar Proyecto" - -msgid "Re-open Project" -msgstr "Reabrir Proyecto" - -msgid "Delete Project" -msgstr "Eliminar Proyecto" - -msgid "List Inactive Projects" -msgstr "Listar Proyectos Inactivos" - -msgid "Demote Project to Task" -msgstr "Degradar Proyecto a Tarea" - -msgid "List Completed Projects" -msgstr "Listar Proyectos Completados" - -msgid "Add Task" -msgstr "Añadir Tarea" - -msgid "List Tasks" -msgstr "Listar Tareas" - -msgid "Rename Task" -msgstr "Renombrar Tarea" - -msgid "Close Task" -msgstr "Cerrar Tarea" - -msgid "Re-open Task" -msgstr "Reabrir Tarea" - -msgid "Delete Task" -msgstr "Eliminar Tarea" - -msgid "Move Task" -msgstr "Mover Tarea" - -msgid "List Inactive Tasks" -msgstr "Listar Tareas Inactivas" - -msgid "List All Closed Tasks" -msgstr "Listar Todas las Tareas Cerradas" - -msgid "Delete All Closed Tasks" -msgstr "Eliminar Todas las Tareas Cerradas" - -msgid "Promote Task to Project" -msgstr "Promover Tarea a Proyecto" - -msgid "Daily Report (Today)" -msgstr "Informe Diario (Hoy)" - -msgid "Daily Report (Specific Day)" -msgstr "Informe Diario (Día Específico)" - -msgid "Date Range Report" -msgstr "Informe por Rango de Fechas" - -msgid "Detailed Task Report" -msgstr "Informe Detallado de Tarea" - -msgid "Detailed Project Report" -msgstr "Informe Detallado de Proyecto" - -msgid "Detailed Daily Report" -msgstr "Informe Diario Detallado" - -msgid "Main Project Management" -msgstr "Gestión de Proyectos Principales" - -msgid "Start work on task" -msgstr "Iniciar trabajo en tarea" - -msgid "Handle projects and tasks" -msgstr "Gestionar proyectos y tareas" - -msgid "Select Action" -msgstr "Seleccionar Acción" - -msgid "Select Project" -msgstr "Seleccionar Proyecto" - -msgid "Select Task" -msgstr "Seleccionar Tarea" - -msgid "Back to Main Menu" -msgstr "Volver al Menú Principal" +#: sl/SL_Menu.py:2166 +msgid "Enable email import" +msgstr "Activar importación de correo" -msgid "Add" -msgstr "Añadir" +#: sl/SL_Menu.py:2167 +msgid "IMAP Server" +msgstr "Servidor IMAP" -msgid "Delete" -msgstr "Eliminar" +#: sl/SL_Menu.py:2168 +msgid "Port" +msgstr "Puerto" -msgid "Rename" -msgstr "Renombrar" +#: sl/SL_Menu.py:2169 +msgid "Username" +msgstr "Usuario" -msgid "Close" -msgstr "Cerrar" +#: sl/SL_Menu.py:2170 +msgid "Password" +msgstr "Contraseña" -msgid "Reopen" -msgstr "Reabrir" +#: sl/SL_Menu.py:2171 +msgid "Use SSL" +msgstr "Usar SSL" -msgid "Yes" -msgstr "Sí" +#: sl/SL_Menu.py:2184 +msgid "Email settings saved." +msgstr "Configuración de correo guardada." -msgid "No" -msgstr "No" +#: sl/SL_Menu.py:2198 sl/SL_Menu.py:2330 +msgid "Select Date" +msgstr "Seleccionar fecha" -msgid "Save" -msgstr "Guardar" +#: sl/SL_Menu.py:2199 sl/SL_Menu.py:2223 sl/SL_Menu.py:2287 sl/SL_Menu.py:2313 +#: sl/SL_Menu.py:2331 +msgid "Generate Report" +msgstr "Generar Informe" -msgid "Cancel" -msgstr "Cancelar" +#: sl/SL_Menu.py:2219 +msgid "Start Date" +msgstr "Fecha de inicio" -msgid "Confirm" -msgstr "Confirmar" +#: sl/SL_Menu.py:2221 +msgid "End Date" +msgstr "Fecha de finalización" -msgid "Submit" -msgstr "Enviar" +#: sl/SL_Menu.py:2346 +msgid "Report Result" +msgstr "Resultado del Informe" -msgid "Edit" -msgstr "Editar" +#: sl/SL_Menu.py:2375 +msgid "Export Report" +msgstr "Exportar informe" + +#~ msgid "" +#~ "\n" +#~ "Error: Failed to install dependencies. Please install them manually using: pip install -r {requirements_path}" +#~ msgstr "" +#~ "\n" +#~ "Error: No se pudieron instalar las dependencias. Por favor, instálelas manualmente usando: pip install -r {requirements_path}" + +#~ msgid "open" +#~ msgstr "abierto" + +#~ msgid "A task named '{task_name}' already exists in '{main_name}'." +#~ msgstr "Ya existe una tarea llamada '{task_name}' en '{main_name}'." + +#~ msgid "Main project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Proyecto principal '{old_name}' renombrado a '{new_name}'." + +#~ msgid "" +#~ "\n" +#~ "No time tracked for {date}." +#~ msgstr "" +#~ "\n" +#~ "No hay tiempo registrado para {date}." + +#~ msgid "Sub-Project Breakdown" +#~ msgstr "Desglose de Subproyectos" + +#~ msgid "7. Add Sub-Project" +#~ msgstr "7. Añadir Subproyecto" + +#~ msgid "8. List Sub-Projects" +#~ msgstr "8. Listar Subproyectos" + +#~ msgid "9. Rename Sub-Project" +#~ msgstr "9. Renombrar Subproyecto" + +#~ msgid "10. Close Sub-Project" +#~ msgstr "10. Cerrar Subproyecto" + +#~ msgid "11. Re-open Sub-Project" +#~ msgstr "11. Reabrir Subproyecto" + +#~ msgid "12. Delete Sub-Project" +#~ msgstr "12. Eliminar Subproyecto" + +#~ msgid "14. List Inactive Sub-Projects" +#~ msgstr "14. Listar Subproyectos Inactivos" + +#~ msgid "15. List All Closed Sub-Projects" +#~ msgstr "15. Listar Todos los Subproyectos Cerrados" + +#~ msgid "16. Delete All Closed Sub-Projects" +#~ msgstr "16. Eliminar Todos los Subproyectos Cerrados" + +#~ msgid "17. Promote Sub-Project to Main-Project" +#~ msgstr "17. Promover Subproyecto a Proyecto Principal" + +#~ msgid "" +#~ "\n" +#~ "--- Add New Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Añadir Nuevo Subproyecto ---" + +#~ msgid "" +#~ "\n" +#~ "--- List Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Listar Subproyectos ---" + +#~ msgid "" +#~ "\n" +#~ "--- Rename Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Renombrar Subproyecto ---" + +#~ msgid "Sub-project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Subproyecto '{old_name}' renombrado a '{new_name}'." + +#~ msgid "" +#~ "\n" +#~ "--- Delete Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Eliminar Subproyecto ---" + +#~ msgid "" +#~ "\n" +#~ "--- List All Closed Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Listar Todos los Subproyectos Cerrados ---" -msgid "Generate Report" -msgstr "Generar Informe" +#~ msgid "" +#~ "\n" +#~ "--- Delete All Closed Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Eliminar Todos los Subproyectos Cerrados ---" + +#~ msgid "" +#~ "\n" +#~ "--- List Inactive Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Listar Subproyectos Inactivos ---" + +#~ msgid "" +#~ "\n" +#~ "Inactive Sub-Projects (>{weeks} weeks):" +#~ msgstr "" +#~ "\n" +#~ "Subproyectos Inactivos (>{weeks} semanas):" + +#~ msgid " Sub-Project: {name}" +#~ msgstr " Subproyecto: {name}" + +#~ msgid "No sub-projects found inactive for more than {weeks} week." +#~ msgid_plural "No sub-projects found inactive for more than {weeks} weeks." +#~ msgstr[0] "" +#~ "No se encontró ningún subproyecto inactivo por más de {weeks} semana." +#~ msgstr[1] "" +#~ "No se encontraron subproyectos inactivos por más de {weeks} semanas." -msgid "Start" -msgstr "Iniciar" +#~ msgid "" +#~ "\n" +#~ "--- Move Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Mover Subproyecto ---" + +#~ msgid "4. Detailed Sub-Project Report" +#~ msgstr "4. Informe Detallado de Subproyecto" + +#~ msgid "" +#~ "\n" +#~ "--- Detailed Sub-Project Report ---" +#~ msgstr "" +#~ "\n" +#~ "--- Informe Detallado de Subproyecto ---" + +#~ msgid "Invalid choice. Please enter a number from 0 to 3." +#~ msgstr "Elección inválida. Por favor, introduzca un número del 0 al 3." + +#~ msgid "1. Start work on sub-project" +#~ msgstr "1. Iniciar trabajo en subproyecto" + +#~ msgid "4. Handle projects and sub-projects" +#~ msgstr "4. Gestionar proyectos y subproyectos" + +#~ msgid "Work started on '{sub_name}' in project '{main_name}'." +#~ msgstr "Trabajo iniciado en '{sub_name}' en el proyecto '{main_name}'." + +#~ msgid " Sub-Project: {name}" +#~ msgstr " Subproyecto: {name}" + +#~ msgid "Handle projects and sub-projects" +#~ msgstr "Gestionar proyectos y subproyectos" + +#~ msgid "A sub-project with this name already exists in this main project." +#~ msgstr "Ya existe un subproyecto con este nombre en este proyecto principal." + +#~ msgid "Error: Could not find main project '{name}'." +#~ msgstr "Error: No se pudo encontrar el proyecto principal '{name}'." + +#~ msgid "Start work on sub-project" +#~ msgstr "Iniciar trabajo en subproyecto" + +#~ msgid "Add" +#~ msgstr "Añadir" + +#~ msgid "Close" +#~ msgstr "Cerrar" + +#~ msgid "Reopen" +#~ msgstr "Reabrir" + +#~ msgid "Yes" +#~ msgstr "Sí" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "Confirm" +#~ msgstr "Confirmar" -msgid "Stop" -msgstr "Detener" +#~ msgid "Submit" +#~ msgstr "Enviar" -msgid "Step 1: Select Main Project" -msgstr "Paso 1: Seleccionar Proyecto Principal" +#~ msgid "Stop" +#~ msgstr "Detener" -msgid "Refresh" -msgstr "Actualizar" +#~ msgid "Refresh" +#~ msgstr "Actualizar" diff --git a/locale/fr/LC_MESSAGES/timetracker.mo b/locale/fr/LC_MESSAGES/timetracker.mo index 9b198b9..d262ee3 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 97e912d..d57467a 100644 --- a/locale/fr/LC_MESSAGES/timetracker.po +++ b/locale/fr/LC_MESSAGES/timetracker.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: TimeControl\n" -"Report-Msgid-Bugs-To: https://github.com/FrankFaulstich/TimeControl/issues\n" -"POT-Creation-Date: 2026-01-01 14:50+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-18 12:24+0200\n" "PO-Revision-Date: 2026-01-01 15:00+0200\n" "Last-Translator: Frank Faulstich\n" "Language-Team: French\n" @@ -16,1349 +16,2787 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -msgid "Edit current task" -msgstr "Modifier la tâche actuelle" +#: TimeTrackerCLI.py:25 +msgid "" +"\n" +"--- Project Management ---" +msgstr "" +"\n" +"--- Gestion des projets ---" -#: TimeTracker.py:63 -msgid "Warning: Could not read {file}. Error: {error}" -msgstr "Avertissement : Impossible de lire {file}. Erreur : {error}" +#: TimeTrackerCLI.py:26 +msgid "1. Main Project Management" +msgstr "1. Gestion des projets principaux" -#: TimeTracker.py:75 -msgid "Some required packages are missing. Attempting to install them..." -msgstr "Certains paquets requis sont manquants. Tentative d'installation..." +#: TimeTrackerCLI.py:27 +msgid "2. Task Management" +msgstr "2. Gestion des tâches" -#: TimeTracker.py:78 -msgid "Installing {package}..." -msgstr "Installation de {package}..." +#: TimeTrackerCLI.py:29 +msgid "0. Back to Main Menu" +msgstr "0. Retour au menu principal" + +#: TimeTrackerCLI.py:32 TimeTrackerCLI.py:60 TimeTrackerCLI.py:257 +#: TimeTrackerCLI.py:662 TimeTrackerCLI.py:701 TimeTrackerCLI.py:811 +#: TimeTrackerCLI.py:953 +msgid "Choice: " +msgstr "Choix : " + +#: TimeTrackerCLI.py:41 +msgid "Invalid choice. Please enter a number from 0 to 2." +msgstr "Choix invalide. Veuillez entrer un nombre entre 0 et 2." -#: TimeTracker.py:81 +#: TimeTrackerCLI.py:46 msgid "" "\n" -"Dependencies installed successfully." +"--- Main Project Management ---" msgstr "" "\n" -"Dépendances installées avec succès." +"--- Gestion du projet principal ---" -#: TimeTracker.py:82 -msgid "Please restart the application for the changes to take effect." -msgstr "Veuillez redémarrer l'application pour que les changements prennent effet." +#: TimeTrackerCLI.py:47 +msgid "1. Add Main Project" +msgstr "1. Ajouter un projet principal" + +#: TimeTrackerCLI.py:48 +msgid "2. List Main Projects" +msgstr "2. Liste des projets principaux" + +#: TimeTrackerCLI.py:49 +msgid "3. Rename Main Project" +msgstr "3. Renommer le projet principal" + +#: TimeTrackerCLI.py:50 +msgid "4. Close Main Project" +msgstr "4. Fermer le projet principal" + +#: TimeTrackerCLI.py:51 +msgid "5. Re-open Main Project" +msgstr "5. Rouvrir le projet principal" + +#: TimeTrackerCLI.py:52 +msgid "6. Delete Main Project" +msgstr "6. Supprimer le projet principal" + +#: TimeTrackerCLI.py:53 +msgid "7. List Inactive Main Projects" +msgstr "7. Liste des projets principaux inactifs" + +#: TimeTrackerCLI.py:54 +msgid "8. Demote Main-Project to Sub-Project" +msgstr "8. Rétrograder le projet principal en sous-projet" + +#: TimeTrackerCLI.py:55 +msgid "9. List Completed Main Projects" +msgstr "9. Liste terminée Principaux projets" -#: TimeTracker.py:85 +#: TimeTrackerCLI.py:57 TimeTrackerCLI.py:254 +msgid "0. Back" +msgstr "0. Retour" + +#: TimeTrackerCLI.py:64 msgid "" "\n" -"Error: Failed to install dependencies. Please install them manually using: " -"pip install -r {requirements_path}" +"--- Add New Main Project ---" msgstr "" "\n" -"Erreur : Échec de l'installation des dépendances. Veuillez les installer " -"manuellement avec : pip install -r {requirements_path}" - -#: TimeTracker.py:88 -msgid "An unexpected error occurred during dependency check: {error}" -msgstr "Une erreur inattendue s'est produite lors de la vérification des dépendances : {error}" +"--- Ajouter un nouveau projet principal ---" -#: TimeTracker.py:112 -msgid "Info: Report content has been copied to the clipboard." -msgstr "Info : Le contenu du rapport a été copié dans le presse-papiers." +#: TimeTrackerCLI.py:65 +msgid "Name of the main project: " +msgstr "Nom du projet principal :" -#: TimeTracker.py:114 -msgid "Warning: Could not copy to clipboard. Error: {error}" -msgstr "Avertissement : Impossible de copier dans le presse-papiers. Erreur : {error}" +#: TimeTrackerCLI.py:67 +#, python-brace-format +msgid "Main project '{name}' added." +msgstr "Projet principal '{name}' ajouté." -#: TimeTracker.py:116 +#: TimeTrackerCLI.py:70 msgid "" -"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " -"install pyperclip`)." +"\n" +"--- List Main Projects ---" msgstr "" -"Avertissement : Impossible de copier dans le presse-papiers. Veuillez " -"installer 'pyperclip' (`pip install pyperclip`)." - -#: TimeTracker.py:130 -msgid "{hours} hour ({dlp} DLP)" -msgid_plural "{hours} hours ({dlp} DLP)" -msgstr[0] "{hours} heure ({dlp} DLP)" -msgstr[1] "{hours} heures ({dlp} DLP)" +"\n" +"--- Liste des projets principaux ---" +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1246 +#: sl/SL_Menu.py:1310 msgid "closed" msgstr "fermé" -msgid "open" -msgstr "ouvert" +#: TimeTrackerCLI.py:79 +msgid "No main projects found." +msgstr "Aucun projet principal trouvé." -msgid "all" -msgstr "tous" - -#: TimeTracker.py:350 -msgid "Source project '{name}' not found." -msgstr "Projet source '{name}' non trouvé." +#: TimeTrackerCLI.py:82 +msgid "" +"\n" +"--- Rename Main Project ---" +msgstr "" +"\n" +"--- Renommer le projet principal ---" + +#: TimeTrackerCLI.py:85 +msgid "No main projects to rename." +msgstr "Aucun projet principal à renommer." + +#: TimeTrackerCLI.py:88 +msgid "Select an open main project to rename:" +msgstr "Sélectionnez un projet principal ouvert à renommer :" + +#: TimeTrackerCLI.py:93 TimeTrackerCLI.py:117 TimeTrackerCLI.py:139 +#: TimeTrackerCLI.py:162 TimeTrackerCLI.py:272 TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:333 TimeTrackerCLI.py:370 TimeTrackerCLI.py:405 +#: TimeTrackerCLI.py:441 TimeTrackerCLI.py:568 TimeTrackerCLI.py:604 +#: TimeTrackerCLI.py:855 TimeTrackerCLI.py:888 TimeTrackerCLI.py:969 +msgid "Enter the number of the main project: " +msgstr "Entrez le numéro du projet principal :" + +#: TimeTrackerCLI.py:96 TimeTrackerCLI.py:349 +#, python-brace-format +msgid "Enter the new name for '{name}': " +msgstr "Entrez le nouveau nom pour '{name}' : " -#: TimeTracker.py:352 -msgid "Destination project '{name}' not found." -msgstr "Projet de destination '{name}' non trouvé." +#: TimeTrackerCLI.py:99 +#, python-brace-format +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}'." -#: tt/TimeTracker.py:356 -msgid "A task named '{task_name}' already exists in '{main_name}'." -msgstr "Une tâche nommée '{task_name}' existe déjà dans '{main_name}'." +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1283 +#, python-brace-format +msgid "" +"Error: Could not rename. The new name '{new_name}' might already exist." +msgstr "" +"Erreur : Impossible de renommer. Le nouveau nom '{new_name}' existe peut-" +"être déjà." + +#: TimeTrackerCLI.py:103 TimeTrackerCLI.py:125 TimeTrackerCLI.py:147 +#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:221 TimeTrackerCLI.py:287 +#: TimeTrackerCLI.py:319 TimeTrackerCLI.py:356 TimeTrackerCLI.py:391 +#: TimeTrackerCLI.py:426 TimeTrackerCLI.py:463 TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:589 TimeTrackerCLI.py:794 TimeTrackerCLI.py:875 +#: TimeTrackerCLI.py:894 TimeTrackerCLI.py:992 +msgid "Invalid input. Please enter a valid number." +msgstr "Entrée invalide. Veuillez entrer un numéro valide." -msgid "Task '{task_name}' moved successfully." -msgstr "La tâche '{task_name}' a été déplacée avec succès." +#: TimeTrackerCLI.py:106 +msgid "" +"\n" +"--- Close Main Project ---" +msgstr "" +"\n" +"--- Fermer le projet principal ---" -#: TimeTracker.py:378 -msgid "A project named '{name}' already exists." -msgstr "Un projet nommé '{name}' existe déjà." +#: TimeTrackerCLI.py:109 +msgid "No open main projects to close." +msgstr "Aucun projet principal ouvert à fermer." -msgid "Project '{old_name}' renamed to '{new_name}'." -msgstr "Le projet '{old_name}' a été renommé en '{new_name}'." +#: TimeTrackerCLI.py:112 +msgid "Select a main project to close:" +msgstr "Sélectionnez un projet principal à fermer :" -#: TimeTracker.py:398 -msgid "Task '{task_name}' not found in '{main_name}'." -msgstr "La tâche '{task_name}' n'a pas été trouvée dans '{main_name}'." +#: TimeTrackerCLI.py:121 +#, python-brace-format +msgid "Main project '{name}' has been closed." +msgstr "Le projet principal '{name}' a été fermé." -#: TimeTracker.py:406 -msgid "General" -msgstr "Général" +#: TimeTrackerCLI.py:123 TimeTrackerCLI.py:145 +msgid "Error: Main project not found." +msgstr "Erreur : projet principal introuvable." -#: TimeTracker.py:410 -msgid "Task '{task_name}' was promoted to a new main project." -msgstr "La tâche '{task_name}' a été promue en nouveau projet principal." +#: TimeTrackerCLI.py:128 +msgid "" +"\n" +"--- Re-open Main Project ---" +msgstr "" +"\n" +"--- Rouvrir le projet principal ---" -#: TimeTracker.py:439 -msgid "Project to demote '{name}' not found." -msgstr "Le projet à rétrograder '{name}' n'a pas été trouvé." +#: TimeTrackerCLI.py:131 +msgid "No closed main projects to reopen." +msgstr "Aucun projet principal fermé à rouvrir." -#: TimeTracker.py:441 -msgid "New parent project '{name}' not found." -msgstr "Le nouveau projet parent '{name}' n'a pas été trouvé." +#: TimeTrackerCLI.py:134 +msgid "Select a main project to reopen:" +msgstr "Sélectionnez un projet principal à rouvrir :" -#: TimeTracker.py:455 -msgid "Task '{old_name}' has been renamed to '{new_name}'." -msgstr "La tâche '{old_name}' a été renommée en '{new_name}'." +#: TimeTrackerCLI.py:143 +#, python-brace-format +msgid "Main project '{name}' has been reopened." +msgstr "Le projet principal '{name}' a été rouvert." -#: TimeTracker.py:463 +#: TimeTrackerCLI.py:150 msgid "" -"Project '{demoted_name}' was demoted to a task under " -"'{parent_name}'." +"\n" +"--- Delete Main Project ---" msgstr "" -"Le projet '{demoted_name}' a été rétrogradé en tâche sous " -"'{parent_name}'." +"\n" +"--- Supprimer le projet principal ---" -msgid "Task Planning" -msgstr "Planification des tâches" +#: TimeTrackerCLI.py:153 +msgid "No main projects to delete." +msgstr "Aucun projet principal à supprimer." -msgid "Today View" -msgstr "Vue du jour" +#: TimeTrackerCLI.py:156 +msgid "Select a main project to delete:" +msgstr "Sélectionnez un projet principal à supprimer :" -msgid "E-Mail Task Assignment" -msgstr "Attribution des tâches par e-mail" +#: TimeTrackerCLI.py:165 +#, python-brace-format +msgid "Main project '{name}' deleted." +msgstr "Projet principal '{name}' supprimé." -msgid "Fetching emails..." -msgstr "Récupération des e-mails..." +#: TimeTrackerCLI.py:167 TimeTrackerCLI.py:285 +#, python-brace-format +msgid "Error: Main project '{name}' not found." +msgstr "Erreur : le projet principal '{name}' est introuvable." -msgid "Error fetching emails: {error}" -msgstr "Erreur lors de la récupération des e-mails : {error}" +#: TimeTrackerCLI.py:172 +msgid "" +"\n" +"--- List Inactive Main-Projects ---" +msgstr "" +"\n" +"--- Liste des projets principaux inactifs ---" -msgid "{count} new tasks created from emails." -msgstr "{count} nouvelles tâches créées à partir des e-mails." +#: TimeTrackerCLI.py:174 +msgid "Enter the number of weeks without activity (e.g., 8): " +msgstr "Entrez le nombre de semaines sans activité (ex: 8) : " -msgid "No new emails found." -msgstr "Aucun nouvel e-mail trouvé." +#: TimeTrackerCLI.py:176 TimeTrackerCLI.py:518 +msgid "Please enter a positive number." +msgstr "Veuillez entrer un nombre positif." -msgid "No unassigned email tasks available." -msgstr "Aucune tâche par e-mail non attribuée disponible." +#: TimeTrackerCLI.py:182 +#, python-brace-format +msgid "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" +msgstr "" +"\n" +"Projets principaux inactifs (>{weeks} semaines) :" -msgid "Assign Project" -msgstr "Attribuer un projet" +#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:526 +#, python-brace-format +msgid " - Main Project: {name}" +msgstr " - Projet principal : {name}" -msgid "Edit Details" -msgstr "Modifier les détails" +#: TimeTrackerCLI.py:185 TimeTrackerCLI.py:528 +#, python-brace-format +msgid " Last Activity: {date}" +msgstr " Dernière activité : {date}" -msgid "Due Date" -msgstr "Date d'échéance" +#: TimeTrackerCLI.py:188 +#, python-brace-format +msgid "No main-projects found inactive for more than {weeks} weeks." +msgstr "" +"Aucun projet principal n'a été trouvé inactif pendant plus " +"de{weeks}semaines." -msgid "Clear" -msgstr "Effacer" +#: TimeTrackerCLI.py:191 TimeTrackerCLI.py:534 +msgid "Invalid input. Please enter a valid number for weeks." +msgstr "Entrée invalide. Veuillez entrer un nombre valide pour les semaines." -msgid "Task Name" -msgstr "Nom de la tâche" +#: TimeTrackerCLI.py:194 +msgid "" +"\n" +"--- Demote Main-Project to Sub-Project ---" +msgstr "" +"\n" +"--- Rétrograder un projet principal en sous-projet ---" -msgid "Task details updated successfully." -msgstr "Détails de la tâche mis à jour avec succès." +#: TimeTrackerCLI.py:197 +msgid "You need at least two open main projects for this operation." +msgstr "" +"Vous avez besoin d'au moins deux projets principaux ouverts pour cette " +"opération." -msgid "Error updating task details." -msgstr "Erreur lors de la mise à jour des détails de la tâche." +#: TimeTrackerCLI.py:202 +msgid "Select the main project to demote:" +msgstr "Sélectionnez le projet principal à rétrograder :" -msgid "Email Settings" -msgstr "Paramètres de messagerie" +#: TimeTrackerCLI.py:205 +msgid "Enter the number of the project to demote: " +msgstr "Entrez le numéro du projet à rétrograder : " -msgid "Enable email import" -msgstr "Activer l'importation d'e-mails" +#: TimeTrackerCLI.py:209 +msgid "" +"\n" +"Select the new parent main project:" +msgstr "" +"\n" +"Sélectionnez le nouveau projet principal parent :" -msgid "Username" -msgstr "Nom d'utilisateur" +#: TimeTrackerCLI.py:213 +msgid "Enter the number of the new parent project: " +msgstr "Entrez le numéro du nouveau projet parent : " -msgid "Password" -msgstr "Mot de passe" +#: TimeTrackerCLI.py:224 +msgid "" +"\n" +"--- List Completed Main Projects ---" +msgstr "" +"\n" +"--- Liste des principaux projets terminés ---" -msgid "Use SSL" -msgstr "Utiliser SSL" +#: TimeTrackerCLI.py:227 +msgid "Main projects with only closed or no sub-projects:" +msgstr "" +"Principaux projets avec uniquement des sous-projets fermés ou aucun sous-" +"projet :" -msgid "Email settings saved." -msgstr "Paramètres de messagerie enregistrés." +#: TimeTrackerCLI.py:231 +msgid "No completed main projects found." +msgstr "Aucun projet principal terminé n'a été trouvé." -msgid "4. Change Streamlit Port" -msgstr "4. Changer le port Streamlit" +#: TimeTrackerCLI.py:235 +msgid "Invalid choice. Please enter a number from 0 to 9." +msgstr "Choix invalide. Veuillez entrer un nombre entre 0 et 9." -msgid "Current Streamlit Port: {port}" -msgstr "Port Streamlit actuel : {port}" +#: TimeTrackerCLI.py:240 +msgid "" +"\n" +"--- Task Management ---" +msgstr "" +"\n" +"--- Gestion des tâches ---" -msgid "Enter new port (or press Enter to keep current): " -msgstr "Entrez le nouveau port (ou appuyez sur Entrée pour conserver l'actuel) : " +#: TimeTrackerCLI.py:241 +msgid "1. Add Task" +msgstr "1. Ajouter une tâche" -msgid "Port updated to {port}. Please restart Streamlit for changes to take effect." -msgstr "Port mis à jour vers {port}. Veuillez redémarrer Streamlit pour que les changements prennent effet." +#: TimeTrackerCLI.py:242 +msgid "2. List Tasks" +msgstr "2. Liste des tâches" -msgid "Work started on '{task_name}' in project '{main_name}'." -msgstr "Travail commencé sur '{task_name}' dans le projet '{main_name}'." +#: TimeTrackerCLI.py:243 +msgid "3. Rename Task" +msgstr "3. Renommer la tâche" -msgid "daily" -msgstr "quotidien" +#: TimeTrackerCLI.py:244 +msgid "4. Close Task" +msgstr "4. Fermer la tâche" -msgid "1. Main Project Management" -msgstr "1. Gestion des projets principaux" +#: TimeTrackerCLI.py:245 +msgid "5. Re-open Task" +msgstr "5. Rouvrir la tâche" -msgid "2. Task Management" -msgstr "2. Gestion des tâches" +#: TimeTrackerCLI.py:246 +msgid "6. Delete Task" +msgstr "6. Supprimer la tâche" -msgid "on all business days" -msgstr "tous les jours ouvrables" +#: TimeTrackerCLI.py:247 +msgid "7. Move Task" +msgstr "7. Déplacer la tâche" -msgid "1. Add Main Project" -msgstr "1. Ajouter un projet principal" +#: TimeTrackerCLI.py:248 +msgid "8. List Inactive Tasks" +msgstr "8. Liste des tâches inactives" -msgid "6. Demote Main-Project to Task" -msgstr "6. Rétrograder un projet principal en tâche" +#: TimeTrackerCLI.py:249 +msgid "9. List All Closed Tasks" +msgstr "9. Liste de toutes les tâches fermées" -msgid "weekly" -msgstr "hebdomadaire" +#: TimeTrackerCLI.py:250 +msgid "10. Delete All Closed Tasks" +msgstr "10. Supprimer toutes les tâches fermées" -#: TimeTracker.py:651 -msgid "- {name}: {hours} hour" -msgid_plural "- {name}: {hours} hours" -msgstr[0] "- {name} : {hours} heure" -msgstr[1] "- {name} : {hours} heures" +#: TimeTrackerCLI.py:251 +msgid "11. Promote Task to Main-Project" +msgstr "11. Promouvoir la tâche au projet principal" -#: TimeTracker.py:657 -msgid "monthly" -msgstr "mensuel" +#: TimeTrackerCLI.py:252 +msgid "12. Edit Task (Name & Due Date)" +msgstr "12. Modifier la tâche (nom et date d'échéance)" -msgid "## {name} ({hours} hour)\n" -msgid_plural "## {name} ({hours} hours)\n" -msgstr[0] "## {name} ({hours} heure)\n" -msgstr[1] "## {name} ({hours} heures)\n" +#: TimeTrackerCLI.py:261 +msgid "" +"\n" +"--- Add New Task ---" +msgstr "" +"\n" +"--- Ajouter une nouvelle tâche ---" -#: TimeTracker.py:665 -msgid "# Daily Time Report: {date}\n" -msgstr "# Rapport de temps journalier : {date}\n" +#: TimeTrackerCLI.py:264 TimeTrackerCLI.py:960 +msgid "No open main projects found. Please add one first." +msgstr "Aucun projet principal ouvert trouvé. Veuillez d'abord en ajouter un." -msgid "userdefined" -msgstr "# Rapport de temps journalier : {date}\n" +#: TimeTrackerCLI.py:267 +msgid "Select a main project to add a task to:" +msgstr "Sélectionnez un projet principal auquel ajouter une tâche :" -#: TimeTracker.py:666 -msgid "\n**Total Daily Time: {hours} hour**" -msgid_plural "\n**Total Daily Time: {hours} hours**" -msgstr[0] "\n**Temps total journalier : {hours} heure**" -msgstr[1] "\n**Temps total journalier : {hours} heures**" +#: TimeTrackerCLI.py:275 +msgid "Name of the new task: " +msgstr "Nom de la nouvelle tâche :" -#: TimeTracker.py:670 -msgid "No time tracked for {date}." -msgstr "Aucun temps suivi pour le {date}." +#: TimeTrackerCLI.py:276 +msgid "Due date (YYYY-MM-DD, press Enter to skip): " +msgstr "Date d'échéance (AAAA-MM-JJ, appuyez sur Entrée pour ignorer) :" -msgid "Days" -msgstr "Aucun temps suivi pour le {date}." +#: TimeTrackerCLI.py:278 +msgid "Add to 'Today' list? (y/n, default n): " +msgstr "Ajouter à la liste « Aujourd'hui » ? (o/n, n par défaut) :" -#: TimeTracker.py:708 -msgid "# Time Report: {start_date} to {end_date}\n" -msgstr "# Rapport de temps : du {start_date} au {end_date}\n" +#: TimeTrackerCLI.py:280 +msgid "Note (Markdown supported): " +msgstr "Remarque (Markdown pris en charge) :" + +#: TimeTrackerCLI.py:283 +#, python-brace-format +msgid "Task '{task_name}' added." +msgstr "Tâche '{task_name}' ajoutée." -#: TimeTracker.py:709 +#: TimeTrackerCLI.py:290 msgid "" "\n" -"**Total Time in Period: {total_time}**" +"--- List Tasks ---" msgstr "" "\n" -"**Temps total sur la période : {total_time}**" +"--- Liste des tâches ---" -#: TimeTracker.py:721 -msgid "No time tracked between {start_date} and {end_date}." -msgstr "Aucun temps suivi entre le {start_date} et le {end_date}." +#: TimeTrackerCLI.py:293 +msgid "No main projects found. Cannot list tasks." +msgstr "Aucun projet principal trouvé. Impossible de lister les tâches." -msgid "Notes (Markdown)" -msgstr "Aucun temps suivi entre le {start_date} et le {end_date}." +#: TimeTrackerCLI.py:296 +msgid "Select the main project whose tasks you want to list:" +msgstr "" +"Sélectionnez le projet principal dont vous souhaitez lister les tâches :" -msgid "now" -msgstr "maintenant" +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1307 +#, python-brace-format +msgid "Tasks for '{name}':" +msgstr "Tâches pour '{name}' :" -msgid "# Detailed Daily Report: {date}" -msgstr "# Rapport journalier détaillé : {date}" +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:524 sl/SL_Menu.py:612 +msgid "Due" +msgstr "Due" -msgid "No notes provided." -msgstr "Aucune note fournie." +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:409 sl/SL_Menu.py:419 sl/SL_Menu.py:484 +#: sl/SL_Menu.py:546 sl/SL_Menu.py:747 sl/SL_Menu.py:1603 sl/SL_Menu.py:1771 +msgid "Today" +msgstr "Aujourd'hui" -msgid "\nNo time tracked for {date}." -msgstr "\nAucun temps suivi pour le {date}." +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:2276 +#, python-brace-format +msgid "No tasks found for '{name}'." +msgstr "Aucune tâche trouvée pour '{name}'." -msgid "Active (working on '{task_name}')" -msgstr "Actif (travail sur '{task_name}')" +#: TimeTrackerCLI.py:322 +msgid "" +"\n" +"--- Rename Task ---" +msgstr "" +"\n" +"--- Renommer la tâche ---" -msgid "Add New Project" -msgstr "Ajouter un nouveau projet" +#: TimeTrackerCLI.py:325 TimeTrackerCLI.py:362 TimeTrackerCLI.py:397 +#: TimeTrackerCLI.py:432 TimeTrackerCLI.py:560 +msgid "No open main projects found." +msgstr "Aucun projet principal ouvert trouvé." -msgid "# Detailed Report for Task: {name}" -msgstr "# Rapport détaillé pour la tâche : {name}" +#: TimeTrackerCLI.py:328 TimeTrackerCLI.py:365 TimeTrackerCLI.py:400 +#: TimeTrackerCLI.py:435 TimeTrackerCLI.py:599 TimeTrackerCLI.py:852 +msgid "Select the main project:" +msgstr "Sélectionnez le projet principal :" -msgid "Part of Main Project: {name}" -msgstr "Fait partie du projet principal : {name}" +#: TimeTrackerCLI.py:338 +#, python-brace-format +msgid "No tasks to rename for '{name}'." +msgstr "Aucune tâche à renommer pour '{name}'." -msgid "Name of the new task" -msgstr "Nom de la nouvelle tâche" +#: TimeTrackerCLI.py:341 +#, python-brace-format +msgid "Select a task from '{name}' to rename:" +msgstr "Sélectionnez une tâche parmi '{name}' à renommer :" -msgid "Active (currently running)" -msgstr "Actif (en cours)" +#: TimeTrackerCLI.py:345 TimeTrackerCLI.py:382 TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:453 TimeTrackerCLI.py:489 TimeTrackerCLI.py:580 +#: TimeTrackerCLI.py:867 TimeTrackerCLI.py:982 +msgid "Enter the number of the task: " +msgstr "Entrez le numéro de la tâche :" -msgid "Last activity" -msgstr "Dernière activité" +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1358 +#, python-brace-format +msgid "Task '{old_name}' renamed to '{new_name}'." +msgstr "Tâche '{old_name}' renommée en '{new_name}'." -msgid "Today" -msgstr "Aujourd'hui" +#: TimeTrackerCLI.py:354 +msgid "" +"Error: Could not rename. The new name might already exist or the project was" +" not found." +msgstr "" +"Erreur : Impossible de renommer. Le nouveau nom existe peut-être déjà ou le " +"projet n'a pas été trouvé." -msgid "Inactive" -msgstr "Inactif" +#: TimeTrackerCLI.py:359 +msgid "" +"\n" +"--- Close Task ---" +msgstr "" +"\n" +"--- Fermer la tâche ---" -msgid "Status" -msgstr "Statut" +#: TimeTrackerCLI.py:375 +#, python-brace-format +msgid "No open tasks to close for '{name}'." +msgstr "Aucune tâche ouverte à fermer pour '{name}'." + +#: TimeTrackerCLI.py:378 +#, python-brace-format +msgid "Select a task from '{name}' to close:" +msgstr "Sélectionnez une tâche dans «{name}» pour la fermer :" + +#: TimeTrackerCLI.py:387 +#, python-brace-format +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:945 sl/SL_Menu.py:990 sl/SL_Menu.py:1036 +msgid "Error: Main project or task not found." +msgstr "Erreur : projet ou tâche principal introuvable." + +#: TimeTrackerCLI.py:394 +msgid "" +"\n" +"--- Re-open Task ---" +msgstr "" +"\n" +"--- Réouvrir la tâche ---" -msgid "Recurring" -msgstr "Récurrent" +#: TimeTrackerCLI.py:410 +#, python-brace-format +msgid "No closed tasks to reopen for '{name}'." +msgstr "Aucune tâche fermée à rouvrir pour '{name}'." -msgid "First entry" -msgstr "Première entrée" +#: TimeTrackerCLI.py:413 +#, python-brace-format +msgid "Select a task from '{name}' to reopen:" +msgstr "Sélectionnez une tâche dans «{name}» pour la rouvrir :" -msgid "Total recorded time" -msgstr "Temps total enregistré" +#: TimeTrackerCLI.py:422 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been reopened." +msgstr "La tâche «{task_name}» dans «{main_name}» a été rouverte." -msgid "Frequency" -msgstr "Fréquence" +#: TimeTrackerCLI.py:429 +msgid "" +"\n" +"--- Delete Task ---" +msgstr "" +"\n" +"--- Supprimer la tâche ---" -msgid "Total work sessions" -msgstr "Nombre total de sessions de travail" +#: TimeTrackerCLI.py:446 +#, python-brace-format +msgid "No tasks to delete for '{name}'." +msgstr "Aucune tâche à supprimer pour '{name}'." -msgid "Average session duration" -msgstr "Durée moyenne des sessions" +#: TimeTrackerCLI.py:449 +#, python-brace-format +msgid "Select a task from '{name}' to delete:" +msgstr "Sélectionnez une tâche de '{name}' à supprimer :" -msgid "Edit" -msgstr "Modifier" +#: TimeTrackerCLI.py:458 +#, python-brace-format +msgid "Task '{task_name}' deleted from '{main_name}'." +msgstr "Tâche '{task_name}' supprimée de '{main_name}'." -msgid "Weekday Distribution" -msgstr "Répartition par jour de la semaine" +#: TimeTrackerCLI.py:466 +msgid "" +"\n" +"--- Move Task ---" +msgstr "" +"\n" +"--- Déplacer une tâche ---" -msgid "Monday" -msgstr "Lundi" +#: TimeTrackerCLI.py:469 +msgid "You need at least two open main projects to move a task." +msgstr "" +"Vous avez besoin d'au moins deux projets principaux ouverts pour déplacer " +"une tâche." -msgid "Tuesday" -msgstr "Mardi" +#: TimeTrackerCLI.py:474 +msgid "Select the source main project:" +msgstr "Sélectionnez le projet principal source :" -msgid "Wednesday" -msgstr "Mercredi" +#: TimeTrackerCLI.py:477 +msgid "Enter the number of the source main project: " +msgstr "Entrez le numéro du projet principal source : " -msgid "Thursday" -msgstr "Jeudi" +#: TimeTrackerCLI.py:483 +#, python-brace-format +msgid "No tasks to move from '{name}'." +msgstr "Aucune tâche à déplacer de «{name}»." -msgid "Friday" -msgstr "Vendredi" +#: TimeTrackerCLI.py:486 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to move:" +msgstr "" +"\n" +"Sélectionnez une tâche dans «{name}» à déplacer :" -msgid "Saturday" -msgstr "Samedi" +#: TimeTrackerCLI.py:494 +msgid "" +"\n" +"Select the destination main project:" +msgstr "" +"\n" +"Sélectionnez le projet principal de destination :" -msgid "Sunday" -msgstr "Dimanche" +#: TimeTrackerCLI.py:499 +msgid "Enter the number of the destination main project: " +msgstr "Entrez le numéro du projet principal de destination : " -msgid "Preview" -msgstr "Aperçu" +#: TimeTrackerCLI.py:505 +#, python-brace-format +msgid "" +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." +msgstr "" +"Déplacement réussi de «{task_name}» de «{source_main_project}» à " +"«{dest_main_project}»." -msgid "Daily Breakdown" -msgstr "Répartition journalière" +#: TimeTrackerCLI.py:507 +#, python-brace-format +msgid "Error: {message}" +msgstr "Erreur : {message}" -msgid "Duration" -msgstr "Durée" +#: TimeTrackerCLI.py:514 +msgid "" +"\n" +"--- List Inactive Tasks ---" +msgstr "" +"\n" +"--- Liste des tâches inactives ---" -msgid "Add Task" -msgstr "Ajouter une tâche" +#: TimeTrackerCLI.py:516 +msgid "Enter the number of weeks without activity (e.g., 4): " +msgstr "Entrez le nombre de semaines sans activité (ex: 4) : " -msgid "# Detailed Report for Main Project: {name}" -msgstr "# Rapport détaillé pour le projet principal : {name}" +#: TimeTrackerCLI.py:524 +#, python-brace-format +msgid "" +"\n" +"Inactive Tasks (>{weeks} weeks):" +msgstr "" +"\n" +"Tâches inactives (>{weeks}semaines) :" -msgid "Number of sub-projects" -msgstr "Nombre de tâches" +#: TimeTrackerCLI.py:527 +#, python-brace-format +msgid " Task: {name}" +msgstr "Tâche :{name}" -msgid "A task with this name already exists in this project." -msgstr "Une tâche avec ce nom existe déjà dans ce projet." +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1118 +#, python-brace-format +msgid "No tasks found inactive for more than {weeks} weeks." +msgstr "Aucune tâche n'a été trouvée inactive pendant plus de{weeks}semaines." -msgid "Task Breakdown" -msgstr "Répartition par tâche" +#: TimeTrackerCLI.py:537 +msgid "" +"\n" +"--- List All Closed Tasks ---" +msgstr "" +"\n" +"--- Liste de toutes les tâches fermées ---" -msgid "{num_sessions} sessions" -msgstr "{num_sessions} sessions" +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1143 sl/SL_Menu.py:1166 +msgid "No closed tasks found." +msgstr "Aucune tâche fermée trouvée." -msgid "Step 1: Select Project" -msgstr "Étape 1 : Sélectionner le projet" +#: TimeTrackerCLI.py:547 +msgid "" +"\n" +"--- Delete All Closed Tasks ---" +msgstr "" +"\n" +"--- Supprimer toutes les tâches fermées ---" -msgid "6. Detailed Daily Report" -msgstr "6. Rapport journalier détaillé" +#: TimeTrackerCLI.py:548 +msgid "Are you sure you want to delete ALL closed tasks? (y/n): " +msgstr "" +"Êtes-vous sûr de vouloir supprimer TOUTES les tâches fermées ? (o/n) :" -msgid "\n--- Detailed Daily Report ---" -msgstr "\n--- Rapport journalier détaillé ---" +#: TimeTrackerCLI.py:551 +#, python-brace-format +msgid "{count} closed tasks were deleted." +msgstr "{count}les tâches fermées ont été supprimées." -msgid "No open projects found." -msgstr "Aucun projet ouvert trouvé." +#: TimeTrackerCLI.py:553 +msgid "Operation cancelled." +msgstr "Opération annulée." -msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " -msgstr "Entrez la date (AAAA-MM-JJ) ou appuyez sur Entrée pour aujourd'hui : " +#: TimeTrackerCLI.py:557 +msgid "" +"\n" +"--- Promote Task to Main-Project ---" +msgstr "" +"\n" +"--- Promouvoir la tâche vers le projet principal ---" -#: TimeTrackerCLI.py:21 -msgid "\n--- Project Management ---" -msgstr "\n--- Gestion des projets ---" +#: TimeTrackerCLI.py:565 +msgid "Select the main project containing the task to promote:" +msgstr "Sélectionnez le projet principal contenant la tâche à promouvoir :" -msgid "Next" -msgstr "Suivant" +#: TimeTrackerCLI.py:574 +#, python-brace-format +msgid "No tasks to promote in '{name}'." +msgstr "Aucune tâche à promouvoir dans '{name}'." -#: TimeTrackerCLI.py:22 -msgid "1. Add Project" -msgstr "1. Ajouter un projet" +#: TimeTrackerCLI.py:577 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to promote:" +msgstr "" +"\n" +"Sélectionnez une tâche dans «{name}» à promouvoir :" -#: TimeTrackerCLI.py:24 -msgid "2. List Projects" -msgstr "2. Lister les projets" +#: TimeTrackerCLI.py:593 +msgid "" +"\n" +"--- Edit Task ---" +msgstr "" +"\n" +"--- Modifier la tâche ---" -msgid "Step 2: Select Task from" -msgstr "Étape 2 : Sélectionner la tâche de" +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:913 sl/SL_Menu.py:958 +#: sl/SL_Menu.py:1003 sl/SL_Menu.py:1049 sl/SL_Menu.py:1198 sl/SL_Menu.py:1328 +#: sl/SL_Menu.py:1487 sl/SL_Menu.py:1677 +msgid "No open projects found." +msgstr "Aucun projet ouvert trouvé." -#: TimeTrackerCLI.py:24 -msgid "3. Rename Project" -msgstr "3. Renommer le projet" +#: TimeTrackerCLI.py:609 +#, python-brace-format +msgid "No open tasks in '{name}'." +msgstr "Aucune tâche ouverte dans '{name}'." -#: TimeTrackerCLI.py:25 -msgid "4. Delete Project" -msgstr "4. Supprimer le projet" +#: TimeTrackerCLI.py:612 +msgid "Select a task to edit:" +msgstr "Sélectionnez une tâche à modifier :" -#: TimeTrackerCLI.py:26 -msgid "5. List Inactive Projects" -msgstr "5. Lister les projets inactifs" +#: TimeTrackerCLI.py:616 +msgid "Enter the number: " +msgstr "Entrez le numéro :" -msgid "No open tasks found." -msgstr "Aucune tâche ouverte trouvée." +#: TimeTrackerCLI.py:623 +#, python-brace-format +msgid "New name (press Enter to keep '{name}'): " +msgstr "Nouveau nom (appuyez sur Entrée pour conserver '{name}') :" -#: TimeTrackerCLI.py:27 -msgid "6. Demote Project to Task" -msgstr "6. Rétrograder un projet en tâche" +#: TimeTrackerCLI.py:624 +#, python-brace-format +msgid "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " +msgstr "" +"Nouvelle date d'échéance (AAAA-MM-JJ, actuelle : '{due}', entrez '-' pour " +"effacer) :" -#: TimeTrackerCLI.py:29 -msgid "7. Add Task" -msgstr "7. Ajouter une tâche" +#: TimeTrackerCLI.py:627 +#, python-brace-format +msgid "Is this for today? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"Est-ce pour aujourd'hui ? (actuel :{current}, o/n, appuyez sur Entrée pour " +"conserver) :" -#: TimeTrackerCLI.py:30 -msgid "8. List Tasks" -msgstr "8. Lister les tâches" +#: TimeTrackerCLI.py:630 +#, python-brace-format +msgid "Current Note: {note}" +msgstr "Note actuelle :{note}" -msgid "Task not found." -msgstr "Tâche non trouvée." +#: TimeTrackerCLI.py:631 +msgid "New note (press Enter to keep current): " +msgstr "Nouvelle note (appuyez sur Entrée pour conserver le courant) :" -#: TimeTrackerCLI.py:31 TimeTrackerCLI.py:32 -msgid "9. Rename Task" -msgstr "9. Renommer la tâche" +#: TimeTrackerCLI.py:635 +#, python-brace-format +msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " +msgstr "" +"Cette tâche est-elle terminée ? (actuel :{current}, o/n, appuyez sur Entrée " +"pour conserver) :" -msgid "10. Close Task" -msgstr "10. Fermer la tâche" +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:1834 +msgid "Task updated successfully." +msgstr "Tâche mise à jour avec succès." -msgid "11. Re-open Task" -msgstr "11. Rouvrir une tâche" +#: TimeTrackerCLI.py:641 +msgid "Error updating task." +msgstr "Erreur lors de la mise à jour de la tâche." -msgid "12. Delete Task" -msgstr "12. Supprimer la tâche" +#: TimeTrackerCLI.py:643 +msgid "Invalid input." +msgstr "Entrée invalide." -msgid "13. Move Task" -msgstr "13. Déplacer la tâche" +#: TimeTrackerCLI.py:648 +msgid "Invalid choice. Please enter a number from 0 to 11." +msgstr "Choix invalide. Veuillez saisir un chiffre entre 0 et 11." -msgid "14. List Inactive Tasks" -msgstr "14. Lister les tâches inactives" +#: TimeTrackerCLI.py:653 +msgid "" +"\n" +"--- Settings ---" +msgstr "" +"\n" +"--- Paramètres ---" -msgid "Done" -msgstr "Terminé" +#: TimeTrackerCLI.py:654 sl/SL_Menu.py:870 +msgid "1. Change Language" +msgstr "1. Changer de langue" -msgid "15. List All Closed Tasks" -msgstr "15. Lister toutes les tâches fermées" +#: TimeTrackerCLI.py:655 sl/SL_Menu.py:871 +msgid "2. Restore Previous Version" +msgstr "2. Restaurer la version précédente" -msgid "16. Delete All Closed Tasks" -msgstr "16. Supprimer toutes les tâches fermées" +#: TimeTrackerCLI.py:656 sl/SL_Menu.py:872 +msgid "3. Change Data Storage Location" +msgstr "3. Changer l'emplacement de stockage des données" -msgid "17. Promote Task to Project" -msgstr "17. Promouvoir une tâche en projet" +#: TimeTrackerCLI.py:657 sl/SL_Menu.py:874 +msgid "4. Change Streamlit Port" +msgstr "4. Changer le port Streamlit" -msgid "Save Changes" -msgstr "Enregistrer les modifications" +#: TimeTrackerCLI.py:659 TimeTrackerCLI.py:698 TimeTrackerCLI.py:808 +#: sl/SL_Menu.py:881 +msgid "0. Back to Main Menu" +msgstr "0. Retour au menu principal" -#: TimeTrackerCLI.py:37 TimeTrackerCLI.py:403 TimeTrackerCLI.py:461 TimeTrackerCLI.py:539 -msgid "0. Back to Main Menu" -msgstr "0. Retour au menu principal" +#: TimeTrackerCLI.py:682 +msgid "Invalid choice. Please enter a number from 0 to 4." +msgstr "Choix invalide. Veuillez entrer un nombre entre 0 et 4." -#: TimeTrackerCLI.py:40 TimeTrackerCLI.py:406 TimeTrackerCLI.py:464 TimeTrackerCLI.py:595 -msgid "Choice: " -msgstr "Choix : " +#: TimeTrackerCLI.py:687 +msgid "" +"\n" +"--- Language Settings ---" +msgstr "" +"\n" +"--- Paramètres de langue ---" -#: TimeTrackerCLI.py:44 -msgid "\n--- Add New Project ---" -msgstr "\n--- Ajouter un nouveau projet ---" +#: TimeTrackerCLI.py:692 +msgid "No additional languages found." +msgstr "Aucune langue supplémentaire trouvée." -msgid "Error: Could not update task." -msgstr "Erreur : Impossible de mettre à jour la tâche." +#: TimeTrackerCLI.py:716 +#, python-brace-format +msgid "Language changed to '{lang}'. Please restart the application." +msgstr "Langue changée en '{lang}'. Veuillez redémarrer l'application." -#: TimeTrackerCLI.py:45 -msgid "Name of the project: " -msgstr "Nom du projet : " +#: TimeTrackerCLI.py:719 +msgid "Invalid choice." +msgstr "Choix invalide." -#: TimeTrackerCLI.py:48 -msgid "Project '{name}' added." -msgstr "Projet '{name}' ajouté." +#: TimeTrackerCLI.py:721 +msgid "Invalid input. Please enter a number." +msgstr "Entrée invalide. Veuillez entrer un nombre." -#: TimeTrackerCLI.py:50 TimeTrackerCLI.py:55 -msgid "\n--- List Projects ---" -msgstr "\n--- Lister les projets ---" +#: TimeTrackerCLI.py:725 +msgid "" +"\n" +"--- Data Storage Settings ---" +msgstr "" +"\n" +"--- Paramètres de stockage des données ---" -msgid "No open projects found. Please add one first." -msgstr "Aucun projet ouvert trouvé. Veuillez d'abord en ajouter un." +#: TimeTrackerCLI.py:726 +#, python-brace-format +msgid "Current data file: {path}" +msgstr "Fichier de données actuel : {path}" -#: TimeTrackerCLI.py:55 TimeTrackerCLI.py:166 TimeTrackerCLI.py:288 TimeTrackerCLI.py:411 TimeTrackerCLI.py:434 TimeTrackerCLI.py:479 -msgid "No projects found." -msgstr "Aucun projet trouvé." +#: TimeTrackerCLI.py:728 +msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." +msgstr "" +"Entrez le nouveau chemin pour le fichier de données (ex : " +"/chemin/vers/mes_donnees.json)." -#: TimeTrackerCLI.py:58 -msgid "\n--- Rename Project ---" -msgstr "\n--- Renommer le projet ---" +#: TimeTrackerCLI.py:729 +msgid "Leave empty to cancel." +msgstr "Laisser vide pour annuler." -#: TimeTrackerCLI.py:61 -msgid "No projects to rename." -msgstr "Aucun projet à renommer." +#: TimeTrackerCLI.py:730 +msgid "New Path: " +msgstr "Nouveau chemin : " -msgid "Start Work" -msgstr "Démarrer le travail" +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1974 +#, python-brace-format +msgid "Error: The directory '{dir}' does not exist." +msgstr "Erreur : Le répertoire '{dir}' n'existe pas." -#: TimeTrackerCLI.py:64 -msgid "Select a project to rename:" -msgstr "Sélectionnez un projet à renommer :" +#: TimeTrackerCLI.py:752 +msgid "Storage location updated." +msgstr "Emplacement de stockage mis à jour." -#: TimeTrackerCLI.py:68 -msgid "Enter the number of the project: " -msgstr "Entrez le numéro du projet : " +#: TimeTrackerCLI.py:756 +msgid "Do you want to move the existing data to the new location? (y/n): " +msgstr "" +"Voulez-vous déplacer les données existantes vers le nouvel emplacement ? " +"(o/n) : " -#: TimeTrackerCLI.py:71 -msgid "Enter the new name for '{name}': " -msgstr "Entrez le nouveau nom pour '{name}' : " +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1985 +msgid "Data moved successfully." +msgstr "Données déplacées avec succès." -msgid "Error starting work." -msgstr "Erreur lors du démarrage du travail." +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1987 +#, python-brace-format +msgid "Error moving data: {error}" +msgstr "Erreur lors du déplacement des données : {error}" -#: TimeTrackerCLI.py:74 -msgid "Project '{old_name}' successfully renamed to '{new_name}'." -msgstr "Le projet '{old_name}' a été renommé en '{new_name}' avec succès." +#: TimeTrackerCLI.py:764 tt/TimeTracker.py:117 +msgid "Please restart the application for the changes to take effect." +msgstr "" +"Veuillez redémarrer l'application pour que les changements prennent effet." -#: TimeTrackerCLI.py:76 -msgid "Error: Could not rename. The new name '{new_name}' might already exist." -msgstr "Erreur : Impossible de renommer. Le nouveau nom '{new_name}' existe peut-être déjà." +#: TimeTrackerCLI.py:767 +#, python-brace-format +msgid "Error updating configuration: {error}" +msgstr "Erreur lors de la mise à jour de la configuration : {error}" -#: TimeTrackerCLI.py:78 TimeTrackerCLI.py:98 TimeTrackerCLI.py:120 TimeTrackerCLI.py:139 TimeTrackerCLI.py:160 TimeTrackerCLI.py:194 TimeTrackerCLI.py:222 TimeTrackerCLI.py:247 TimeTrackerCLI.py:284 TimeTrackerCLI.py:311 TimeTrackerCLI.py:342 TimeTrackerCLI.py:387 TimeTrackerCLI.py:431 TimeTrackerCLI.py:456 TimeTrackerCLI.py:532 -msgid "Invalid input. Please enter a valid number." -msgstr "Entrée invalide. Veuillez entrer un numéro valide." +#: TimeTrackerCLI.py:771 +msgid "" +"\n" +"--- Streamlit Port Settings ---" +msgstr "" +"\n" +"--- Paramètres du port Streamlit ---" -msgid "Current Active Work" -msgstr "Travail actif en cours" +#: TimeTrackerCLI.py:781 +#, python-brace-format +msgid "Current Streamlit Port: {port}" +msgstr "Port Streamlit actuel : {port}" -#: TimeTrackerCLI.py:81 -msgid "\n--- Delete Project ---" -msgstr "\n--- Supprimer le projet ---" +#: TimeTrackerCLI.py:783 +msgid "Enter new port (or press Enter to keep current): " +msgstr "" +"Entrez le nouveau port (ou appuyez sur Entrée pour conserver l'actuel) : " -#: TimeTrackerCLI.py:84 -msgid "No projects to delete." -msgstr "Aucun projet à supprimer." +#: TimeTrackerCLI.py:792 +#, python-brace-format +msgid "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." +msgstr "" +"Port mis à jour vers {port}. Veuillez redémarrer Streamlit pour que les " +"changements prennent effet." -#: TimeTrackerCLI.py:87 -msgid "Select a project to delete:" -msgstr "Sélectionnez un projet à supprimer :" +#: TimeTrackerCLI.py:800 +msgid "" +"\n" +"--- Reporting ---" +msgstr "" +"\n" +"--- Rapports ---" -msgid "Project" -msgstr "Projet" +#: TimeTrackerCLI.py:801 +msgid "1. Daily Report (Today)" +msgstr "1. Rapport journalier (Aujourd'hui)" -#: TimeTrackerCLI.py:93 -msgid "Project '{name}' deleted." -msgstr "Projet '{name}' supprimé." +#: TimeTrackerCLI.py:802 +msgid "2. Daily Report (Specific Day)" +msgstr "2. Rapport journalier (Jour spécifique)" -#: TimeTrackerCLI.py:95 -msgid "Error: Project '{name}' not found." -msgstr "Erreur : Projet '{name}' non trouvé." +#: TimeTrackerCLI.py:803 +msgid "3. Date Range Report" +msgstr "3. Rapport par plage de dates" -#: TimeTrackerCLI.py:101 -msgid "\n--- List Inactive Projects ---" -msgstr "\n--- Lister les projets inactifs ---" +#: TimeTrackerCLI.py:804 +msgid "4. Detailed Task Report" +msgstr "4. Rapport détaillé de tâche" -msgid "Task" -msgstr "Tâche" +#: TimeTrackerCLI.py:805 +msgid "5. Detailed Main-Project Report" +msgstr "5. Rapport détaillé du projet principal" -#: TimeTrackerCLI.py:103 -msgid "Enter the number of weeks without activity (e.g., 8): " -msgstr "Entrez le nombre de semaines sans activité (ex: 8) : " +#: TimeTrackerCLI.py:806 +msgid "6. Detailed Daily Report" +msgstr "6. Rapport journalier détaillé" -#: TimeTrackerCLI.py:105 -msgid "Please enter a positive number." -msgstr "Veuillez entrer un nombre positif." +#: TimeTrackerCLI.py:815 +msgid "" +"\n" +"--- Generate Daily Report (Today) ---" +msgstr "" +"\n" +"--- Générer le rapport journalier (Aujourd'hui) ---" -#: TimeTrackerCLI.py:110 -msgid "\nInactive Main-Projects (>{weeks} weeks):" -msgstr "\nProjets principaux inactifs (>{weeks} semaines) :" +#: TimeTrackerCLI.py:820 +msgid "" +"\n" +"--- Generate Daily Report for a specific Day ---" +msgstr "" +"\n" +"--- Générer le rapport journalier pour un jour spécifique ---" -msgid "Started at" -msgstr "Démarré à" +#: TimeTrackerCLI.py:821 +msgid "Enter the date (YYYY-MM-DD): " +msgstr "Entrez la date (AAAA-MM-JJ) : " -#: TimeTrackerCLI.py:112 -msgid " - Main Project: {name}" -msgstr " - Projet principal : {name}" +#: TimeTrackerCLI.py:827 TimeTrackerCLI.py:842 TimeTrackerCLI.py:903 +msgid "Invalid date format. Please use YYYY-MM-DD." +msgstr "Format de date invalide. Veuillez utiliser AAAA-MM-JJ." -#: TimeTrackerCLI.py:113 -msgid " Last Activity: {date}" -msgstr " Dernière activité : {date}" +#: TimeTrackerCLI.py:830 +msgid "" +"\n" +"--- Generate Report for a Date Range ---" +msgstr "" +"\n" +"--- Générer un rapport pour une plage de dates ---" -#: TimeTrackerCLI.py:116 -msgid "No main-projects found inactive for more than {weeks} week." -msgid_plural "No main-projects found inactive for more than {weeks} weeks." -msgstr[0] "Aucun projet principal inactif depuis plus de {weeks} semaine n'a été trouvé." -msgstr[1] "Aucun projet principal inactif depuis plus de {weeks} semaines n'a été trouvé." +#: TimeTrackerCLI.py:831 +msgid "Enter the start date (YYYY-MM-DD): " +msgstr "Entrez la date de début (AAAA-MM-JJ) : " -#: TimeTrackerCLI.py:119 -msgid "Invalid input. Please enter a valid number for weeks." -msgstr "Entrée invalide. Veuillez entrer un nombre valide pour les semaines." +#: TimeTrackerCLI.py:832 +msgid "Enter the end date (YYYY-MM-DD): " +msgstr "Entrez la date de fin (AAAA-MM-JJ) : " -msgid "Streamlit Port Settings" -msgstr "Paramètres du port Streamlit" +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2227 +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." -#: TimeTrackerCLI.py:122 -msgid "\n--- Add New Sub-Project ---" -msgstr "\n--- Ajouter un nouveau sous-projet ---" +#: TimeTrackerCLI.py:844 +msgid "" +"\n" +"--- Detailed Task Report ---" +msgstr "" +"\n" +"--- Rapport détaillé de tâche ---" -#: TimeTrackerCLI.py:125 -msgid "No main projects found. Please add one first." -msgstr "Aucun projet principal trouvé. Veuillez d'abord en ajouter un." +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1249 +#: sl/SL_Menu.py:1296 sl/SL_Menu.py:1435 sl/SL_Menu.py:2245 sl/SL_Menu.py:2304 +msgid "No projects found." +msgstr "Aucun projet trouvé." -#: TimeTrackerCLI.py:128 -msgid "Select a main project to add a sub-project to:" -msgstr "Sélectionnez un projet principal auquel ajouter un sous-projet :" +#: TimeTrackerCLI.py:864 +msgid "" +"\n" +"Select the task for the report:" +msgstr "" +"\n" +"Sélectionnez la tâche pour le rapport :" -msgid "New Port" -msgstr "Nouveau port" +#: TimeTrackerCLI.py:877 +msgid "" +"\n" +"--- Detailed Main-Project Report ---" +msgstr "" +"\n" +"--- Rapport détaillé du projet principal ---" -#: TimeTrackerCLI.py:135 -msgid "Name of the new sub-project: " -msgstr "Nom du nouveau sous-projet : " +#: TimeTrackerCLI.py:885 +msgid "Select the main project for the report:" +msgstr "Sélectionnez le projet principal pour le rapport :" + +#: TimeTrackerCLI.py:896 +msgid "" +"\n" +"--- Detailed Daily Report ---" +msgstr "" +"\n" +"--- Rapport journalier détaillé ---" -#: TimeTrackerCLI.py:137 -msgid "Sub-project '{sub_name}' added to '{main_name}'." -msgstr "Sous-projet '{sub_name}' ajouté à '{main_name}'." +#: TimeTrackerCLI.py:897 +msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " +msgstr "Entrez la date (AAAA-MM-JJ) ou appuyez sur Entrée pour aujourd'hui : " -#: TimeTrackerCLI.py:142 -msgid "\n--- List Sub-Projects ---" -msgstr "\n--- Lister les sous-projets ---" +#: TimeTrackerCLI.py:911 TimeTrackerCLI.py:1042 +msgid "Invalid choice. Please enter a number from 0 to 6." +msgstr "Choix invalide. Veuillez entrer un nombre de 0 à 6." -msgid "Save" -msgstr "Enregistrer" +#: TimeTrackerCLI.py:919 +msgid "" +"\n" +"--- Update Available ---" +msgstr "" +"\n" +"--- Mise à jour disponible ---" -#: TimeTrackerCLI.py:145 -msgid "No main projects found. Cannot list sub-projects." -msgstr "Aucun projet principal trouvé. Impossible de lister les sous-projets." +#: TimeTrackerCLI.py:920 +msgid "A downloaded update is ready to be installed." +msgstr "Une mise à jour téléchargée est prête à être installée." -#: TimeTrackerCLI.py:148 -msgid "Select the main project whose sub-projects you want to list:" -msgstr "Sélectionnez le projet principal dont vous voulez lister les sous-projets :" +#: TimeTrackerCLI.py:921 +msgid "0. Skip update for now" +msgstr "0. Ignorer la mise à jour pour l'instant" -#: TimeTrackerCLI.py:156 -msgid "Sub-projects for '{name}':" -msgstr "Sous-projets pour '{name}' :" +#: TimeTrackerCLI.py:922 +msgid "1. Install update now" +msgstr "1. Installer la mise à jour maintenant" -msgid "Port updated to {port}. Please restart Streamlit." -msgstr "Port mis à jour vers {port}. Veuillez redémarrer Streamlit." +#: TimeTrackerCLI.py:923 +msgid "Enter your choice (0 or 1): " +msgstr "Entrez votre choix (0 ou 1) : " -#: TimeTrackerCLI.py:159 TimeTrackerCLI.py:262 TimeTrackerCLI.py:489 -msgid "No sub-projects found for '{name}'." -msgstr "Aucun sous-projet trouvé pour '{name}'." +#: TimeTrackerCLI.py:927 +msgid "Application is restarting to complete the update..." +msgstr "L'application redémarre pour terminer la mise à jour..." -#: TimeTrackerCLI.py:163 -msgid "\n--- Rename Sub-Project ---" -msgstr "\n--- Renommer le sous-projet ---" +#: TimeTrackerCLI.py:931 +msgid "Update installation skipped. The application will start normally." +msgstr "" +"Installation de la mise à jour ignorée. L'application démarrera " +"normallement." -#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:201 TimeTrackerCLI.py:414 TimeTrackerCLI.py:437 TimeTrackerCLI.py:482 -msgid "Select the main project:" -msgstr "Sélectionnez le projet principal :" +#: TimeTrackerCLI.py:933 +msgid "" +"Invalid choice. Update installation skipped. The application will start " +"normally." +msgstr "" +"Choix invalide. Installation de la mise à jour ignorée. L'application " +"démarrera normalement." -msgid "Change Data Storage Location" -msgstr "Changer l'emplacement de stockage des données" +#: TimeTrackerCLI.py:940 +#, python-brace-format +msgid "" +"\n" +"=== Time Control {version} ===" +msgstr "" +"\n" +"=== Time Control {version} ===" -#: TimeTrackerCLI.py:177 -msgid "No sub-projects to rename for '{name}'." -msgstr "Aucun sous-projet à renommer pour '{name}'." +#: TimeTrackerCLI.py:941 +msgid "--- Main Menu ---" +msgstr "--- Menu principal ---" -#: TimeTrackerCLI.py:180 -msgid "Select a sub-project from '{name}' to rename:" -msgstr "Sélectionnez un sous-projet de '{name}' à renommer :" +#: TimeTrackerCLI.py:942 +msgid "1. Start work on task" +msgstr "1. Démarrer le travail sur une tâche" -#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:214 TimeTrackerCLI.py:267 TimeTrackerCLI.py:307 TimeTrackerCLI.py:499 -msgid "Enter the number of the sub-project: " -msgstr "Entrez le numéro du sous-projet : " +#: TimeTrackerCLI.py:943 +msgid "2. Show current work" +msgstr "2. Afficher le travail en cours" -msgid "Current data file" -msgstr "Fichier de données actuel" +#: TimeTrackerCLI.py:944 +msgid "3. Stop current work" +msgstr "3. Arrêter le travail en cours" -#: TimeTrackerCLI.py:190 -msgid "Sub-project '{old_name}' renamed to '{new_name}'." -msgstr "Le sous-projet '{old_name}' a été renommé en '{new_name}'." +#: TimeTrackerCLI.py:946 +msgid "4. Handle projects and tasks" +msgstr "4. Gérer les projets et les tâches" -#: TimeTrackerCLI.py:192 -msgid "" -"Error: Could not rename. The new name might already exist or the project " -"was not found." -msgstr "Erreur : Impossible de renommer. Le nouveau nom existe peut-être déjà ou le projet n'a pas été trouvé." +#: TimeTrackerCLI.py:947 +msgid "5. Reporting" +msgstr "5. Rapports" -msgid "New Path for data file" -msgstr "Nouveau chemin pour le fichier de données" +#: TimeTrackerCLI.py:948 +msgid "6. Settings" +msgstr "6. Paramètres" + +#: TimeTrackerCLI.py:950 +msgid "0. Exit" +msgstr "0. Quitter" -#: TimeTrackerCLI.py:195 -msgid "\n--- Delete Sub-Project ---" -msgstr "\n--- Supprimer le sous-projet ---" +#: TimeTrackerCLI.py:957 +msgid "" +"\n" +"--- Start Work on a Task ---" +msgstr "" +"\n" +"--- Démarrer le travail sur une tâche ---" -#: TimeTrackerCLI.py:207 -msgid "No sub-projects to delete for '{name}'." -msgstr "Aucun sous-projet à supprimer pour '{name}'." +#: TimeTrackerCLI.py:963 +msgid "Select a main project:" +msgstr "Sélectionnez un projet principal :" -#: TimeTrackerCLI.py:210 -msgid "Select a sub-project from '{name}' to delete:" -msgstr "Sélectionnez un sous-projet de '{name}' à supprimer :" +#: TimeTrackerCLI.py:974 +#, python-brace-format +msgid "No open tasks found for '{name}' to start work on." +msgstr "" +"Aucune tâche ouverte trouvée pour '{name}' sur laquelle commencer à " +"travailler." -msgid "Move existing data to the new location" -msgstr "Déplacer les données existantes vers le nouvel emplacement" +#: TimeTrackerCLI.py:977 +#, python-brace-format +msgid "Select a task from '{name}':" +msgstr "Sélectionnez une tâche de '{name}' :" -#: TimeTrackerCLI.py:217 -msgid "Sub-project '{sub_name}' deleted from '{main_name}'." -msgstr "Sous-projet '{sub_name}' supprimé de '{main_name}'." +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:1884 +#, python-brace-format +msgid "Work started on '{task_name}' in project '{main_name}'." +msgstr "Travail commencé sur '{task_name}' dans le projet '{main_name}'." -msgid "\n--- List All Closed Sub-Projects ---" -msgstr "\n--- Lister tous les sous-projets fermés ---" +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:1888 +msgid "Error starting work." +msgstr "Erreur lors du démarrage du travail." +#: TimeTrackerCLI.py:996 msgid "" -"If unchecked, the old data file will remain, and a new empty one might be " -"created at the new location on restart." +"\n" +"--- Current Active Work ---" 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." - -msgid "No closed sub-projects found." -msgstr "Aucun sous-projet fermé trouvé." +"\n" +"--- Travail actif en cours ---" -msgid "\n--- Delete All Closed Sub-Projects ---" -msgstr "\n--- Supprimer tous les sous-projets fermés ---" +#: TimeTrackerCLI.py:1006 +msgid "You are currently working on:" +msgstr "Vous travaillez actuellement sur :" -msgid "Are you sure you want to delete ALL closed sub-projects? (y/n): " -msgstr "Êtes-vous sûr de vouloir supprimer TOUS les sous-projets fermés ? (o/n) : " +#: TimeTrackerCLI.py:1007 +#, python-brace-format +msgid " Main Project: {name}" +msgstr "Projet principal :{name}" -msgid "Error: For security, the data file must be located within the application directory." -msgstr "Erreur : Pour des raisons de sécurité, le fichier de données doit être situé dans le répertoire de l'application." +#: TimeTrackerCLI.py:1008 +#, python-brace-format +msgid " Task: {name}" +msgstr "Tâche :{name}" -msgid "{count} closed sub-projects were deleted." -msgstr "{count} sous-projets fermés ont été supprimés." +#: TimeTrackerCLI.py:1009 +#, python-brace-format +msgid " Started at: {date}" +msgstr " Démarré à : {date}" -msgid "Operation cancelled." -msgstr "Opération annulée." +#: TimeTrackerCLI.py:1010 +#, python-brace-format +msgid " Duration: {duration}" +msgstr " Durée : {duration}" -#: TimeTrackerCLI.py:219 TimeTrackerCLI.py:281 -msgid "Error: The directory '{dir}' does not exist." -msgstr "Erreur : Le répertoire '{dir}' n'existe pas." +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:373 sl/SL_Menu.py:1910 +msgid "No active work session." +msgstr "Aucune session de travail active." -msgid "Error: Main project or sub-project not found." -msgstr "Erreur : Projet principal ou sous-projet non trouvé." +#: TimeTrackerCLI.py:1016 +msgid "" +"\n" +"--- Stop Work ---" +msgstr "" +"\n" +"--- Arrêter le travail ---" -#: TimeTrackerCLI.py:226 -msgid "\n--- List Inactive Sub-Projects ---" -msgstr "\n--- Lister les sous-projets inactifs ---" +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:341 +msgid "Work session stopped successfully." +msgstr "Session de travail arrêtée avec succès." -msgid "Storage location updated. Please restart the application for the changes to take effect." -msgstr "Emplacement de stockage mis à jour. Veuillez redémarrer l'application pour que les changements prennent effet." +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:343 +msgid "No active work session to stop." +msgstr "Aucune session de travail active à arrêter." -#: TimeTrackerCLI.py:228 -msgid "Enter the number of weeks without activity (e.g., 4): " -msgstr "Entrez le nombre de semaines sans activité (ex: 4) : " +#: TimeTrackerCLI.py:1034 +msgid "" +"\n" +"Checking for updates..." +msgstr "" +"\n" +"Recherche de mises à jour..." -#: TimeTrackerCLI.py:235 -msgid "\nInactive Sub-Projects (>{weeks} weeks):" -msgstr "\nSous-projets inactifs (>{weeks} semaines) :" +#: TimeTrackerCLI.py:1038 +msgid "Exiting application. Goodbye!" +msgstr "Fermeture de l'application. Au revoir !" -#: TimeTrackerCLI.py:238 -msgid " Sub-Project: {name}" -msgstr " Sous-projet : {name}" +#: update.py:35 +msgid "" +"Warning: Update check skipped. 'github_repo' not found in config.json or " +"file is invalid." +msgstr "" +"Avertissement : Vérification de mise à jour ignorée. 'github_repo' non " +"trouvé dans config.json ou fichier invalide." -msgid "Error moving data: {error}" -msgstr "Erreur lors du déplacement des données : {error}" +#: update.py:49 +#, python-brace-format +msgid "A new version ({version}) is available." +msgstr "Une nouvelle version ({version}) est disponible." -#: TimeTrackerCLI.py:241 -msgid "No sub-projects found inactive for more than {weeks} week." -msgid_plural "No sub-projects found inactive for more than {weeks} weeks." -msgstr[0] "Aucun sous-projet inactif depuis plus de {weeks} semaine n'a été trouvé." -msgstr[1] "Aucun sous-projet inactif depuis plus de {weeks} semaines n'a été trouvé." +#: 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." -#: TimeTrackerCLI.py:248 -msgid "\n--- Move Sub-Project ---" -msgstr "\n--- Déplacer le sous-projet ---" +#: update.py:59 +#, python-brace-format +msgid "Error checking for updates: {error}" +msgstr "Erreur lors de la recherche de mises à jour : {error}" -msgid "Change CSS Style" -msgstr "Changer le style CSS" +#: update.py:61 +#, python-brace-format +msgid "An unexpected error occurred while checking for updates: {error}" +msgstr "" +"Une erreur inattendue s'est produite lors de la recherche de mises à jour : " +"{error}Une erreur inattendue s'est produite lors de la recherche de mises à " +"jour : {error}" -#: TimeTrackerCLI.py:250 -msgid "You need at least two main projects to move a sub-project." -msgstr "Vous avez besoin d'au moins deux projets principaux pour déplacer un sous-projet." +#: update.py:73 +msgid "Downloading update..." +msgstr "Téléchargement de la mise à jour..." -#: TimeTrackerCLI.py:254 -msgid "Select the source main project:" -msgstr "Sélectionnez le projet principal source :" +#: update.py:79 +msgid "Download complete. The update will be installed on the next start." +msgstr "" +"Téléchargement terminé. La mise à jour sera installée au prochain démarrage." -#: TimeTrackerCLI.py:257 -msgid "Enter the number of the source main project: " -msgstr "Entrez le numéro du projet principal source : " +#: update.py:82 +#, python-brace-format +msgid "Error downloading the update: {error}" +msgstr "Erreur lors du téléchargement de la mise à jour : {error}" -msgid "Current CSS file" -msgstr "Fichier CSS actuel" +#: update.py:108 +msgid "Creating backup of current version before update..." +msgstr "" +"Création d'une sauvegarde de la version actuelle avant la mise à jour..." -#: TimeTrackerCLI.py:265 -msgid "\nSelect a sub-project from '{name}' to move:" -msgstr "\nSélectionnez un sous-projet de '{name}' à déplacer :" +#: update.py:118 +#, python-brace-format +msgid "Backup created successfully as {filename}." +msgstr "Sauvegarde créée avec succès sous le nom {filename}." -#: TimeTrackerCLI.py:270 -msgid "\nSelect the destination main project:" -msgstr "\nSélectionnez le projet principal de destination :" +#: update.py:120 +#, python-brace-format +msgid "Warning: Could not create backup. Error: {error}" +msgstr "Avertissement : Impossible de créer la sauvegarde. Erreur : {error}" -#: TimeTrackerCLI.py:274 -msgid "Enter the number of the destination main project: " -msgstr "Entrez le numéro du projet principal de destination : " +#: update.py:122 +msgid "Installing update..." +msgstr "Installation de la mise à jour..." -msgid "Select CSS File" -msgstr "Sélectionner le fichier CSS" +#: update.py:142 +#, python-brace-format +msgid "Skipping protected file: {filename}. It will not be overwritten." +msgstr "Fichier protégé ignoré : {filename}. Il ne sera pas écrasé." -#: TimeTrackerCLI.py:279 -msgid "Successfully moved '{sub_name}' from '{source_name}' to '{dest_name}'." -msgstr "Déplacement réussi de '{sub_name}' de '{source_name}' vers '{dest_name}'." +#: update.py:151 +msgid "Update installed successfully." +msgstr "Mise à jour installée avec succès." -msgid "Error: {message}" -msgstr "Erreur : {message}" +#: update.py:153 +#, python-brace-format +msgid "Error during update installation: {error}" +msgstr "Erreur lors de l'installation de la mise à jour : {error}" -msgid "CSS style updated. Please restart the application for the changes to take effect." -msgstr "Style CSS mis à jour. Veuillez redémarrer l'application pour que les changements prennent effet." +#: update.py:168 +#, python-brace-format +msgid "Error: No previous version backup '{filename}' found." +msgstr "" +"Erreur : Aucune sauvegarde de la version précédente '{filename}' trouvée." -#: TimeTrackerCLI.py:286 -msgid "\n--- Promote Sub-Project to Main-Project ---" -msgstr "\n--- Promouvoir un sous-projet en projet principal ---" +#: update.py:171 +#, python-brace-format +msgid "Restoring previous version from '{filename}'..." +msgstr "Restauration de la version précédente depuis '{filename}'..." -#: TimeTrackerCLI.py:293 -msgid "Select the main project containing the sub-project to promote:" -msgstr "Sélectionnez le projet principal contenant le sous-projet à promouvoir :" +#: update.py:192 +#, python-brace-format +msgid "" +"Skipping user data file: {filename}. It will not be overwritten during " +"restore." +msgstr "" +"Ignorer le fichier de données utilisateur : {filename}. Il ne sera pas " +"écrasé lors de la restauration." -#: TimeTrackerCLI.py:301 -msgid "No sub-projects to promote in '{name}'." -msgstr "Aucun sous-projet à promouvoir dans '{name}'." +#: update.py:199 +msgid "Previous version restored successfully." +msgstr "Version précédente restaurée avec succès." -msgid "Change View Mode" -msgstr "Changer le mode d'affichage" +#: update.py:201 +msgid "Restarting application to apply changes..." +msgstr "Redémarrage de l'application pour appliquer les modifications..." -#: TimeTrackerCLI.py:304 -msgid "\nSelect a sub-project from '{name}' to promote:" -msgstr "\nSélectionnez un sous-projet de '{name}' à promouvoir :" +#: update.py:204 +#, python-brace-format +msgid "Error during restoration: {error}" +msgstr "Erreur lors de la restauration : {error}" -#: TimeTrackerCLI.py:315 -msgid "\n--- Demote Main-Project to Sub-Project ---" -msgstr "\n--- Rétrograder un projet principal en sous-projet ---" +#: update.py:205 +#, python-brace-format +msgid "The backup file '{filename}' was not deleted." +msgstr "Le fichier de sauvegarde '{filename}' n'a pas été supprimé." -#: TimeTrackerCLI.py:318 TimeTrackerCLI.py:322 -msgid "You need at least two main projects for this operation." -msgstr "Vous avez besoin d'au moins deux projets principaux pour cette opération." +#: update.py:212 +msgid "Error: Could not import TimeTracker to get the current version." +msgstr "" +"Erreur : Impossible d'importer TimeTracker pour obtenir la version actuelle." -msgid "App Window (Webview)" -msgstr "Fenêtre d'application (Webview)" +#: update.py:215 +msgid "Checking for updates..." +msgstr "Vérification des mises à jour..." -msgid "Select the main project to demote:" -msgstr "Sélectionnez le projet principal à rétrograder :" +#: update.py:222 +msgid "No updates available." +msgstr "Aucune mise à jour disponible." -#: TimeTrackerCLI.py:325 -msgid "Enter the number of the project to demote: " -msgstr "Entrez le numéro du projet à rétrograder : " +#: tt/TimeTracker.py:90 +#, python-brace-format +msgid "Warning: Could not read {file}. Error: {error}" +msgstr "Avertissement : Impossible de lire {file}. Erreur : {error}" -#: TimeTrackerCLI.py:328 -msgid "\nSelect the new parent main project:" -msgstr "\nSélectionnez le nouveau projet principal parent :" +#: tt/TimeTracker.py:105 +msgid "Some required packages are missing. Attempting to install them..." +msgstr "Certains paquets requis sont manquants. Tentative d'installation..." -msgid "System Browser" -msgstr "Navigateur système" - -#: TimeTrackerCLI.py:333 -msgid "Enter the number of the new parent project: " -msgstr "Entrez le numéro du nouveau projet parent : " - -msgid "Invalid choice. Please enter a number from 0 to 17." -msgstr "Choix invalide. Veuillez entrer un nombre de 0 à 17." +#: tt/TimeTracker.py:108 +#, python-brace-format +msgid "Installing {package}..." +msgstr "Installation de {package}..." -#: TimeTrackerCLI.py:348 -msgid "\n--- Reporting ---" -msgstr "\n--- Rapports ---" +#: tt/TimeTracker.py:112 +#, python-brace-format +msgid "Failed to install {package}. Continuing without it." +msgstr "Échec de l'installation de{package}. Continuer sans cela." -msgid "Select View Mode" -msgstr "Sélectionner le mode d'affichage" +#: tt/TimeTracker.py:116 +msgid "" +"\n" +"Dependencies installed successfully." +msgstr "" +"\n" +"Dépendances installées avec succès." -#: TimeTrackerCLI.py:349 -msgid "1. Daily Report (Today)" -msgstr "1. Rapport journalier (Aujourd'hui)" +#: tt/TimeTracker.py:120 +#, python-brace-format +msgid "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" +msgstr "" +"\n" +"Attention : Certaines dépendances n'ont pas pu être installées :{packages}" -#: TimeTrackerCLI.py:350 -msgid "2. Daily Report (Specific Day)" -msgstr "2. Rapport journalier (Jour spécifique)" +#: tt/TimeTracker.py:122 +#, python-brace-format +msgid "An unexpected error occurred during dependency check: {error}" +msgstr "" +"Une erreur inattendue s'est produite lors de la vérification des dépendances" +" : {error}" -#: TimeTrackerCLI.py:351 -msgid "3. Date Range Report" -msgstr "3. Rapport par plage de dates" +#: tt/TimeTracker.py:229 +msgid "Info: Report content has been copied to the clipboard." +msgstr "Info : Le contenu du rapport a été copié dans le presse-papiers." -msgid "View mode updated. Please restart the application for the changes to take effect." -msgstr "Mode d'affichage mis à jour. Veuillez redémarrer l'application pour que les changements prennent effet." +#: tt/TimeTracker.py:231 +#, python-brace-format +msgid "Warning: Could not copy to clipboard. Error: {error}" +msgstr "" +"Avertissement : Impossible de copier dans le presse-papiers. Erreur : " +"{error}" -#: TimeTrackerCLI.py:352 -msgid "4. Detailed Task Report" -msgstr "4. Rapport détaillé de tâche" +#: tt/TimeTracker.py:233 +msgid "" +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." +msgstr "" +"Avertissement : Impossible de copier dans le presse-papiers. Veuillez " +"installer 'pyperclip' (`pip install pyperclip`)." -#: TimeTrackerCLI.py:353 -msgid "5. Detailed Project Report" -msgstr "5. Rapport détaillé de projet" +#: tt/TimeTracker.py:253 +#, python-brace-format +msgid "{hours} hours ({dlp} DLP)" +msgstr "{hours}heures ({dlp}DLP)" -#: TimeTrackerCLI.py:359 -msgid "\n--- Generate Daily Report (Today) ---" -msgstr "\n--- Générer le rapport journalier (Aujourd'hui) ---" +#: tt/TimeTracker.py:846 tt/TimeTracker.py:886 +#, python-brace-format +msgid "Source main project '{name}' not found." +msgstr "Source du projet principal '{name}' introuvable." -msgid "Restore Previous Version" -msgstr "Restaurer la version précédente" +#: tt/TimeTracker.py:848 +#, python-brace-format +msgid "Destination main project '{name}' not found." +msgstr "Projet principal de destination «{name}» introuvable." -#: TimeTrackerCLI.py:363 -msgid "\n--- Generate Daily Report for a specific Day ---" -msgstr "\n--- Générer le rapport journalier pour un jour spécifique ---" +#: tt/TimeTracker.py:860 +#, python-brace-format +msgid "Task '{task_name}' moved successfully." +msgstr "La tâche '{task_name}' a été déplacée avec succès." -#: TimeTrackerCLI.py:364 -msgid "Enter the date (YYYY-MM-DD): " -msgstr "Entrez la date (AAAA-MM-JJ) : " +#: tt/TimeTracker.py:861 tt/TimeTracker.py:896 tt/TimeTracker.py:1373 +#, 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}'." -#: TimeTrackerCLI.py:369 -msgid "Invalid date format. Please use YYYY-MM-DD." -msgstr "Format de date invalide. Veuillez utiliser AAAA-MM-JJ." +#: tt/TimeTracker.py:880 +#, python-brace-format +msgid "A main project named '{name}' already exists." +msgstr "Un projet principal nommé «{name}» existe déjà." -msgid "No previous version backup '{filename}' found." -msgstr "Aucune sauvegarde de la version précédente '{filename}' trouvée." +#: tt/TimeTracker.py:905 +msgid "General" +msgstr "Général" -#: TimeTrackerCLI.py:371 TimeTrackerCLI.py:373 -msgid "\n--- Generate Report for a Date Range ---" -msgstr "\n--- Générer un rapport pour une plage de dates ---" +#: tt/TimeTracker.py:909 +#, python-brace-format +msgid "Task '{task_name}' was promoted to a new main project." +msgstr "La tâche '{task_name}' a été promue en nouveau projet principal." -msgid "Enter the start date (YYYY-MM-DD): " -msgstr "Entrez la date de début (AAAA-MM-JJ) : " +#: tt/TimeTracker.py:936 +#, python-brace-format +msgid "Main project to demote '{name}' not found." +msgstr "Projet principal à rétrograder '{name}' introuvable." -#: TimeTrackerCLI.py:375 -msgid "Enter the end date (YYYY-MM-DD): " -msgstr "Entrez la date de fin (AAAA-MM-JJ) : " +#: tt/TimeTracker.py:938 +#, python-brace-format +msgid "New parent main project '{name}' not found." +msgstr "Nouveau projet principal parent '{name}' introuvable." -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 "Ceci restaurera l'application à la version sauvegardée précédemment. L'application redémarrera ensuite. Vous devrez peut-être actualiser manuellement votre navigateur s'il ne se reconnecte pas automatiquement." +#: tt/TimeTracker.py:963 +#, python-brace-format +msgid "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." +msgstr "" +"Le projet principal «{demoted_name}» a été rétrogradé au rang de sous-projet" +" sous «{parent_name}»." -#: TimeTrackerCLI.py:377 -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." +#: tt/TimeTracker.py:1042 +msgid "Email import is not enabled." +msgstr "L'importation d'e-mails n'est pas activée." -#: TimeTrackerCLI.py:383 -msgid "\n--- Detailed Task Report ---" -msgstr "\n--- Rapport détaillé de tâche ---" +#: tt/TimeTracker.py:1051 +msgid "Email settings are incomplete." +msgstr "Les paramètres de messagerie sont incomplets." -#: TimeTrackerCLI.py:397 -msgid "\nSelect the sub-project for the report:" -msgstr "\nSélectionnez le sous-projet pour le rapport :" +#: tt/TimeTracker.py:1064 +msgid "Error searching emails." +msgstr "Erreur lors de la recherche d'e-mails." -msgid "Restore and Restart" -msgstr "Restaurer et redémarrer" +#: tt/TimeTracker.py:1079 +msgid "No Subject" +msgstr "Aucun sujet" -#: TimeTrackerCLI.py:405 -msgid "\n--- Detailed Project Report ---" -msgstr "\n--- Rapport détaillé de projet ---" +#: tt/TimeTracker.py:1139 +msgid "Unknown Task" +msgstr "Tâche inconnue" -#: TimeTrackerCLI.py:417 -msgid "Select the project for the report:" -msgstr "Sélectionnez le projet pour le rapport :" +#: tt/TimeTracker.py:1330 +#, python-brace-format +msgid "- {name}: {hours} hours" +msgstr "-{name}:{hours}heures" -#: TimeTrackerCLI.py:424 -msgid "Invalid choice. Please enter a number from 0 to 5." -msgstr "Choix invalide. Veuillez entrer un nombre de 0 à 5." +#: tt/TimeTracker.py:1338 +#, python-brace-format +msgid "## {name} ({hours} hours)\n" +msgstr "##{name}({hours}heures)\n" -msgid "Restoring and restarting..." -msgstr "Restauration et redémarrage..." +#: tt/TimeTracker.py:1347 +#, python-brace-format +msgid "# Daily Time Report: {date}\n" +msgstr "# Rapport de temps journalier : {date}\n" -#: TimeTrackerCLI.py:428 TimeTrackerCLI.py:469 -msgid "\n--- Settings ---" -msgstr "\n--- Paramètres ---" +#: tt/TimeTracker.py:1348 +#, python-brace-format +msgid "" +"\n" +"**Total Daily Time: {hours} hours**" +msgstr "" +"\n" +"**Durée quotidienne totale :{hours}heures**" -#: TimeTrackerCLI.py:429 TimeTrackerCLI.py:562 -msgid "1. Change Language" -msgstr "1. Changer de langue" +#: tt/TimeTracker.py:1352 tt/TimeTracker.py:1665 +#, python-brace-format +msgid "No time tracked for {date}." +msgstr "Aucun temps suivi pour le {date}." -msgid "Change Language" -msgstr "1. Changer de langue" +#: tt/TimeTracker.py:1369 tt/TimeTracker.py:1464 +#, python-brace-format +msgid "Main project '{name}' not found." +msgstr "Projet principal «{name}» introuvable." -msgid "3. Change Data Storage Location" -msgstr "3. Changer l'emplacement de stockage des données" +#: tt/TimeTracker.py:1377 +#, 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}'." -#: TimeTrackerCLI.py:430 -msgid "2. Restore Previous Version" -msgstr "2. Restaurer la version précédente" +#: tt/TimeTracker.py:1410 tt/TimeTracker.py:1640 +msgid "now" +msgstr "maintenant" -msgid "Select Language" -msgstr "Sélectionner la langue" +#: tt/TimeTracker.py:1411 sl/SL_Menu.py:1908 +msgid "Duration" +msgstr "Durée" -msgid "Invalid choice. Please enter a number from 0 to 3." -msgstr "Choix invalide. Veuillez entrer un nombre de 0 à 3." +#: tt/TimeTracker.py:1415 +#, python-brace-format +msgid "# Detailed Report for Task: {name}" +msgstr "# Rapport détaillé pour la tâche : {name}" -#: TimeTrackerCLI.py:446 TimeTrackerCLI.py:545 -msgid "\n--- Language Settings ---" -msgstr "\n--- Paramètres de langue ---" +#: tt/TimeTracker.py:1416 +#, python-brace-format +msgid "Part of Main Project: {name}" +msgstr "Fait partie du projet principal : {name}" -#: TimeTrackerCLI.py:449 TimeTrackerCLI.py:548 -msgid "No additional languages found." -msgstr "Aucune langue supplémentaire trouvée." +#: tt/TimeTracker.py:1419 +msgid "Active (currently running)" +msgstr "Actif (en cours)" -msgid "Language changed. Please restart the application for the changes to take effect." -msgstr "Langue changée. Veuillez redémarrer l'application pour que les changements prennent effet." +#: tt/TimeTracker.py:1419 tt/TimeTracker.py:1516 +msgid "Inactive" +msgstr "Inactif" -#: TimeTrackerCLI.py:458 TimeTrackerCLI.py:587 -msgid "Language changed to '{lang}'. Please restart the application." -msgstr "Langue changée en '{lang}'. Veuillez redémarrer l'application." +#: tt/TimeTracker.py:1420 tt/TimeTracker.py:1517 +msgid "Status" +msgstr "Statut" -#: TimeTrackerCLI.py:460 TimeTrackerCLI.py:590 -msgid "Invalid choice." -msgstr "Choix invalide." +#: tt/TimeTracker.py:1422 tt/TimeTracker.py:1519 +msgid "First entry" +msgstr "Première entrée" -#: TimeTrackerCLI.py:462 TimeTrackerCLI.py:592 -msgid "Invalid input. Please enter a number." -msgstr "Entrée invalide. Veuillez entrer un nombre." +#: tt/TimeTracker.py:1424 tt/TimeTracker.py:1521 +msgid "Last activity" +msgstr "Dernière activité" -msgid "\n--- Data Storage Settings ---" -msgstr "\n--- Paramètres de stockage des données ---" +#: tt/TimeTracker.py:1426 tt/TimeTracker.py:1523 +msgid "Total recorded time" +msgstr "Temps total enregistré" -msgid "Current data file: {path}" -msgstr "Fichier de données actuel : {path}" +#: tt/TimeTracker.py:1427 tt/TimeTracker.py:1525 +msgid "Total work sessions" +msgstr "Nombre total de sessions de travail" -msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." -msgstr "Entrez le nouveau chemin pour le fichier de données (ex : /chemin/vers/mes_donnees.json)." +#: tt/TimeTracker.py:1431 tt/TimeTracker.py:1529 +msgid "Average session duration" +msgstr "Durée moyenne des sessions" -msgid "Leave empty to cancel." -msgstr "Laisser vide pour annuler." +#: tt/TimeTracker.py:1434 tt/TimeTracker.py:1532 +msgid "Weekday Distribution" +msgstr "Répartition par jour de la semaine" -msgid "New Path: " -msgstr "Nouveau chemin : " +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Monday" +msgstr "Lundi" -msgid "IMAP Server" -msgstr "Serveur IMAP" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Tuesday" +msgstr "Mardi" -msgid "Storage location updated." -msgstr "Emplacement de stockage mis à jour." +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Wednesday" +msgstr "Mercredi" -msgid "Do you want to move the existing data to the new location? (y/n): " -msgstr "Voulez-vous déplacer les données existantes vers le nouvel emplacement ? (o/n) : " +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Thursday" +msgstr "Jeudi" -msgid "Data moved successfully." -msgstr "Données déplacées avec succès." +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Friday" +msgstr "Vendredi" -msgid "Port" -msgstr "Port" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Saturday" +msgstr "Samedi" -msgid "Error updating configuration: {error}" -msgstr "Erreur lors de la mise à jour de la configuration : {error}" +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Sunday" +msgstr "Dimanche" -#: TimeTrackerCLI.py:508 -msgid "\n--- Update Available ---" -msgstr "\n--- Mise à jour disponible ---" +#: tt/TimeTracker.py:1444 +msgid "Daily Breakdown" +msgstr "Répartition journalière" -#: TimeTrackerCLI.py:509 -msgid "A downloaded update is ready to be installed." -msgstr "Une mise à jour téléchargée est prête à être installée." +#: tt/TimeTracker.py:1513 +#, python-brace-format +msgid "# Detailed Report for Main Project: {name}" +msgstr "# Rapport détaillé pour le projet principal : {name}" -#: TimeTrackerCLI.py:510 -msgid "0. Skip update for now" -msgstr "0. Ignorer la mise à jour pour l'instant" +#: tt/TimeTracker.py:1516 +#, python-brace-format +msgid "Active (working on '{task_name}')" +msgstr "Actif (travail sur '{task_name}')" -#: TimeTrackerCLI.py:511 -msgid "1. Install update now" -msgstr "1. Installer la mise à jour maintenant" +#: tt/TimeTracker.py:1524 +msgid "Number of tasks" +msgstr "Nombre de tâches" -#: TimeTrackerCLI.py:512 -msgid "Enter your choice (0 or 1): " -msgstr "Entrez votre choix (0 ou 1) : " +#: tt/TimeTracker.py:1543 +msgid "Task Breakdown" +msgstr "Répartition par tâche" -#: TimeTrackerCLI.py:515 -msgid "Application is restarting to complete the update..." -msgstr "L'application redémarre pour terminer la mise à jour..." +#: tt/TimeTracker.py:1552 +#, python-brace-format +msgid "{num_sessions} sessions" +msgstr "{num_sessions} sessions" -#: TimeTrackerCLI.py:518 -msgid "Update installation skipped. The application will start normally." -msgstr "Installation de la mise à jour ignorée. L'application démarrera normallement." +#: tt/TimeTracker.py:1605 +#, python-brace-format +msgid "# Time Report: {start_date} to {end_date}\n" +msgstr "# Rapport de temps : du {start_date} au {end_date}\n" -#: TimeTrackerCLI.py:520 +#: tt/TimeTracker.py:1606 +#, python-brace-format msgid "" -"Invalid choice. Update installation skipped. The application will start " -"normally." +"\n" +"**Total Time in Period: {total_time}**" msgstr "" -"Choix invalide. Installation de la mise à jour ignorée. L'application " -"démarrera normalement." +"\n" +"**Temps total sur la période : {total_time}**" -#: TimeTrackerCLI.py:525 -msgid "\n=== Time Control {version} ===" -msgstr "\n=== Time Control {version} ===" +#: tt/TimeTracker.py:1610 +#, 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}." -#: TimeTrackerCLI.py:526 -msgid "--- Main Menu ---" -msgstr "--- Menu principal ---" +#: tt/TimeTracker.py:1626 +#, python-brace-format +msgid "# Detailed Daily Report: {date}" +msgstr "# Rapport journalier détaillé : {date}" -msgid "1. Start work on task" -msgstr "1. Démarrer le travail sur une tâche" +#: sl/SL_Menu.py:277 +msgid "New" +msgstr "Nouveau" -msgid "Daily Report (Specific Day)" -msgstr "Rapport journalier (Jour spécifique)" +#: sl/SL_Menu.py:278 +msgid "New Project" +msgstr "Nouveau projet" -#: TimeTrackerCLI.py:528 -msgid "2. Show current work" -msgstr "2. Afficher le travail en cours" +#: sl/SL_Menu.py:281 +msgid "New Task" +msgstr "Nouvelle tâche" -#: TimeTrackerCLI.py:530 -msgid "3. Stop current work" -msgstr "3. Arrêter le travail en cours" +#: sl/SL_Menu.py:286 +msgid "Project & Task Management" +msgstr "Gestion des projets et des tâches" -#: TimeTrackerCLI.py:531 -msgid "4. Handle projects and tasks" -msgstr "4. Gérer les projets et les tâches" +#: sl/SL_Menu.py:287 sl/SL_Menu.py:780 +msgid "Main Project Management" +msgstr "Gestion du projet principal" -msgid "Select Date" -msgstr "Sélectionner la date" +#: sl/SL_Menu.py:288 sl/SL_Menu.py:796 sl/SL_Menu.py:894 +msgid "Add Project" +msgstr "Ajouter un projet" -#: TimeTrackerCLI.py:532 -msgid "5. Reporting" -msgstr "5. Rapports" +#: sl/SL_Menu.py:291 sl/SL_Menu.py:799 sl/SL_Menu.py:1242 +msgid "List Projects" +msgstr "Liste des projets" -#: TimeTrackerCLI.py:533 -msgid "6. Settings" -msgstr "6. Paramètres" +#: sl/SL_Menu.py:292 sl/SL_Menu.py:800 sl/SL_Menu.py:1257 +msgid "Rename Project" +msgstr "Renommer le projet" -#: TimeTrackerCLI.py:535 -msgid "0. Exit" -msgstr "0. Quitter" +#: sl/SL_Menu.py:293 sl/SL_Menu.py:801 sl/SL_Menu.py:1371 sl/SL_Menu.py:1384 +msgid "Close Project" +msgstr "Fermer le projet" -msgid "Generate Report" -msgstr "Générer le rapport" +#: sl/SL_Menu.py:294 sl/SL_Menu.py:802 sl/SL_Menu.py:1401 sl/SL_Menu.py:1414 +msgid "Re-open Project" +msgstr "Rouvrir le projet" -#: TimeTrackerCLI.py:541 -msgid "\n--- Start Work on a Task ---" -msgstr "\n--- Démarrer le travail sur une tâche ---" +#: sl/SL_Menu.py:295 sl/SL_Menu.py:803 sl/SL_Menu.py:1431 sl/SL_Menu.py:1445 +msgid "Delete Project" +msgstr "Supprimer le projet" -#: TimeTrackerCLI.py:498 -msgid "Select a task from '{name}':" -msgstr "Sélectionnez une tâche de '{name}' :" +#: sl/SL_Menu.py:296 sl/SL_Menu.py:804 sl/SL_Menu.py:1462 +msgid "List Inactive Projects" +msgstr "Liste des projets inactifs" -msgid "Date Range Report" -msgstr "Rapport par plage de dates" +#: sl/SL_Menu.py:297 sl/SL_Menu.py:805 +msgid "Demote Project to Task" +msgstr "Rétrograder le projet en tâche" -#: TimeTrackerCLI.py:507 -msgid "Work started on '{sub_name}' in project '{main_name}'." -msgstr "Travail démarré sur '{sub_name}' dans le projet '{main_name}'." +#: sl/SL_Menu.py:298 sl/SL_Menu.py:806 sl/SL_Menu.py:1524 +msgid "List Completed Projects" +msgstr "Liste des projets terminés" -#: TimeTrackerCLI.py:514 -msgid "\n--- Current Active Work ---" -msgstr "\n--- Travail actif en cours ---" +#: sl/SL_Menu.py:300 sl/SL_Menu.py:782 sl/SL_Menu.py:817 +msgid "Task Management" +msgstr "Gestion des tâches" -msgid "Start Date" -msgstr "Date de début" +#: sl/SL_Menu.py:301 sl/SL_Menu.py:819 sl/SL_Menu.py:1542 sl/SL_Menu.py:1573 +#: sl/SL_Menu.py:1646 +msgid "Add Task" +msgstr "Ajouter une tâche" -#: TimeTrackerCLI.py:523 -msgid "You are currently working on:" -msgstr "Vous travaillez actuellement sur :" +#: sl/SL_Menu.py:304 sl/SL_Menu.py:822 sl/SL_Menu.py:1292 +msgid "List Tasks" +msgstr "Liste des tâches" -#: TimeTrackerCLI.py:524 -msgid " Project: {name}" -msgstr " Projet : {name}" +#: sl/SL_Menu.py:305 sl/SL_Menu.py:823 sl/SL_Menu.py:1324 +msgid "Rename Task" +msgstr "Renommer la tâche" -msgid "End Date" -msgstr "Date de fin" +#: sl/SL_Menu.py:306 sl/SL_Menu.py:824 sl/SL_Menu.py:909 sl/SL_Menu.py:935 +#: sl/SL_Menu.py:1114 +msgid "Close Task" +msgstr "Fermer la tâche" -#: TimeTrackerCLI.py:525 -msgid " Task: {name}" -msgstr " Tâche : {name}" +#: sl/SL_Menu.py:307 sl/SL_Menu.py:825 sl/SL_Menu.py:954 sl/SL_Menu.py:980 +msgid "Re-open Task" +msgstr "Rouvrir la tâche" -#: TimeTrackerCLI.py:526 -msgid " Started at: {date}" -msgstr " Démarré à : {date}" +#: sl/SL_Menu.py:308 sl/SL_Menu.py:826 sl/SL_Menu.py:999 sl/SL_Menu.py:1026 +msgid "Delete Task" +msgstr "Supprimer la tâche" -#: TimeTrackerCLI.py:527 -msgid " Duration: {duration}" -msgstr " Durée : {duration}" +#: sl/SL_Menu.py:309 sl/SL_Menu.py:827 sl/SL_Menu.py:1045 sl/SL_Menu.py:1081 +msgid "Move Task" +msgstr "Déplacer la tâche" -#: TimeTrackerCLI.py:529 -msgid "No active work session." -msgstr "Aucune session de travail active." +#: sl/SL_Menu.py:310 sl/SL_Menu.py:828 sl/SL_Menu.py:1100 +msgid "List Inactive Tasks" +msgstr "Liste des tâches inactives" -#: TimeTrackerCLI.py:532 -msgid "\n--- Stop Work ---" -msgstr "\n--- Arrêter le travail ---" +#: sl/SL_Menu.py:311 sl/SL_Menu.py:829 sl/SL_Menu.py:1127 +msgid "List All Closed Tasks" +msgstr "Liste de toutes les tâches fermées" -#: TimeTrackerCLI.py:534 -msgid "Work session stopped successfully." -msgstr "Session de travail arrêtée avec succès." +#: sl/SL_Menu.py:312 sl/SL_Menu.py:477 sl/SL_Menu.py:539 sl/SL_Menu.py:626 +#: sl/SL_Menu.py:830 sl/SL_Menu.py:1673 sl/SL_Menu.py:1693 sl/SL_Menu.py:1728 +msgid "Edit Task" +msgstr "Modifier la tâche" -msgid "Detailed Task Report" -msgstr "Rapport détaillé de tâche" +#: sl/SL_Menu.py:315 sl/SL_Menu.py:833 sl/SL_Menu.py:1152 +msgid "Delete All Closed Tasks" +msgstr "Supprimer toutes les tâches fermées" -#: TimeTrackerCLI.py:536 -msgid "No active work session to stop." -msgstr "Aucune session de travail active à arrêter." +#: sl/SL_Menu.py:316 sl/SL_Menu.py:834 sl/SL_Menu.py:1194 +msgid "Promote Task to Project" +msgstr "Promouvoir la tâche en projet" -#: TimeTrackerCLI.py:598 -msgid "\nChecking for updates..." -msgstr "\nRecherche de mises à jour..." +#: sl/SL_Menu.py:319 +msgid "Today View" +msgstr "Vue du jour" -#: TimeTrackerCLI.py:602 -msgid "Exiting application. Goodbye!" -msgstr "Fermeture de l'application. Au revoir !" +#: sl/SL_Menu.py:323 sl/SL_Menu.py:405 +msgid "Task Planning" +msgstr "Planification des tâches" -msgid "Detailed Project Report" -msgstr "Rapport détaillé de projet" +#: sl/SL_Menu.py:327 sl/SL_Menu.py:655 +msgid "E-Mail Task Assignment" +msgstr "Attribution des tâches par e-mail" -#: TimeTrackerCLI.py:605 -msgid "Invalid choice. Please enter a number from 0 to 6." -msgstr "Choix invalide. Veuillez entrer un nombre de 0 à 6." +#: sl/SL_Menu.py:331 sl/SL_Menu.py:473 sl/SL_Menu.py:535 sl/SL_Menu.py:622 +msgid "Start work on task" +msgstr "Démarrer le travail sur la tâche" -#: update.py:24 -msgid "" -"Warning: Update check skipped. 'github_repo' not found in config.json or " -"file is invalid." -msgstr "" -"Avertissement : Vérification de mise à jour ignorée. 'github_repo' non " -"trouvé dans config.json ou fichier invalide." +#: sl/SL_Menu.py:335 +msgid "Show current work" +msgstr "Afficher le travail en cours" + +#: sl/SL_Menu.py:339 +msgid "Stop current work" +msgstr "Arrêter le travail en cours" + +#: sl/SL_Menu.py:347 sl/SL_Menu.py:845 +msgid "Reporting" +msgstr "Rapports" + +#: sl/SL_Menu.py:348 sl/SL_Menu.py:848 +msgid "Daily Report (Today)" +msgstr "Rapport quotidien (aujourd'hui)" + +#: sl/SL_Menu.py:352 sl/SL_Menu.py:853 sl/SL_Menu.py:2195 +msgid "Daily Report (Specific Day)" +msgstr "Rapport journalier (Jour spécifique)" + +#: sl/SL_Menu.py:354 sl/SL_Menu.py:854 sl/SL_Menu.py:2214 +msgid "Date Range Report" +msgstr "Rapport par plage de dates" + +#: sl/SL_Menu.py:356 sl/SL_Menu.py:855 sl/SL_Menu.py:2241 sl/SL_Menu.py:2272 +msgid "Detailed Task Report" +msgstr "Rapport détaillé de tâche" -#: update.py:38 +#: sl/SL_Menu.py:358 sl/SL_Menu.py:856 sl/SL_Menu.py:2300 +msgid "Detailed Project Report" +msgstr "Rapport détaillé de projet" + +#: sl/SL_Menu.py:360 sl/SL_Menu.py:857 sl/SL_Menu.py:2327 msgid "Detailed Daily Report" msgstr "Rapport journalier détaillé" -msgid "A new version ({version}) is available." -msgstr "Une nouvelle version ({version}) est disponible." +#: sl/SL_Menu.py:364 sl/SL_Menu.py:868 +msgid "Settings" +msgstr "Paramètres" -#: update.py:43 -msgid "Error: Download URL for the new version not found." -msgstr "Erreur : URL de téléchargement pour la nouvelle version non trouvée." +#: sl/SL_Menu.py:371 sl/SL_Menu.py:1897 +msgid "Current Active Work" +msgstr "Travail actif en cours" -#: update.py:47 -msgid "Error checking for updates: {error}" -msgstr "Erreur lors de la recherche de mises à jour : {error}" +#: sl/SL_Menu.py:376 sl/SL_Menu.py:497 sl/SL_Menu.py:559 sl/SL_Menu.py:633 +#: sl/SL_Menu.py:1773 +msgid "Done" +msgstr "Terminé" -#: update.py:49 -msgid "An unexpected error occurred while checking for updates: {error}" +#: sl/SL_Menu.py:390 +msgid "Edit current task" +msgstr "Modifier la tâche actuelle" + +#: sl/SL_Menu.py:398 +msgid "Exit" +msgstr "Quitter" + +#: sl/SL_Menu.py:410 sl/SL_Menu.py:420 +msgid "Tomorrow" +msgstr "Demain" + +#: sl/SL_Menu.py:411 sl/SL_Menu.py:421 +msgid "Weekly overview" +msgstr "Aperçu hebdomadaire" + +#: sl/SL_Menu.py:412 sl/SL_Menu.py:422 +msgid "Overdue tasks" +msgstr "Tâches en retard" + +#: sl/SL_Menu.py:413 sl/SL_Menu.py:423 +msgid "Unplanned tasks" +msgstr "Tâches non planifiées" + +#: sl/SL_Menu.py:414 +msgid "All" +msgstr "Tous" + +#: sl/SL_Menu.py:416 +msgid "Filter" +msgstr "Filtrer" + +#: sl/SL_Menu.py:430 +msgid "Tasks" +msgstr "Tâches" + +#: sl/SL_Menu.py:572 +msgid "No tasks found." +msgstr "Aucune tâche trouvée." + +#: sl/SL_Menu.py:574 sl/SL_Menu.py:648 sl/SL_Menu.py:770 sl/SL_Menu.py:810 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:914 sl/SL_Menu.py:925 sl/SL_Menu.py:959 +#: sl/SL_Menu.py:970 sl/SL_Menu.py:1004 sl/SL_Menu.py:1015 sl/SL_Menu.py:1050 +#: sl/SL_Menu.py:1061 sl/SL_Menu.py:1069 sl/SL_Menu.py:1120 sl/SL_Menu.py:1145 +#: sl/SL_Menu.py:1167 sl/SL_Menu.py:1199 sl/SL_Menu.py:1210 sl/SL_Menu.py:1250 +#: sl/SL_Menu.py:1262 sl/SL_Menu.py:1297 sl/SL_Menu.py:1317 sl/SL_Menu.py:1329 +#: sl/SL_Menu.py:1340 sl/SL_Menu.py:1376 sl/SL_Menu.py:1406 sl/SL_Menu.py:1436 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1488 sl/SL_Menu.py:1535 sl/SL_Menu.py:1547 +#: sl/SL_Menu.py:1678 sl/SL_Menu.py:1697 sl/SL_Menu.py:1710 sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1858 sl/SL_Menu.py:1868 sl/SL_Menu.py:1912 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:2102 sl/SL_Menu.py:2207 sl/SL_Menu.py:2234 sl/SL_Menu.py:2246 +#: sl/SL_Menu.py:2258 sl/SL_Menu.py:2277 sl/SL_Menu.py:2293 sl/SL_Menu.py:2305 +#: sl/SL_Menu.py:2320 sl/SL_Menu.py:2339 sl/SL_Menu.py:2380 sl/SL_Menu.py:2395 +msgid "Back" +msgstr "Retour" + +#: sl/SL_Menu.py:581 +msgid "Today's Tasks" +msgstr "Tâches du jour" + +#: sl/SL_Menu.py:646 +msgid "No tasks for today." +msgstr "Aucune tâche pour aujourd'hui." + +#: sl/SL_Menu.py:661 +msgid "Fetching emails..." +msgstr "Récupération des e-mails..." + +#: sl/SL_Menu.py:664 +#, python-brace-format +msgid "Error fetching emails: {error}" +msgstr "Erreur lors de la récupération des e-mails : {error}" + +#: sl/SL_Menu.py:667 +#, 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:669 +msgid "No new emails found." +msgstr "Aucun nouvel e-mail trouvé." + +#: sl/SL_Menu.py:675 +msgid "No unassigned email tasks available." +msgstr "Aucune tâche par e-mail non attribuée disponible." + +#: sl/SL_Menu.py:687 +msgid "Assign Project" +msgstr "Attribuer un projet" + +#: sl/SL_Menu.py:698 +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:701 +msgid "Yes, delete" +msgstr "Oui, supprimer" + +#: sl/SL_Menu.py:706 +msgid "No, cancel" +msgstr "Non, annuler" + +#: sl/SL_Menu.py:713 +msgid "Delete" +msgstr "Supprimer" + +#: sl/SL_Menu.py:717 +msgid "Edit Details" +msgstr "Modifier les détails" + +#: sl/SL_Menu.py:725 sl/SL_Menu.py:1757 +msgid "Task Name" +msgstr "Nom de la tâche" + +#: sl/SL_Menu.py:734 sl/SL_Menu.py:1761 +msgid "Due Date" +msgstr "Date d'échéance" + +#: sl/SL_Menu.py:742 sl/SL_Menu.py:1765 +msgid "Clear" +msgstr "Effacer" + +#: sl/SL_Menu.py:749 sl/SL_Menu.py:1634 sl/SL_Menu.py:1804 +msgid "Notes (Markdown)" +msgstr "Aucun temps suivi entre le {start_date} et le {end_date}." + +#: sl/SL_Menu.py:751 sl/SL_Menu.py:1816 +msgid "Save Changes" +msgstr "Enregistrer les modifications" + +#: sl/SL_Menu.py:762 +msgid "Task details updated successfully." +msgstr "Détails de la tâche mis à jour avec succès." + +#: sl/SL_Menu.py:768 +msgid "Error updating task details." +msgstr "Erreur lors de la mise à jour des détails de la tâche." + +#: sl/SL_Menu.py:778 sl/SL_Menu.py:794 +msgid "Project Management" +msgstr "Gestion de projet" + +#: sl/SL_Menu.py:787 sl/SL_Menu.py:861 +msgid "Back to Main Menu" +msgstr "Retour au menu principal" + +#: sl/SL_Menu.py:873 sl/SL_Menu.py:2000 +msgid "Report Format" +msgstr "Format du rapport" + +#: sl/SL_Menu.py:875 sl/SL_Menu.py:2159 +msgid "Email Settings" +msgstr "Paramètres de messagerie" + +#: sl/SL_Menu.py:876 sl/SL_Menu.py:2020 +msgid "Change CSS Style" +msgstr "Changer le style CSS" + +#: sl/SL_Menu.py:877 sl/SL_Menu.py:2058 +msgid "Change View Mode" +msgstr "Changer le mode d'affichage" + +#: sl/SL_Menu.py:890 +msgid "Add New Project" +msgstr "Ajouter un nouveau projet" + +#: sl/SL_Menu.py:893 +msgid "Name of the project" +msgstr "Nom du projet" + +#: sl/SL_Menu.py:897 +#, python-brace-format +msgid "Project '{name}' added." +msgstr "Projet '{name}' ajouté." + +#: sl/SL_Menu.py:901 sl/SL_Menu.py:947 sl/SL_Menu.py:992 sl/SL_Menu.py:1038 +#: sl/SL_Menu.py:1093 sl/SL_Menu.py:1187 sl/SL_Menu.py:1235 sl/SL_Menu.py:1285 +#: sl/SL_Menu.py:1364 sl/SL_Menu.py:1394 sl/SL_Menu.py:1424 sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1517 sl/SL_Menu.py:1557 sl/SL_Menu.py:1666 sl/SL_Menu.py:1685 +#: sl/SL_Menu.py:1843 sl/SL_Menu.py:1890 sl/SL_Menu.py:1934 sl/SL_Menu.py:1995 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2051 sl/SL_Menu.py:2084 sl/SL_Menu.py:2152 +#: sl/SL_Menu.py:2188 +msgid "Cancel" +msgstr "Annuler" + +#: sl/SL_Menu.py:919 sl/SL_Menu.py:964 sl/SL_Menu.py:1009 sl/SL_Menu.py:1204 +#: sl/SL_Menu.py:1267 sl/SL_Menu.py:1302 sl/SL_Menu.py:1334 sl/SL_Menu.py:1383 +#: sl/SL_Menu.py:1413 sl/SL_Menu.py:1443 sl/SL_Menu.py:1863 sl/SL_Menu.py:2251 +#: sl/SL_Menu.py:2312 +msgid "Select Project" +msgstr "Sélectionner le projet" + +#: sl/SL_Menu.py:924 +#, python-brace-format +msgid "No open tasks to close in '{name}'." +msgstr "Aucune tâche ouverte à fermer dans '{name}'." + +#: sl/SL_Menu.py:931 sl/SL_Menu.py:976 sl/SL_Menu.py:1021 sl/SL_Menu.py:1075 +#: sl/SL_Menu.py:1216 sl/SL_Menu.py:1344 sl/SL_Menu.py:1700 sl/SL_Menu.py:1874 +#: sl/SL_Menu.py:2282 +msgid "Select Task" +msgstr "Sélectionner une tâche" + +#: sl/SL_Menu.py:941 +#, 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:969 +#, python-brace-format +msgid "No closed tasks to reopen in '{name}'." +msgstr "Aucune tâche fermée à rouvrir dans '{name}'." + +#: sl/SL_Menu.py:986 +#, 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:1014 +#, python-brace-format +msgid "No open tasks to delete in '{name}'." +msgstr "Aucune tâche ouverte à supprimer dans '{name}'." + +#: sl/SL_Menu.py:1025 +msgid "This action cannot be undone." +msgstr "Cette action ne peut pas être annulée." + +#: sl/SL_Menu.py:1032 +#, 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:1055 +msgid "Select Source Project" +msgstr "Sélectionnez le projet source" + +#: sl/SL_Menu.py:1060 +#, python-brace-format +msgid "No tasks found in '{name}'." +msgstr "Aucune tâche trouvée dans '{name}'." + +#: sl/SL_Menu.py:1068 +msgid "No other projects available to move to." +msgstr "Aucun autre projet disponible vers lequel migrer." + +#: sl/SL_Menu.py:1079 sl/SL_Menu.py:1503 +msgid "Select Target Project" +msgstr "Sélectionnez le projet cible" + +#: sl/SL_Menu.py:1087 +#, 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:1091 +msgid "Error: Could not move task." +msgstr "Erreur : impossible de déplacer la tâche." + +#: sl/SL_Menu.py:1102 sl/SL_Menu.py:1464 +msgid "Weeks of inactivity" +msgstr "Semaines d'inactivité" + +#: sl/SL_Menu.py:1107 +#, python-brace-format +msgid "Inactive Tasks (> {weeks} weeks):" +msgstr "Tâches inactives (>{weeks}semaines) :" + +#: sl/SL_Menu.py:1112 sl/SL_Menu.py:1472 +msgid "Last Activity" +msgstr "Dernière activité" + +#: sl/SL_Menu.py:1171 +#, python-brace-format +msgid "" +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." msgstr "" -"Une erreur inattendue s'est produite lors de la recherche de mises à jour : " -"{error}" +"Êtes-vous sûr de vouloir supprimer{count}tâches fermées ? Cette action ne " +"peut pas être annulée." -"Une erreur inattendue s'est produite lors de la recherche de mises à jour : " -"{error}" +#: sl/SL_Menu.py:1173 +msgid "Show projects to delete" +msgstr "Afficher les projets à supprimer" -#: update.py:61 -msgid "Downloading update..." -msgstr "Téléchargement de la mise à jour..." +#: sl/SL_Menu.py:1177 +msgid "Delete All" +msgstr "Supprimer tout" -#: update.py:67 -msgid "Download complete. The update will be installed on the next start." -msgstr "Téléchargement terminé. La mise à jour sera installée au prochain démarrage." +#: sl/SL_Menu.py:1183 +#, python-brace-format +msgid "Successfully deleted {count} tasks." +msgstr "Tâches{count}supprimées avec succès." -#: update.py:70 -msgid "Error downloading the update: {error}" -msgstr "Erreur lors du téléchargement de la mise à jour : {error}" +#: sl/SL_Menu.py:1209 +#, python-brace-format +msgid "No open tasks to promote in '{name}'." +msgstr "Aucune tâche ouverte à promouvoir dans '{name}'." -msgid "Report Result" -msgstr "Résultat du rapport" +#: sl/SL_Menu.py:1220 +msgid "" +"This will create a new Project with the task's name and move all time " +"entries to a 'General' task within it." +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." -#: update.py:112 -msgid "Creating backup of current version before update..." -msgstr "Création d'une sauvegarde de la version actuelle avant la mise à jour..." +#: sl/SL_Menu.py:1222 +msgid "Promote to Project" +msgstr "Promouvoir vers le projet" -#: update.py:121 -msgid "Backup created successfully as {filename}." -msgstr "Sauvegarde créée avec succès sous le nom {filename}." +#: sl/SL_Menu.py:1261 +msgid "No open projects to rename." +msgstr "Aucun projet ouvert à renommer." -#: update.py:123 -msgid "Warning: Could not create backup. Error: {error}" -msgstr "Avertissement : Impossible de créer la sauvegarde. Erreur : {error}" +#: sl/SL_Menu.py:1270 sl/SL_Menu.py:1349 +msgid "New Name" +msgstr "Nouveau nom" -msgid "This feature is available in the CLI. GUI implementation coming soon." -msgstr "Cette fonctionnalité est disponible en CLI. L'implémentation GUI arrive bientôt." +#: sl/SL_Menu.py:1271 sl/SL_Menu.py:1350 +msgid "Rename" +msgstr "Renommer" -#: update.py:125 -msgid "Installing update..." -msgstr "Installation de la mise à jour..." +#: sl/SL_Menu.py:1275 sl/SL_Menu.py:1354 +msgid "Please enter a new name." +msgstr "Veuillez saisir un nouveau nom." -#: update.py:143 -msgid "Skipping protected file: {filename}. It will not be overwritten." -msgstr "Fichier protégé ignoré : {filename}. Il ne sera pas écrasé." +#: sl/SL_Menu.py:1277 sl/SL_Menu.py:1356 +msgid "New name is the same as the old name." +msgstr "Le nouveau nom est le même que l'ancien nom." -#: update.py:152 -msgid "Update installed successfully." -msgstr "Mise à jour installée avec succès." +#: sl/SL_Menu.py:1279 +#, 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." -msgid "Time Control" -msgstr "Contrôle du temps" +#: sl/SL_Menu.py:1339 +#, python-brace-format +msgid "No open tasks to rename in '{name}'." +msgstr "Aucune tâche ouverte à renommer dans '{name}'." -#: update.py:154 -msgid "Error during update installation: {error}" -msgstr "Erreur lors de l'installation de la mise à jour : {error}" +#: sl/SL_Menu.py:1362 +msgid "Error: Could not rename. The new name might already exist." +msgstr "" +"Erreur : impossible de renommer. Le nouveau nom existe peut-être déjà." -#: update.py:164 -msgid "Error: No previous version backup '{filename}' found." -msgstr "Erreur : Aucune sauvegarde de la version précédente '{filename}' trouvée." +#: sl/SL_Menu.py:1375 +msgid "No open projects to close." +msgstr "Aucun projet ouvert à fermer." -#: update.py:167 -msgid "Restoring previous version from '{filename}'..." -msgstr "Restauration de la version précédente depuis '{filename}'..." +#: sl/SL_Menu.py:1388 +#, python-brace-format +msgid "Project '{name}' has been closed." +msgstr "Le projet '{name}' a été clôturé." + +#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1422 sl/SL_Menu.py:1453 +msgid "Error: Project not found." +msgstr "Erreur : projet introuvable." -#: update.py:182 +#: sl/SL_Menu.py:1405 +msgid "No closed projects to reopen." +msgstr "Aucun projet fermé à rouvrir." + +#: sl/SL_Menu.py:1418 +#, python-brace-format +msgid "Project '{name}' has been reopened." +msgstr "Le projet '{name}' a été rouvert." + +#: sl/SL_Menu.py:1444 msgid "" -"Skipping user data file: {filename}. It will not be overwritten during " -"restore." +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." msgstr "" -"Ignorer le fichier de données utilisateur : {filename}. Il ne sera pas " -"écrasé lors de la restauration." +"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:1449 +#, python-brace-format +msgid "Project '{name}' has been deleted." +msgstr "Le projet '{name}' a été supprimé." + +#: sl/SL_Menu.py:1469 +#, python-brace-format +msgid "Inactive Projects (> {weeks} weeks):" +msgstr "Projets inactifs (>{weeks}semaines) :" + +#: sl/SL_Menu.py:1474 +#, 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:1483 sl/SL_Menu.py:1506 +msgid "Demote Project" +msgstr "Rétrograder le projet" + +#: sl/SL_Menu.py:1495 +msgid "Select Project to Demote" +msgstr "Sélectionner le projet à rétrograder" + +#: sl/SL_Menu.py:1501 +msgid "No other projects available to demote into." +msgstr "Aucun autre projet disponible pour rétrograder." + +#: sl/SL_Menu.py:1504 +#, 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:1529 +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:1533 +msgid "No completed projects found." +msgstr "Aucun projet terminé trouvé." + +#: sl/SL_Menu.py:1542 sl/SL_Menu.py:1673 sl/SL_Menu.py:2241 +msgid "Step 1: Select Project" +msgstr "Étape 1 : Sélectionner le projet" -#: update.py:188 -msgid "Previous version restored successfully." -msgstr "Version précédente restaurée avec succès." +#: sl/SL_Menu.py:1546 sl/SL_Menu.py:1857 +msgid "No open projects found. Please add one first." +msgstr "Aucun projet ouvert trouvé. Veuillez d'abord en ajouter un." -#: update.py:190 -msgid "Restarting application to apply changes..." -msgstr "Redémarrage de l'application pour appliquer les modifications..." +#: sl/SL_Menu.py:1551 sl/SL_Menu.py:1680 sl/SL_Menu.py:1905 +msgid "Project" +msgstr "Projet" -#: update.py:192 -msgid "Error during restoration: {error}" -msgstr "Erreur lors de la restauration : {error}" +#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1681 sl/SL_Menu.py:1705 sl/SL_Menu.py:2253 +msgid "Next" +msgstr "Suivant" -#: update.py:193 -msgid "The backup file '{filename}' was not deleted." -msgstr "Le fichier de sauvegarde '{filename}' n'a pas été supprimé." +#: sl/SL_Menu.py:1568 sl/SL_Menu.py:2267 +msgid "No project selected. Please start again." +msgstr "Aucun projet sélectionné. S'il vous plaît, recommencez." + +#: sl/SL_Menu.py:1573 +msgid "To Project:" +msgstr "Au projet :" + +#: sl/SL_Menu.py:1594 +msgid "Name of the new task" +msgstr "Nom de la nouvelle tâche" + +#: sl/SL_Menu.py:1600 +msgid "Due date" +msgstr "Date d'échéance" + +#: sl/SL_Menu.py:1606 sl/SL_Menu.py:1775 +msgid "Recurring" +msgstr "Récurrent" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "daily" +msgstr "quotidien" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "on all business days" +msgstr "tous les jours ouvrables" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "weekly" +msgstr "hebdomadaire" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "monthly" +msgstr "mensuel" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "userdefined" +msgstr "# Rapport de temps journalier : {date}" + +#: sl/SL_Menu.py:1624 sl/SL_Menu.py:1797 +msgid "Frequency" +msgstr "Fréquence" + +#: sl/SL_Menu.py:1628 sl/SL_Menu.py:1800 +msgid "Days" +msgstr "Aucun temps suivi pour le {date}." + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Edit" +msgstr "Modifier" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Preview" +msgstr "Aperçu" + +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1807 +msgid "No notes provided." +msgstr "Aucune note fournie." + +#: sl/SL_Menu.py:1642 sl/SL_Menu.py:1812 +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:1650 +msgid "Please enter a name." +msgstr "Veuillez entrer un nom." + +#: sl/SL_Menu.py:1661 +#, python-brace-format +msgid "Task '{sub_name}' added to '{main_name}'." +msgstr "Tâche '{sub_name}' ajoutée à '{main_name}'." + +#: sl/SL_Menu.py:1693 sl/SL_Menu.py:2272 +msgid "Step 2: Select Task from" +msgstr "Étape 2 : Sélectionner la tâche de" + +#: sl/SL_Menu.py:1696 +msgid "No open tasks found." +msgstr "Aucune tâche ouverte trouvée." + +#: sl/SL_Menu.py:1724 +msgid "Task not found." +msgstr "Tâche non trouvée." + +#: sl/SL_Menu.py:1840 +msgid "Error: Could not update task." +msgstr "Erreur : Impossible de mettre à jour la tâche." + +#: sl/SL_Menu.py:1853 +msgid "Start Work on Task" +msgstr "Démarrer le travail sur la tâche" + +#: sl/SL_Menu.py:1867 +#, 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:1878 +msgid "Start Work" +msgstr "Démarrer le travail" + +#: sl/SL_Menu.py:1906 +msgid "Task" +msgstr "Tâche" + +#: sl/SL_Menu.py:1907 +msgid "Started at" +msgstr "Démarré à" + +#: sl/SL_Menu.py:1918 +msgid "Streamlit Port Settings" +msgstr "Paramètres du port Streamlit" + +#: sl/SL_Menu.py:1922 +msgid "Current Streamlit Port" +msgstr "Port Streamlit actuel" + +#: sl/SL_Menu.py:1925 +msgid "New Port" +msgstr "Nouveau port" + +#: sl/SL_Menu.py:1926 sl/SL_Menu.py:1958 sl/SL_Menu.py:2007 sl/SL_Menu.py:2042 +#: sl/SL_Menu.py:2074 sl/SL_Menu.py:2141 sl/SL_Menu.py:2173 +msgid "Save" +msgstr "Enregistrer" + +#: sl/SL_Menu.py:1930 +#, 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:1940 +msgid "Change Data Storage Location" +msgstr "Changer l'emplacement de stockage des données" + +#: sl/SL_Menu.py:1943 +msgid "Current data file" +msgstr "Fichier de données actuel" + +#: sl/SL_Menu.py:1946 +msgid "New Path for data file" +msgstr "Nouveau chemin pour le fichier de données" + +#: sl/SL_Menu.py:1952 +msgid "Move existing data to the new location" +msgstr "Déplacer les données existantes vers le nouvel emplacement" + +#: sl/SL_Menu.py:1955 +msgid "" +"If unchecked, the old data file will remain, and a new empty one might be " +"created at the new location on restart." +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:1962 +msgid "Please enter a new path." +msgstr "Veuillez entrer un nouveau chemin." + +#: sl/SL_Menu.py:1970 +msgid "" +"Error: For security, the data file must be located within the application " +"directory." +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:1980 +msgid "" +"Storage location updated. Please restart the application for the changes to " +"take effect." +msgstr "" +"Emplacement de stockage mis à jour. Veuillez redémarrer l'application pour " +"que les changements prennent effet." + +#: sl/SL_Menu.py:2006 +msgid "Select Format" +msgstr "Sélectionnez le format" + +#: sl/SL_Menu.py:2011 +msgid "Report format updated." +msgstr "Format de rapport mis à jour." + +#: sl/SL_Menu.py:2024 +msgid "Current CSS file" +msgstr "Fichier CSS actuel" + +#: sl/SL_Menu.py:2041 +msgid "Select CSS File" +msgstr "Sélectionner le fichier CSS" + +#: sl/SL_Menu.py:2047 +msgid "" +"CSS style updated. Please restart the application for the changes to take " +"effect." +msgstr "" +"Style CSS mis à jour. Veuillez redémarrer l'application pour que les " +"changements prennent effet." + +#: sl/SL_Menu.py:2063 +msgid "App Window (Webview)" +msgstr "Fenêtre d'application (Webview)" + +#: sl/SL_Menu.py:2063 +msgid "System Browser" +msgstr "Navigateur système" + +#: sl/SL_Menu.py:2073 +msgid "Select View Mode" +msgstr "Sélectionner le mode d'affichage" + +#: sl/SL_Menu.py:2080 +msgid "" +"View mode updated. Please restart the application for the changes to take " +"effect." +msgstr "" +"Mode d'affichage mis à jour. Veuillez redémarrer l'application pour que les " +"changements prennent effet." + +#: sl/SL_Menu.py:2091 +msgid "Restore Previous Version" +msgstr "Restaurer la version précédente" + +#: sl/SL_Menu.py:2096 +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:2101 +#, 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:2105 +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 "" +"Ceci restaurera l'application à la version sauvegardée précédemment. " +"L'application redémarrera ensuite. Vous devrez peut-être actualiser " +"manuellement votre navigateur s'il ne se reconnecte pas automatiquement." + +#: sl/SL_Menu.py:2107 +msgid "Restore and Restart" +msgstr "Restaurer et redémarrer" + +#: sl/SL_Menu.py:2108 +msgid "Restoring and restarting..." +msgstr "Restauration et redémarrage..." + +#: sl/SL_Menu.py:2111 +msgid "Restore complete. Please restart the application." +msgstr "Restauration terminée. Veuillez redémarrer l'application." + +#: sl/SL_Menu.py:2117 +msgid "Change Language" +msgstr "1. Changer de langue" + +#: sl/SL_Menu.py:2140 +msgid "Select Language" +msgstr "Sélectionner la langue" + +#: sl/SL_Menu.py:2148 +msgid "" +"Language changed. Please restart the application for the changes to take " +"effect." +msgstr "" +"Langue changée. Veuillez redémarrer l'application pour que les changements " +"prennent effet." + +#: sl/SL_Menu.py:2166 +msgid "Enable email import" +msgstr "Activer l'importation d'e-mails" + +#: sl/SL_Menu.py:2167 +msgid "IMAP Server" +msgstr "Serveur IMAP" + +#: sl/SL_Menu.py:2168 +msgid "Port" +msgstr "Port" + +#: sl/SL_Menu.py:2169 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: sl/SL_Menu.py:2170 +msgid "Password" +msgstr "Mot de passe" + +#: sl/SL_Menu.py:2171 +msgid "Use SSL" +msgstr "Utiliser SSL" + +#: sl/SL_Menu.py:2184 +msgid "Email settings saved." +msgstr "Paramètres de messagerie enregistrés." + +#: sl/SL_Menu.py:2198 sl/SL_Menu.py:2330 +msgid "Select Date" +msgstr "Sélectionner la date" + +#: sl/SL_Menu.py:2199 sl/SL_Menu.py:2223 sl/SL_Menu.py:2287 sl/SL_Menu.py:2313 +#: sl/SL_Menu.py:2331 +msgid "Generate Report" +msgstr "Générer le rapport" + +#: sl/SL_Menu.py:2219 +msgid "Start Date" +msgstr "Date de début" + +#: sl/SL_Menu.py:2221 +msgid "End Date" +msgstr "Date de fin" + +#: sl/SL_Menu.py:2346 +msgid "Report Result" +msgstr "Résultat du rapport" + +#: sl/SL_Menu.py:2375 +msgid "Export Report" +msgstr "Rapport d'exportation" + +#~ msgid "" +#~ "\n" +#~ "Error: Failed to install dependencies. Please install them manually using: pip install -r {requirements_path}" +#~ msgstr "" +#~ "\n" +#~ "Erreur : Échec de l'installation des dépendances. Veuillez les installer manuellement avec : pip install -r {requirements_path}" + +#~ msgid "open" +#~ msgstr "ouvert" + +#~ msgid "A task named '{task_name}' already exists in '{main_name}'." +#~ msgstr "Une tâche nommée '{task_name}' existe déjà dans '{main_name}'." + +#~ msgid "Project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Le projet '{old_name}' a été renommé en '{new_name}'." + +#~ msgid "6. Demote Main-Project to Task" +#~ msgstr "6. Rétrograder un projet principal en tâche" + +#~ msgid "" +#~ "\n" +#~ "No time tracked for {date}." +#~ msgstr "" +#~ "\n" +#~ "Aucun temps suivi pour le {date}." + +#~ msgid "A task with this name already exists in this project." +#~ msgstr "Une tâche avec ce nom existe déjà dans ce projet." + +#~ msgid "" +#~ "\n" +#~ "--- Add New Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Ajouter un nouveau sous-projet ---" + +#~ msgid "No main projects found. Please add one first." +#~ msgstr "Aucun projet principal trouvé. Veuillez d'abord en ajouter un." + +#~ msgid "Name of the new sub-project: " +#~ msgstr "Nom du nouveau sous-projet : " + +#~ msgid "" +#~ "\n" +#~ "--- List Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Lister les sous-projets ---" + +#~ msgid "Sub-projects for '{name}':" +#~ msgstr "Sous-projets pour '{name}' :" + +#~ msgid "" +#~ "\n" +#~ "--- Rename Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Renommer le sous-projet ---" + +#~ msgid "Select a sub-project from '{name}' to rename:" +#~ msgstr "Sélectionnez un sous-projet de '{name}' à renommer :" + +#~ msgid "Enter the number of the sub-project: " +#~ msgstr "Entrez le numéro du sous-projet : " + +#~ msgid "Sub-project '{old_name}' renamed to '{new_name}'." +#~ msgstr "Le sous-projet '{old_name}' a été renommé en '{new_name}'." + +#~ msgid "" +#~ "\n" +#~ "--- Delete Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Supprimer le sous-projet ---" + +#~ msgid "Select a sub-project from '{name}' to delete:" +#~ msgstr "Sélectionnez un sous-projet de '{name}' à supprimer :" + +#~ msgid "" +#~ "\n" +#~ "--- List All Closed Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Lister tous les sous-projets fermés ---" + +#~ msgid "" +#~ "\n" +#~ "--- Delete All Closed Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Supprimer tous les sous-projets fermés ---" + +#~ msgid "" +#~ "\n" +#~ "--- List Inactive Sub-Projects ---" +#~ msgstr "" +#~ "\n" +#~ "--- Lister les sous-projets inactifs ---" + +#~ msgid " Sub-Project: {name}" +#~ msgstr " Sous-projet : {name}" + +#~ msgid "" +#~ "\n" +#~ "--- Move Sub-Project ---" +#~ msgstr "" +#~ "\n" +#~ "--- Déplacer le sous-projet ---" + +#~ msgid "" +#~ "\n" +#~ "Select a sub-project from '{name}' to move:" +#~ msgstr "" +#~ "\n" +#~ "Sélectionnez un sous-projet de '{name}' à déplacer :" + +#~ msgid "" +#~ "\n" +#~ "Select the sub-project for the report:" +#~ msgstr "" +#~ "\n" +#~ "Sélectionnez le sous-projet pour le rapport :" + +#~ msgid "Invalid choice. Please enter a number from 0 to 3." +#~ msgstr "Choix invalide. Veuillez entrer un nombre de 0 à 3." + +#~ msgid "Work started on '{sub_name}' in project '{main_name}'." +#~ msgstr "Travail démarré sur '{sub_name}' dans le projet '{main_name}'." + +#~ msgid " Project: {name}" +#~ msgstr " Projet : {name}" + +#~ msgid "This feature is available in the CLI. GUI implementation coming soon." +#~ msgstr "" +#~ "Cette fonctionnalité est disponible en CLI. L'implémentation GUI arrive " +#~ "bientôt." + +#~ msgid "Time Control" +#~ msgstr "Contrôle du temps" diff --git a/locale/timetracker.pot b/locale/timetracker.pot new file mode 100644 index 0000000..896afc2 --- /dev/null +++ b/locale/timetracker.pot @@ -0,0 +1,2476 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-18 12:24+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: TimeTrackerCLI.py:25 +msgid "" +"\n" +"--- Project Management ---" +msgstr "" + +#: TimeTrackerCLI.py:26 +msgid "1. Main Project Management" +msgstr "" + +#: TimeTrackerCLI.py:27 +msgid "2. Task Management" +msgstr "" + +#: TimeTrackerCLI.py:29 +msgid "0. Back to Main Menu" +msgstr "" + +#: TimeTrackerCLI.py:32 TimeTrackerCLI.py:60 TimeTrackerCLI.py:257 +#: TimeTrackerCLI.py:662 TimeTrackerCLI.py:701 TimeTrackerCLI.py:811 +#: TimeTrackerCLI.py:953 +msgid "Choice: " +msgstr "" + +#: TimeTrackerCLI.py:41 +msgid "Invalid choice. Please enter a number from 0 to 2." +msgstr "" + +#: TimeTrackerCLI.py:46 +msgid "" +"\n" +"--- Main Project Management ---" +msgstr "" + +#: TimeTrackerCLI.py:47 +msgid "1. Add Main Project" +msgstr "" + +#: TimeTrackerCLI.py:48 +msgid "2. List Main Projects" +msgstr "" + +#: TimeTrackerCLI.py:49 +msgid "3. Rename Main Project" +msgstr "" + +#: TimeTrackerCLI.py:50 +msgid "4. Close Main Project" +msgstr "" + +#: TimeTrackerCLI.py:51 +msgid "5. Re-open Main Project" +msgstr "" + +#: TimeTrackerCLI.py:52 +msgid "6. Delete Main Project" +msgstr "" + +#: TimeTrackerCLI.py:53 +msgid "7. List Inactive Main Projects" +msgstr "" + +#: TimeTrackerCLI.py:54 +msgid "8. Demote Main-Project to Sub-Project" +msgstr "" + +#: TimeTrackerCLI.py:55 +msgid "9. List Completed Main Projects" +msgstr "" + +#: TimeTrackerCLI.py:57 TimeTrackerCLI.py:254 +msgid "0. Back" +msgstr "" + +#: TimeTrackerCLI.py:64 +msgid "" +"\n" +"--- Add New Main Project ---" +msgstr "" + +#: TimeTrackerCLI.py:65 +msgid "Name of the main project: " +msgstr "" + +#: TimeTrackerCLI.py:67 +#, python-brace-format +msgid "Main project '{name}' added." +msgstr "" + +#: TimeTrackerCLI.py:70 +msgid "" +"\n" +"--- List Main Projects ---" +msgstr "" + +#: TimeTrackerCLI.py:76 TimeTrackerCLI.py:313 sl/SL_Menu.py:1246 +#: sl/SL_Menu.py:1310 +msgid "closed" +msgstr "" + +#: TimeTrackerCLI.py:79 +msgid "No main projects found." +msgstr "" + +#: TimeTrackerCLI.py:82 +msgid "" +"\n" +"--- Rename Main Project ---" +msgstr "" + +#: TimeTrackerCLI.py:85 +msgid "No main projects to rename." +msgstr "" + +#: TimeTrackerCLI.py:88 +msgid "Select an open main project to rename:" +msgstr "" + +#: TimeTrackerCLI.py:93 TimeTrackerCLI.py:117 TimeTrackerCLI.py:139 +#: TimeTrackerCLI.py:162 TimeTrackerCLI.py:272 TimeTrackerCLI.py:301 +#: TimeTrackerCLI.py:333 TimeTrackerCLI.py:370 TimeTrackerCLI.py:405 +#: TimeTrackerCLI.py:441 TimeTrackerCLI.py:568 TimeTrackerCLI.py:604 +#: TimeTrackerCLI.py:855 TimeTrackerCLI.py:888 TimeTrackerCLI.py:969 +msgid "Enter the number of the main project: " +msgstr "" + +#: TimeTrackerCLI.py:96 TimeTrackerCLI.py:349 +#, python-brace-format +msgid "Enter the new name for '{name}': " +msgstr "" + +#: TimeTrackerCLI.py:99 +#, python-brace-format +msgid "Main project '{old_name}' successfully renamed to '{new_name}'." +msgstr "" + +#: TimeTrackerCLI.py:101 sl/SL_Menu.py:1283 +#, python-brace-format +msgid "Error: Could not rename. The new name '{new_name}' might already exist." +msgstr "" + +#: TimeTrackerCLI.py:103 TimeTrackerCLI.py:125 TimeTrackerCLI.py:147 +#: TimeTrackerCLI.py:169 TimeTrackerCLI.py:221 TimeTrackerCLI.py:287 +#: TimeTrackerCLI.py:319 TimeTrackerCLI.py:356 TimeTrackerCLI.py:391 +#: TimeTrackerCLI.py:426 TimeTrackerCLI.py:463 TimeTrackerCLI.py:510 +#: TimeTrackerCLI.py:589 TimeTrackerCLI.py:794 TimeTrackerCLI.py:875 +#: TimeTrackerCLI.py:894 TimeTrackerCLI.py:992 +msgid "Invalid input. Please enter a valid number." +msgstr "" + +#: TimeTrackerCLI.py:106 +msgid "" +"\n" +"--- Close Main Project ---" +msgstr "" + +#: TimeTrackerCLI.py:109 +msgid "No open main projects to close." +msgstr "" + +#: TimeTrackerCLI.py:112 +msgid "Select a main project to close:" +msgstr "" + +#: TimeTrackerCLI.py:121 +#, python-brace-format +msgid "Main project '{name}' has been closed." +msgstr "" + +#: TimeTrackerCLI.py:123 TimeTrackerCLI.py:145 +msgid "Error: Main project not found." +msgstr "" + +#: TimeTrackerCLI.py:128 +msgid "" +"\n" +"--- Re-open Main Project ---" +msgstr "" + +#: TimeTrackerCLI.py:131 +msgid "No closed main projects to reopen." +msgstr "" + +#: TimeTrackerCLI.py:134 +msgid "Select a main project to reopen:" +msgstr "" + +#: TimeTrackerCLI.py:143 +#, python-brace-format +msgid "Main project '{name}' has been reopened." +msgstr "" + +#: TimeTrackerCLI.py:150 +msgid "" +"\n" +"--- Delete Main Project ---" +msgstr "" + +#: TimeTrackerCLI.py:153 +msgid "No main projects to delete." +msgstr "" + +#: TimeTrackerCLI.py:156 +msgid "Select a main project to delete:" +msgstr "" + +#: TimeTrackerCLI.py:165 +#, python-brace-format +msgid "Main project '{name}' deleted." +msgstr "" + +#: TimeTrackerCLI.py:167 TimeTrackerCLI.py:285 +#, python-brace-format +msgid "Error: Main project '{name}' not found." +msgstr "" + +#: TimeTrackerCLI.py:172 +msgid "" +"\n" +"--- List Inactive Main-Projects ---" +msgstr "" + +#: TimeTrackerCLI.py:174 +msgid "Enter the number of weeks without activity (e.g., 8): " +msgstr "" + +#: TimeTrackerCLI.py:176 TimeTrackerCLI.py:518 +msgid "Please enter a positive number." +msgstr "" + +#: TimeTrackerCLI.py:182 +#, python-brace-format +msgid "" +"\n" +"Inactive Main-Projects (>{weeks} weeks):" +msgstr "" + +#: TimeTrackerCLI.py:184 TimeTrackerCLI.py:526 +#, python-brace-format +msgid " - Main Project: {name}" +msgstr "" + +#: TimeTrackerCLI.py:185 TimeTrackerCLI.py:528 +#, python-brace-format +msgid " Last Activity: {date}" +msgstr "" + +#: TimeTrackerCLI.py:188 +#, python-brace-format +msgid "No main-projects found inactive for more than {weeks} weeks." +msgstr "" + +#: TimeTrackerCLI.py:191 TimeTrackerCLI.py:534 +msgid "Invalid input. Please enter a valid number for weeks." +msgstr "" + +#: TimeTrackerCLI.py:194 +msgid "" +"\n" +"--- Demote Main-Project to Sub-Project ---" +msgstr "" + +#: TimeTrackerCLI.py:197 +msgid "You need at least two open main projects for this operation." +msgstr "" + +#: TimeTrackerCLI.py:202 +msgid "Select the main project to demote:" +msgstr "" + +#: TimeTrackerCLI.py:205 +msgid "Enter the number of the project to demote: " +msgstr "" + +#: TimeTrackerCLI.py:209 +msgid "" +"\n" +"Select the new parent main project:" +msgstr "" + +#: TimeTrackerCLI.py:213 +msgid "Enter the number of the new parent project: " +msgstr "" + +#: TimeTrackerCLI.py:224 +msgid "" +"\n" +"--- List Completed Main Projects ---" +msgstr "" + +#: TimeTrackerCLI.py:227 +msgid "Main projects with only closed or no sub-projects:" +msgstr "" + +#: TimeTrackerCLI.py:231 +msgid "No completed main projects found." +msgstr "" + +#: TimeTrackerCLI.py:235 +msgid "Invalid choice. Please enter a number from 0 to 9." +msgstr "" + +#: TimeTrackerCLI.py:240 +msgid "" +"\n" +"--- Task Management ---" +msgstr "" + +#: TimeTrackerCLI.py:241 +msgid "1. Add Task" +msgstr "" + +#: TimeTrackerCLI.py:242 +msgid "2. List Tasks" +msgstr "" + +#: TimeTrackerCLI.py:243 +msgid "3. Rename Task" +msgstr "" + +#: TimeTrackerCLI.py:244 +msgid "4. Close Task" +msgstr "" + +#: TimeTrackerCLI.py:245 +msgid "5. Re-open Task" +msgstr "" + +#: TimeTrackerCLI.py:246 +msgid "6. Delete Task" +msgstr "" + +#: TimeTrackerCLI.py:247 +msgid "7. Move Task" +msgstr "" + +#: TimeTrackerCLI.py:248 +msgid "8. List Inactive Tasks" +msgstr "" + +#: TimeTrackerCLI.py:249 +msgid "9. List All Closed Tasks" +msgstr "" + +#: TimeTrackerCLI.py:250 +msgid "10. Delete All Closed Tasks" +msgstr "" + +#: TimeTrackerCLI.py:251 +msgid "11. Promote Task to Main-Project" +msgstr "" + +#: TimeTrackerCLI.py:252 +msgid "12. Edit Task (Name & Due Date)" +msgstr "" + +#: TimeTrackerCLI.py:261 +msgid "" +"\n" +"--- Add New Task ---" +msgstr "" + +#: TimeTrackerCLI.py:264 TimeTrackerCLI.py:960 +msgid "No open main projects found. Please add one first." +msgstr "" + +#: TimeTrackerCLI.py:267 +msgid "Select a main project to add a task to:" +msgstr "" + +#: TimeTrackerCLI.py:275 +msgid "Name of the new task: " +msgstr "" + +#: TimeTrackerCLI.py:276 +msgid "Due date (YYYY-MM-DD, press Enter to skip): " +msgstr "" + +#: TimeTrackerCLI.py:278 +msgid "Add to 'Today' list? (y/n, default n): " +msgstr "" + +#: TimeTrackerCLI.py:280 +msgid "Note (Markdown supported): " +msgstr "" + +#: TimeTrackerCLI.py:283 +#, python-brace-format +msgid "Task '{task_name}' added." +msgstr "" + +#: TimeTrackerCLI.py:290 +msgid "" +"\n" +"--- List Tasks ---" +msgstr "" + +#: TimeTrackerCLI.py:293 +msgid "No main projects found. Cannot list tasks." +msgstr "" + +#: TimeTrackerCLI.py:296 +msgid "Select the main project whose tasks you want to list:" +msgstr "" + +#: TimeTrackerCLI.py:305 sl/SL_Menu.py:1307 +#, python-brace-format +msgid "Tasks for '{name}':" +msgstr "" + +#: TimeTrackerCLI.py:308 sl/SL_Menu.py:524 sl/SL_Menu.py:612 +msgid "Due" +msgstr "" + +#: TimeTrackerCLI.py:309 sl/SL_Menu.py:409 sl/SL_Menu.py:419 sl/SL_Menu.py:484 +#: sl/SL_Menu.py:546 sl/SL_Menu.py:747 sl/SL_Menu.py:1603 sl/SL_Menu.py:1771 +msgid "Today" +msgstr "" + +#: TimeTrackerCLI.py:317 TimeTrackerCLI.py:861 sl/SL_Menu.py:1315 +#: sl/SL_Menu.py:2276 +#, python-brace-format +msgid "No tasks found for '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:322 +msgid "" +"\n" +"--- Rename Task ---" +msgstr "" + +#: TimeTrackerCLI.py:325 TimeTrackerCLI.py:362 TimeTrackerCLI.py:397 +#: TimeTrackerCLI.py:432 TimeTrackerCLI.py:560 +msgid "No open main projects found." +msgstr "" + +#: TimeTrackerCLI.py:328 TimeTrackerCLI.py:365 TimeTrackerCLI.py:400 +#: TimeTrackerCLI.py:435 TimeTrackerCLI.py:599 TimeTrackerCLI.py:852 +msgid "Select the main project:" +msgstr "" + +#: TimeTrackerCLI.py:338 +#, python-brace-format +msgid "No tasks to rename for '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:341 +#, python-brace-format +msgid "Select a task from '{name}' to rename:" +msgstr "" + +#: TimeTrackerCLI.py:345 TimeTrackerCLI.py:382 TimeTrackerCLI.py:417 +#: TimeTrackerCLI.py:453 TimeTrackerCLI.py:489 TimeTrackerCLI.py:580 +#: TimeTrackerCLI.py:867 TimeTrackerCLI.py:982 +msgid "Enter the number of the task: " +msgstr "" + +#: TimeTrackerCLI.py:352 sl/SL_Menu.py:1358 +#, python-brace-format +msgid "Task '{old_name}' renamed to '{new_name}'." +msgstr "" + +#: TimeTrackerCLI.py:354 +msgid "" +"Error: Could not rename. The new name might already exist or the project was " +"not found." +msgstr "" + +#: TimeTrackerCLI.py:359 +msgid "" +"\n" +"--- Close Task ---" +msgstr "" + +#: TimeTrackerCLI.py:375 +#, python-brace-format +msgid "No open tasks to close for '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:378 +#, python-brace-format +msgid "Select a task from '{name}' to close:" +msgstr "" + +#: TimeTrackerCLI.py:387 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been closed." +msgstr "" + +#: TimeTrackerCLI.py:389 TimeTrackerCLI.py:424 TimeTrackerCLI.py:460 +#: sl/SL_Menu.py:945 sl/SL_Menu.py:990 sl/SL_Menu.py:1036 +msgid "Error: Main project or task not found." +msgstr "" + +#: TimeTrackerCLI.py:394 +msgid "" +"\n" +"--- Re-open Task ---" +msgstr "" + +#: TimeTrackerCLI.py:410 +#, python-brace-format +msgid "No closed tasks to reopen for '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:413 +#, python-brace-format +msgid "Select a task from '{name}' to reopen:" +msgstr "" + +#: TimeTrackerCLI.py:422 +#, python-brace-format +msgid "Task '{task_name}' in '{main_name}' has been reopened." +msgstr "" + +#: TimeTrackerCLI.py:429 +msgid "" +"\n" +"--- Delete Task ---" +msgstr "" + +#: TimeTrackerCLI.py:446 +#, python-brace-format +msgid "No tasks to delete for '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:449 +#, python-brace-format +msgid "Select a task from '{name}' to delete:" +msgstr "" + +#: TimeTrackerCLI.py:458 +#, python-brace-format +msgid "Task '{task_name}' deleted from '{main_name}'." +msgstr "" + +#: TimeTrackerCLI.py:466 +msgid "" +"\n" +"--- Move Task ---" +msgstr "" + +#: TimeTrackerCLI.py:469 +msgid "You need at least two open main projects to move a task." +msgstr "" + +#: TimeTrackerCLI.py:474 +msgid "Select the source main project:" +msgstr "" + +#: TimeTrackerCLI.py:477 +msgid "Enter the number of the source main project: " +msgstr "" + +#: TimeTrackerCLI.py:483 +#, python-brace-format +msgid "No tasks to move from '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:486 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to move:" +msgstr "" + +#: TimeTrackerCLI.py:494 +msgid "" +"\n" +"Select the destination main project:" +msgstr "" + +#: TimeTrackerCLI.py:499 +msgid "Enter the number of the destination main project: " +msgstr "" + +#: TimeTrackerCLI.py:505 +#, python-brace-format +msgid "" +"Successfully moved '{task_name}' from '{source_main_project}' to " +"'{dest_main_project}'." +msgstr "" + +#: TimeTrackerCLI.py:507 +#, python-brace-format +msgid "Error: {message}" +msgstr "" + +#: TimeTrackerCLI.py:514 +msgid "" +"\n" +"--- List Inactive Tasks ---" +msgstr "" + +#: TimeTrackerCLI.py:516 +msgid "Enter the number of weeks without activity (e.g., 4): " +msgstr "" + +#: TimeTrackerCLI.py:524 +#, python-brace-format +msgid "" +"\n" +"Inactive Tasks (>{weeks} weeks):" +msgstr "" + +#: TimeTrackerCLI.py:527 +#, python-brace-format +msgid " Task: {name}" +msgstr "" + +#: TimeTrackerCLI.py:531 sl/SL_Menu.py:1118 +#, python-brace-format +msgid "No tasks found inactive for more than {weeks} weeks." +msgstr "" + +#: TimeTrackerCLI.py:537 +msgid "" +"\n" +"--- List All Closed Tasks ---" +msgstr "" + +#: TimeTrackerCLI.py:543 sl/SL_Menu.py:1143 sl/SL_Menu.py:1166 +msgid "No closed tasks found." +msgstr "" + +#: TimeTrackerCLI.py:547 +msgid "" +"\n" +"--- Delete All Closed Tasks ---" +msgstr "" + +#: TimeTrackerCLI.py:548 +msgid "Are you sure you want to delete ALL closed tasks? (y/n): " +msgstr "" + +#: TimeTrackerCLI.py:551 +#, python-brace-format +msgid "{count} closed tasks were deleted." +msgstr "" + +#: TimeTrackerCLI.py:553 +msgid "Operation cancelled." +msgstr "" + +#: TimeTrackerCLI.py:557 +msgid "" +"\n" +"--- Promote Task to Main-Project ---" +msgstr "" + +#: TimeTrackerCLI.py:565 +msgid "Select the main project containing the task to promote:" +msgstr "" + +#: TimeTrackerCLI.py:574 +#, python-brace-format +msgid "No tasks to promote in '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:577 +#, python-brace-format +msgid "" +"\n" +"Select a task from '{name}' to promote:" +msgstr "" + +#: TimeTrackerCLI.py:593 +msgid "" +"\n" +"--- Edit Task ---" +msgstr "" + +#: TimeTrackerCLI.py:596 sl/SL_Menu.py:913 sl/SL_Menu.py:958 sl/SL_Menu.py:1003 +#: sl/SL_Menu.py:1049 sl/SL_Menu.py:1198 sl/SL_Menu.py:1328 sl/SL_Menu.py:1487 +#: sl/SL_Menu.py:1677 +msgid "No open projects found." +msgstr "" + +#: TimeTrackerCLI.py:609 +#, python-brace-format +msgid "No open tasks in '{name}'." +msgstr "" + +#: TimeTrackerCLI.py:612 +msgid "Select a task to edit:" +msgstr "" + +#: TimeTrackerCLI.py:616 +msgid "Enter the number: " +msgstr "" + +#: TimeTrackerCLI.py:623 +#, python-brace-format +msgid "New name (press Enter to keep '{name}'): " +msgstr "" + +#: TimeTrackerCLI.py:624 +#, python-brace-format +msgid "New due date (YYYY-MM-DD, current: '{due}', enter '-' to clear): " +msgstr "" + +#: TimeTrackerCLI.py:627 +#, python-brace-format +msgid "Is this for today? (current: {current}, y/n, press Enter to keep): " +msgstr "" + +#: TimeTrackerCLI.py:630 +#, python-brace-format +msgid "Current Note: {note}" +msgstr "" + +#: TimeTrackerCLI.py:631 +msgid "New note (press Enter to keep current): " +msgstr "" + +#: TimeTrackerCLI.py:635 +#, python-brace-format +msgid "Is this task done? (current: {current}, y/n, press Enter to keep): " +msgstr "" + +#: TimeTrackerCLI.py:639 sl/SL_Menu.py:1834 +msgid "Task updated successfully." +msgstr "" + +#: TimeTrackerCLI.py:641 +msgid "Error updating task." +msgstr "" + +#: TimeTrackerCLI.py:643 +msgid "Invalid input." +msgstr "" + +#: TimeTrackerCLI.py:648 +msgid "Invalid choice. Please enter a number from 0 to 11." +msgstr "" + +#: TimeTrackerCLI.py:653 +msgid "" +"\n" +"--- Settings ---" +msgstr "" + +#: TimeTrackerCLI.py:654 sl/SL_Menu.py:870 +msgid "1. Change Language" +msgstr "" + +#: TimeTrackerCLI.py:655 sl/SL_Menu.py:871 +msgid "2. Restore Previous Version" +msgstr "" + +#: TimeTrackerCLI.py:656 sl/SL_Menu.py:872 +msgid "3. Change Data Storage Location" +msgstr "" + +#: TimeTrackerCLI.py:657 sl/SL_Menu.py:874 +msgid "4. Change Streamlit Port" +msgstr "" + +#: TimeTrackerCLI.py:659 TimeTrackerCLI.py:698 TimeTrackerCLI.py:808 +#: sl/SL_Menu.py:881 +msgid "0. Back to Main Menu" +msgstr "" + +#: TimeTrackerCLI.py:682 +msgid "Invalid choice. Please enter a number from 0 to 4." +msgstr "" + +#: TimeTrackerCLI.py:687 +msgid "" +"\n" +"--- Language Settings ---" +msgstr "" + +#: TimeTrackerCLI.py:692 +msgid "No additional languages found." +msgstr "" + +#: TimeTrackerCLI.py:716 +#, python-brace-format +msgid "Language changed to '{lang}'. Please restart the application." +msgstr "" + +#: TimeTrackerCLI.py:719 +msgid "Invalid choice." +msgstr "" + +#: TimeTrackerCLI.py:721 +msgid "Invalid input. Please enter a number." +msgstr "" + +#: TimeTrackerCLI.py:725 +msgid "" +"\n" +"--- Data Storage Settings ---" +msgstr "" + +#: TimeTrackerCLI.py:726 +#, python-brace-format +msgid "Current data file: {path}" +msgstr "" + +#: TimeTrackerCLI.py:728 +msgid "Enter the new path for the data file (e.g., /path/to/my_data.json)." +msgstr "" + +#: TimeTrackerCLI.py:729 +msgid "Leave empty to cancel." +msgstr "" + +#: TimeTrackerCLI.py:730 +msgid "New Path: " +msgstr "" + +#: TimeTrackerCLI.py:738 sl/SL_Menu.py:1974 +#, python-brace-format +msgid "Error: The directory '{dir}' does not exist." +msgstr "" + +#: TimeTrackerCLI.py:752 +msgid "Storage location updated." +msgstr "" + +#: TimeTrackerCLI.py:756 +msgid "Do you want to move the existing data to the new location? (y/n): " +msgstr "" + +#: TimeTrackerCLI.py:760 sl/SL_Menu.py:1985 +msgid "Data moved successfully." +msgstr "" + +#: TimeTrackerCLI.py:762 sl/SL_Menu.py:1987 +#, python-brace-format +msgid "Error moving data: {error}" +msgstr "" + +#: TimeTrackerCLI.py:764 tt/TimeTracker.py:117 +msgid "Please restart the application for the changes to take effect." +msgstr "" + +#: TimeTrackerCLI.py:767 +#, python-brace-format +msgid "Error updating configuration: {error}" +msgstr "" + +#: TimeTrackerCLI.py:771 +msgid "" +"\n" +"--- Streamlit Port Settings ---" +msgstr "" + +#: TimeTrackerCLI.py:781 +#, python-brace-format +msgid "Current Streamlit Port: {port}" +msgstr "" + +#: TimeTrackerCLI.py:783 +msgid "Enter new port (or press Enter to keep current): " +msgstr "" + +#: TimeTrackerCLI.py:792 +#, python-brace-format +msgid "" +"Port updated to {port}. Please restart Streamlit for changes to take effect." +msgstr "" + +#: TimeTrackerCLI.py:800 +msgid "" +"\n" +"--- Reporting ---" +msgstr "" + +#: TimeTrackerCLI.py:801 +msgid "1. Daily Report (Today)" +msgstr "" + +#: TimeTrackerCLI.py:802 +msgid "2. Daily Report (Specific Day)" +msgstr "" + +#: TimeTrackerCLI.py:803 +msgid "3. Date Range Report" +msgstr "" + +#: TimeTrackerCLI.py:804 +msgid "4. Detailed Task Report" +msgstr "" + +#: TimeTrackerCLI.py:805 +msgid "5. Detailed Main-Project Report" +msgstr "" + +#: TimeTrackerCLI.py:806 +msgid "6. Detailed Daily Report" +msgstr "" + +#: TimeTrackerCLI.py:815 +msgid "" +"\n" +"--- Generate Daily Report (Today) ---" +msgstr "" + +#: TimeTrackerCLI.py:820 +msgid "" +"\n" +"--- Generate Daily Report for a specific Day ---" +msgstr "" + +#: TimeTrackerCLI.py:821 +msgid "Enter the date (YYYY-MM-DD): " +msgstr "" + +#: TimeTrackerCLI.py:827 TimeTrackerCLI.py:842 TimeTrackerCLI.py:903 +msgid "Invalid date format. Please use YYYY-MM-DD." +msgstr "" + +#: TimeTrackerCLI.py:830 +msgid "" +"\n" +"--- Generate Report for a Date Range ---" +msgstr "" + +#: TimeTrackerCLI.py:831 +msgid "Enter the start date (YYYY-MM-DD): " +msgstr "" + +#: TimeTrackerCLI.py:832 +msgid "Enter the end date (YYYY-MM-DD): " +msgstr "" + +#: TimeTrackerCLI.py:837 sl/SL_Menu.py:2227 +msgid "Error: The start date cannot be after the end date." +msgstr "" + +#: TimeTrackerCLI.py:844 +msgid "" +"\n" +"--- Detailed Task Report ---" +msgstr "" + +#: TimeTrackerCLI.py:847 TimeTrackerCLI.py:880 sl/SL_Menu.py:1249 +#: sl/SL_Menu.py:1296 sl/SL_Menu.py:1435 sl/SL_Menu.py:2245 sl/SL_Menu.py:2304 +msgid "No projects found." +msgstr "" + +#: TimeTrackerCLI.py:864 +msgid "" +"\n" +"Select the task for the report:" +msgstr "" + +#: TimeTrackerCLI.py:877 +msgid "" +"\n" +"--- Detailed Main-Project Report ---" +msgstr "" + +#: TimeTrackerCLI.py:885 +msgid "Select the main project for the report:" +msgstr "" + +#: TimeTrackerCLI.py:896 +msgid "" +"\n" +"--- Detailed Daily Report ---" +msgstr "" + +#: TimeTrackerCLI.py:897 +msgid "Enter the date (YYYY-MM-DD) or press Enter for today: " +msgstr "" + +#: TimeTrackerCLI.py:911 TimeTrackerCLI.py:1042 +msgid "Invalid choice. Please enter a number from 0 to 6." +msgstr "" + +#: TimeTrackerCLI.py:919 +msgid "" +"\n" +"--- Update Available ---" +msgstr "" + +#: TimeTrackerCLI.py:920 +msgid "A downloaded update is ready to be installed." +msgstr "" + +#: TimeTrackerCLI.py:921 +msgid "0. Skip update for now" +msgstr "" + +#: TimeTrackerCLI.py:922 +msgid "1. Install update now" +msgstr "" + +#: TimeTrackerCLI.py:923 +msgid "Enter your choice (0 or 1): " +msgstr "" + +#: TimeTrackerCLI.py:927 +msgid "Application is restarting to complete the update..." +msgstr "" + +#: TimeTrackerCLI.py:931 +msgid "Update installation skipped. The application will start normally." +msgstr "" + +#: TimeTrackerCLI.py:933 +msgid "" +"Invalid choice. Update installation skipped. The application will start " +"normally." +msgstr "" + +#: TimeTrackerCLI.py:940 +#, python-brace-format +msgid "" +"\n" +"=== Time Control {version} ===" +msgstr "" + +#: TimeTrackerCLI.py:941 +msgid "--- Main Menu ---" +msgstr "" + +#: TimeTrackerCLI.py:942 +msgid "1. Start work on task" +msgstr "" + +#: TimeTrackerCLI.py:943 +msgid "2. Show current work" +msgstr "" + +#: TimeTrackerCLI.py:944 +msgid "3. Stop current work" +msgstr "" + +#: TimeTrackerCLI.py:946 +msgid "4. Handle projects and tasks" +msgstr "" + +#: TimeTrackerCLI.py:947 +msgid "5. Reporting" +msgstr "" + +#: TimeTrackerCLI.py:948 +msgid "6. Settings" +msgstr "" + +#: TimeTrackerCLI.py:950 +msgid "0. Exit" +msgstr "" + +#: TimeTrackerCLI.py:957 +msgid "" +"\n" +"--- Start Work on a Task ---" +msgstr "" + +#: TimeTrackerCLI.py:963 +msgid "Select a main project:" +msgstr "" + +#: TimeTrackerCLI.py:974 +#, python-brace-format +msgid "No open tasks found for '{name}' to start work on." +msgstr "" + +#: TimeTrackerCLI.py:977 +#, python-brace-format +msgid "Select a task from '{name}':" +msgstr "" + +#: TimeTrackerCLI.py:987 sl/SL_Menu.py:1884 +#, python-brace-format +msgid "Work started on '{task_name}' in project '{main_name}'." +msgstr "" + +#: TimeTrackerCLI.py:989 sl/SL_Menu.py:1888 +msgid "Error starting work." +msgstr "" + +#: TimeTrackerCLI.py:996 +msgid "" +"\n" +"--- Current Active Work ---" +msgstr "" + +#: TimeTrackerCLI.py:1006 +msgid "You are currently working on:" +msgstr "" + +#: TimeTrackerCLI.py:1007 +#, python-brace-format +msgid " Main Project: {name}" +msgstr "" + +#: TimeTrackerCLI.py:1008 +#, python-brace-format +msgid " Task: {name}" +msgstr "" + +#: TimeTrackerCLI.py:1009 +#, python-brace-format +msgid " Started at: {date}" +msgstr "" + +#: TimeTrackerCLI.py:1010 +#, python-brace-format +msgid " Duration: {duration}" +msgstr "" + +#: TimeTrackerCLI.py:1012 sl/SL_Menu.py:373 sl/SL_Menu.py:1910 +msgid "No active work session." +msgstr "" + +#: TimeTrackerCLI.py:1016 +msgid "" +"\n" +"--- Stop Work ---" +msgstr "" + +#: TimeTrackerCLI.py:1018 sl/SL_Menu.py:341 +msgid "Work session stopped successfully." +msgstr "" + +#: TimeTrackerCLI.py:1020 sl/SL_Menu.py:343 +msgid "No active work session to stop." +msgstr "" + +#: TimeTrackerCLI.py:1034 +msgid "" +"\n" +"Checking for updates..." +msgstr "" + +#: TimeTrackerCLI.py:1038 +msgid "Exiting application. Goodbye!" +msgstr "" + +#: update.py:35 +msgid "" +"Warning: Update check skipped. 'github_repo' not found in config.json or " +"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 "" + +#: update.py:59 +#, python-brace-format +msgid "Error checking for updates: {error}" +msgstr "" + +#: update.py:61 +#, python-brace-format +msgid "An unexpected error occurred while checking for updates: {error}" +msgstr "" + +#: update.py:73 +msgid "Downloading update..." +msgstr "" + +#: update.py:79 +msgid "Download complete. The update will be installed on the next start." +msgstr "" + +#: update.py:82 +#, python-brace-format +msgid "Error downloading the update: {error}" +msgstr "" + +#: update.py:108 +msgid "Creating backup of current version before update..." +msgstr "" + +#: update.py:118 +#, python-brace-format +msgid "Backup created successfully as {filename}." +msgstr "" + +#: update.py:120 +#, python-brace-format +msgid "Warning: Could not create backup. Error: {error}" +msgstr "" + +#: update.py:122 +msgid "Installing update..." +msgstr "" + +#: update.py:142 +#, python-brace-format +msgid "Skipping protected file: {filename}. It will not be overwritten." +msgstr "" + +#: update.py:151 +msgid "Update installed successfully." +msgstr "" + +#: update.py:153 +#, python-brace-format +msgid "Error during update installation: {error}" +msgstr "" + +#: update.py:168 +#, python-brace-format +msgid "Error: No previous version backup '{filename}' found." +msgstr "" + +#: update.py:171 +#, python-brace-format +msgid "Restoring previous version from '{filename}'..." +msgstr "" + +#: update.py:192 +#, python-brace-format +msgid "" +"Skipping user data file: {filename}. It will not be overwritten during " +"restore." +msgstr "" + +#: update.py:199 +msgid "Previous version restored successfully." +msgstr "" + +#: update.py:201 +msgid "Restarting application to apply changes..." +msgstr "" + +#: update.py:204 +#, python-brace-format +msgid "Error during restoration: {error}" +msgstr "" + +#: update.py:205 +#, python-brace-format +msgid "The backup file '{filename}' was not deleted." +msgstr "" + +#: update.py:212 +msgid "Error: Could not import TimeTracker to get the current version." +msgstr "" + +#: update.py:215 +msgid "Checking for updates..." +msgstr "" + +#: update.py:222 +msgid "No updates available." +msgstr "" + +#: tt/TimeTracker.py:90 +#, python-brace-format +msgid "Warning: Could not read {file}. Error: {error}" +msgstr "" + +#: tt/TimeTracker.py:105 +msgid "Some required packages are missing. Attempting to install them..." +msgstr "" + +#: tt/TimeTracker.py:108 +#, python-brace-format +msgid "Installing {package}..." +msgstr "" + +#: tt/TimeTracker.py:112 +#, python-brace-format +msgid "Failed to install {package}. Continuing without it." +msgstr "" + +#: tt/TimeTracker.py:116 +msgid "" +"\n" +"Dependencies installed successfully." +msgstr "" + +#: tt/TimeTracker.py:120 +#, python-brace-format +msgid "" +"\n" +"Warning: Some dependencies could not be installed: {packages}" +msgstr "" + +#: tt/TimeTracker.py:122 +#, python-brace-format +msgid "An unexpected error occurred during dependency check: {error}" +msgstr "" + +#: tt/TimeTracker.py:229 +msgid "Info: Report content has been copied to the clipboard." +msgstr "" + +#: tt/TimeTracker.py:231 +#, python-brace-format +msgid "Warning: Could not copy to clipboard. Error: {error}" +msgstr "" + +#: tt/TimeTracker.py:233 +msgid "" +"Warning: Could not copy to clipboard. Please install 'pyperclip' (`pip " +"install pyperclip`)." +msgstr "" + +#: tt/TimeTracker.py:253 +#, python-brace-format +msgid "{hours} hours ({dlp} DLP)" +msgstr "" + +#: tt/TimeTracker.py:846 tt/TimeTracker.py:886 +#, python-brace-format +msgid "Source main project '{name}' not found." +msgstr "" + +#: tt/TimeTracker.py:848 +#, python-brace-format +msgid "Destination main project '{name}' not found." +msgstr "" + +#: tt/TimeTracker.py:860 +#, python-brace-format +msgid "Task '{task_name}' moved successfully." +msgstr "" + +#: tt/TimeTracker.py:861 tt/TimeTracker.py:896 tt/TimeTracker.py:1373 +#, python-brace-format +msgid "Task '{task_name}' not found in '{main_name}'." +msgstr "" + +#: tt/TimeTracker.py:880 +#, python-brace-format +msgid "A main project named '{name}' already exists." +msgstr "" + +#: tt/TimeTracker.py:905 +msgid "General" +msgstr "" + +#: tt/TimeTracker.py:909 +#, python-brace-format +msgid "Task '{task_name}' was promoted to a new main project." +msgstr "" + +#: tt/TimeTracker.py:936 +#, python-brace-format +msgid "Main project to demote '{name}' not found." +msgstr "" + +#: tt/TimeTracker.py:938 +#, python-brace-format +msgid "New parent main project '{name}' not found." +msgstr "" + +#: tt/TimeTracker.py:963 +#, python-brace-format +msgid "" +"Main project '{demoted_name}' was demoted to a sub-project under " +"'{parent_name}'." +msgstr "" + +#: tt/TimeTracker.py:1042 +msgid "Email import is not enabled." +msgstr "" + +#: tt/TimeTracker.py:1051 +msgid "Email settings are incomplete." +msgstr "" + +#: tt/TimeTracker.py:1064 +msgid "Error searching emails." +msgstr "" + +#: tt/TimeTracker.py:1079 +msgid "No Subject" +msgstr "" + +#: tt/TimeTracker.py:1139 +msgid "Unknown Task" +msgstr "" + +#: tt/TimeTracker.py:1330 +#, python-brace-format +msgid "- {name}: {hours} hours" +msgstr "" + +#: tt/TimeTracker.py:1338 +#, python-brace-format +msgid "## {name} ({hours} hours)\n" +msgstr "" + +#: tt/TimeTracker.py:1347 +#, python-brace-format +msgid "# Daily Time Report: {date}\n" +msgstr "" + +#: tt/TimeTracker.py:1348 +#, python-brace-format +msgid "" +"\n" +"**Total Daily Time: {hours} hours**" +msgstr "" + +#: tt/TimeTracker.py:1352 tt/TimeTracker.py:1665 +#, python-brace-format +msgid "No time tracked for {date}." +msgstr "" + +#: tt/TimeTracker.py:1369 tt/TimeTracker.py:1464 +#, python-brace-format +msgid "Main project '{name}' not found." +msgstr "" + +#: tt/TimeTracker.py:1377 +#, python-brace-format +msgid "No time entries found for task '{task_name}'." +msgstr "" + +#: tt/TimeTracker.py:1410 tt/TimeTracker.py:1640 +msgid "now" +msgstr "" + +#: tt/TimeTracker.py:1411 sl/SL_Menu.py:1908 +msgid "Duration" +msgstr "" + +#: tt/TimeTracker.py:1415 +#, python-brace-format +msgid "# Detailed Report for Task: {name}" +msgstr "" + +#: tt/TimeTracker.py:1416 +#, python-brace-format +msgid "Part of Main Project: {name}" +msgstr "" + +#: tt/TimeTracker.py:1419 +msgid "Active (currently running)" +msgstr "" + +#: tt/TimeTracker.py:1419 tt/TimeTracker.py:1516 +msgid "Inactive" +msgstr "" + +#: tt/TimeTracker.py:1420 tt/TimeTracker.py:1517 +msgid "Status" +msgstr "" + +#: tt/TimeTracker.py:1422 tt/TimeTracker.py:1519 +msgid "First entry" +msgstr "" + +#: tt/TimeTracker.py:1424 tt/TimeTracker.py:1521 +msgid "Last activity" +msgstr "" + +#: tt/TimeTracker.py:1426 tt/TimeTracker.py:1523 +msgid "Total recorded time" +msgstr "" + +#: tt/TimeTracker.py:1427 tt/TimeTracker.py:1525 +msgid "Total work sessions" +msgstr "" + +#: tt/TimeTracker.py:1431 tt/TimeTracker.py:1529 +msgid "Average session duration" +msgstr "" + +#: tt/TimeTracker.py:1434 tt/TimeTracker.py:1532 +msgid "Weekday Distribution" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Monday" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Tuesday" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Wednesday" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Thursday" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Friday" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Saturday" +msgstr "" + +#: tt/TimeTracker.py:1436 tt/TimeTracker.py:1534 sl/SL_Menu.py:437 +msgid "Sunday" +msgstr "" + +#: tt/TimeTracker.py:1444 +msgid "Daily Breakdown" +msgstr "" + +#: tt/TimeTracker.py:1513 +#, python-brace-format +msgid "# Detailed Report for Main Project: {name}" +msgstr "" + +#: tt/TimeTracker.py:1516 +#, python-brace-format +msgid "Active (working on '{task_name}')" +msgstr "" + +#: tt/TimeTracker.py:1524 +msgid "Number of tasks" +msgstr "" + +#: tt/TimeTracker.py:1543 +msgid "Task Breakdown" +msgstr "" + +#: tt/TimeTracker.py:1552 +#, python-brace-format +msgid "{num_sessions} sessions" +msgstr "" + +#: tt/TimeTracker.py:1605 +#, python-brace-format +msgid "# Time Report: {start_date} to {end_date}\n" +msgstr "" + +#: tt/TimeTracker.py:1606 +#, python-brace-format +msgid "" +"\n" +"**Total Time in Period: {total_time}**" +msgstr "" + +#: tt/TimeTracker.py:1610 +#, python-brace-format +msgid "No time tracked between {start_date} and {end_date}." +msgstr "" + +#: tt/TimeTracker.py:1626 +#, python-brace-format +msgid "# Detailed Daily Report: {date}" +msgstr "" + +#: sl/SL_Menu.py:277 +msgid "New" +msgstr "" + +#: sl/SL_Menu.py:278 +msgid "New Project" +msgstr "" + +#: sl/SL_Menu.py:281 +msgid "New Task" +msgstr "" + +#: sl/SL_Menu.py:286 +msgid "Project & Task Management" +msgstr "" + +#: sl/SL_Menu.py:287 sl/SL_Menu.py:780 +msgid "Main Project Management" +msgstr "" + +#: sl/SL_Menu.py:288 sl/SL_Menu.py:796 sl/SL_Menu.py:894 +msgid "Add Project" +msgstr "" + +#: sl/SL_Menu.py:291 sl/SL_Menu.py:799 sl/SL_Menu.py:1242 +msgid "List Projects" +msgstr "" + +#: sl/SL_Menu.py:292 sl/SL_Menu.py:800 sl/SL_Menu.py:1257 +msgid "Rename Project" +msgstr "" + +#: sl/SL_Menu.py:293 sl/SL_Menu.py:801 sl/SL_Menu.py:1371 sl/SL_Menu.py:1384 +msgid "Close Project" +msgstr "" + +#: sl/SL_Menu.py:294 sl/SL_Menu.py:802 sl/SL_Menu.py:1401 sl/SL_Menu.py:1414 +msgid "Re-open Project" +msgstr "" + +#: sl/SL_Menu.py:295 sl/SL_Menu.py:803 sl/SL_Menu.py:1431 sl/SL_Menu.py:1445 +msgid "Delete Project" +msgstr "" + +#: sl/SL_Menu.py:296 sl/SL_Menu.py:804 sl/SL_Menu.py:1462 +msgid "List Inactive Projects" +msgstr "" + +#: sl/SL_Menu.py:297 sl/SL_Menu.py:805 +msgid "Demote Project to Task" +msgstr "" + +#: sl/SL_Menu.py:298 sl/SL_Menu.py:806 sl/SL_Menu.py:1524 +msgid "List Completed Projects" +msgstr "" + +#: sl/SL_Menu.py:300 sl/SL_Menu.py:782 sl/SL_Menu.py:817 +msgid "Task Management" +msgstr "" + +#: sl/SL_Menu.py:301 sl/SL_Menu.py:819 sl/SL_Menu.py:1542 sl/SL_Menu.py:1573 +#: sl/SL_Menu.py:1646 +msgid "Add Task" +msgstr "" + +#: sl/SL_Menu.py:304 sl/SL_Menu.py:822 sl/SL_Menu.py:1292 +msgid "List Tasks" +msgstr "" + +#: sl/SL_Menu.py:305 sl/SL_Menu.py:823 sl/SL_Menu.py:1324 +msgid "Rename Task" +msgstr "" + +#: sl/SL_Menu.py:306 sl/SL_Menu.py:824 sl/SL_Menu.py:909 sl/SL_Menu.py:935 +#: sl/SL_Menu.py:1114 +msgid "Close Task" +msgstr "" + +#: sl/SL_Menu.py:307 sl/SL_Menu.py:825 sl/SL_Menu.py:954 sl/SL_Menu.py:980 +msgid "Re-open Task" +msgstr "" + +#: sl/SL_Menu.py:308 sl/SL_Menu.py:826 sl/SL_Menu.py:999 sl/SL_Menu.py:1026 +msgid "Delete Task" +msgstr "" + +#: sl/SL_Menu.py:309 sl/SL_Menu.py:827 sl/SL_Menu.py:1045 sl/SL_Menu.py:1081 +msgid "Move Task" +msgstr "" + +#: sl/SL_Menu.py:310 sl/SL_Menu.py:828 sl/SL_Menu.py:1100 +msgid "List Inactive Tasks" +msgstr "" + +#: sl/SL_Menu.py:311 sl/SL_Menu.py:829 sl/SL_Menu.py:1127 +msgid "List All Closed Tasks" +msgstr "" + +#: sl/SL_Menu.py:312 sl/SL_Menu.py:477 sl/SL_Menu.py:539 sl/SL_Menu.py:626 +#: sl/SL_Menu.py:830 sl/SL_Menu.py:1673 sl/SL_Menu.py:1693 sl/SL_Menu.py:1728 +msgid "Edit Task" +msgstr "" + +#: sl/SL_Menu.py:315 sl/SL_Menu.py:833 sl/SL_Menu.py:1152 +msgid "Delete All Closed Tasks" +msgstr "" + +#: sl/SL_Menu.py:316 sl/SL_Menu.py:834 sl/SL_Menu.py:1194 +msgid "Promote Task to Project" +msgstr "" + +#: sl/SL_Menu.py:319 +msgid "Today View" +msgstr "" + +#: sl/SL_Menu.py:323 sl/SL_Menu.py:405 +msgid "Task Planning" +msgstr "" + +#: sl/SL_Menu.py:327 sl/SL_Menu.py:655 +msgid "E-Mail Task Assignment" +msgstr "" + +#: sl/SL_Menu.py:331 sl/SL_Menu.py:473 sl/SL_Menu.py:535 sl/SL_Menu.py:622 +msgid "Start work on task" +msgstr "" + +#: sl/SL_Menu.py:335 +msgid "Show current work" +msgstr "" + +#: sl/SL_Menu.py:339 +msgid "Stop current work" +msgstr "" + +#: sl/SL_Menu.py:347 sl/SL_Menu.py:845 +msgid "Reporting" +msgstr "" + +#: sl/SL_Menu.py:348 sl/SL_Menu.py:848 +msgid "Daily Report (Today)" +msgstr "" + +#: sl/SL_Menu.py:352 sl/SL_Menu.py:853 sl/SL_Menu.py:2195 +msgid "Daily Report (Specific Day)" +msgstr "" + +#: sl/SL_Menu.py:354 sl/SL_Menu.py:854 sl/SL_Menu.py:2214 +msgid "Date Range Report" +msgstr "" + +#: sl/SL_Menu.py:356 sl/SL_Menu.py:855 sl/SL_Menu.py:2241 sl/SL_Menu.py:2272 +msgid "Detailed Task Report" +msgstr "" + +#: sl/SL_Menu.py:358 sl/SL_Menu.py:856 sl/SL_Menu.py:2300 +msgid "Detailed Project Report" +msgstr "" + +#: sl/SL_Menu.py:360 sl/SL_Menu.py:857 sl/SL_Menu.py:2327 +msgid "Detailed Daily Report" +msgstr "" + +#: sl/SL_Menu.py:364 sl/SL_Menu.py:868 +msgid "Settings" +msgstr "" + +#: sl/SL_Menu.py:371 sl/SL_Menu.py:1897 +msgid "Current Active Work" +msgstr "" + +#: sl/SL_Menu.py:376 sl/SL_Menu.py:497 sl/SL_Menu.py:559 sl/SL_Menu.py:633 +#: sl/SL_Menu.py:1773 +msgid "Done" +msgstr "" + +#: sl/SL_Menu.py:390 +msgid "Edit current task" +msgstr "" + +#: sl/SL_Menu.py:398 +msgid "Exit" +msgstr "" + +#: sl/SL_Menu.py:410 sl/SL_Menu.py:420 +msgid "Tomorrow" +msgstr "" + +#: sl/SL_Menu.py:411 sl/SL_Menu.py:421 +msgid "Weekly overview" +msgstr "" + +#: sl/SL_Menu.py:412 sl/SL_Menu.py:422 +msgid "Overdue tasks" +msgstr "" + +#: sl/SL_Menu.py:413 sl/SL_Menu.py:423 +msgid "Unplanned tasks" +msgstr "" + +#: sl/SL_Menu.py:414 +msgid "All" +msgstr "" + +#: sl/SL_Menu.py:416 +msgid "Filter" +msgstr "" + +#: sl/SL_Menu.py:430 +msgid "Tasks" +msgstr "" + +#: sl/SL_Menu.py:572 +msgid "No tasks found." +msgstr "" + +#: sl/SL_Menu.py:574 sl/SL_Menu.py:648 sl/SL_Menu.py:770 sl/SL_Menu.py:810 +#: sl/SL_Menu.py:838 sl/SL_Menu.py:914 sl/SL_Menu.py:925 sl/SL_Menu.py:959 +#: sl/SL_Menu.py:970 sl/SL_Menu.py:1004 sl/SL_Menu.py:1015 sl/SL_Menu.py:1050 +#: sl/SL_Menu.py:1061 sl/SL_Menu.py:1069 sl/SL_Menu.py:1120 sl/SL_Menu.py:1145 +#: sl/SL_Menu.py:1167 sl/SL_Menu.py:1199 sl/SL_Menu.py:1210 sl/SL_Menu.py:1250 +#: sl/SL_Menu.py:1262 sl/SL_Menu.py:1297 sl/SL_Menu.py:1317 sl/SL_Menu.py:1329 +#: sl/SL_Menu.py:1340 sl/SL_Menu.py:1376 sl/SL_Menu.py:1406 sl/SL_Menu.py:1436 +#: sl/SL_Menu.py:1476 sl/SL_Menu.py:1488 sl/SL_Menu.py:1535 sl/SL_Menu.py:1547 +#: sl/SL_Menu.py:1678 sl/SL_Menu.py:1697 sl/SL_Menu.py:1710 sl/SL_Menu.py:1725 +#: sl/SL_Menu.py:1858 sl/SL_Menu.py:1868 sl/SL_Menu.py:1912 sl/SL_Menu.py:2097 +#: sl/SL_Menu.py:2102 sl/SL_Menu.py:2207 sl/SL_Menu.py:2234 sl/SL_Menu.py:2246 +#: sl/SL_Menu.py:2258 sl/SL_Menu.py:2277 sl/SL_Menu.py:2293 sl/SL_Menu.py:2305 +#: sl/SL_Menu.py:2320 sl/SL_Menu.py:2339 sl/SL_Menu.py:2380 sl/SL_Menu.py:2395 +msgid "Back" +msgstr "" + +#: sl/SL_Menu.py:581 +msgid "Today's Tasks" +msgstr "" + +#: sl/SL_Menu.py:646 +msgid "No tasks for today." +msgstr "" + +#: sl/SL_Menu.py:661 +msgid "Fetching emails..." +msgstr "" + +#: sl/SL_Menu.py:664 +#, python-brace-format +msgid "Error fetching emails: {error}" +msgstr "" + +#: sl/SL_Menu.py:667 +#, python-brace-format +msgid "{count} new tasks created from emails." +msgstr "" + +#: sl/SL_Menu.py:669 +msgid "No new emails found." +msgstr "" + +#: sl/SL_Menu.py:675 +msgid "No unassigned email tasks available." +msgstr "" + +#: sl/SL_Menu.py:687 +msgid "Assign Project" +msgstr "" + +#: sl/SL_Menu.py:698 +msgid "Are you sure you want to delete this task?" +msgstr "" + +#: sl/SL_Menu.py:701 +msgid "Yes, delete" +msgstr "" + +#: sl/SL_Menu.py:706 +msgid "No, cancel" +msgstr "" + +#: sl/SL_Menu.py:713 +msgid "Delete" +msgstr "" + +#: sl/SL_Menu.py:717 +msgid "Edit Details" +msgstr "" + +#: sl/SL_Menu.py:725 sl/SL_Menu.py:1757 +msgid "Task Name" +msgstr "" + +#: sl/SL_Menu.py:734 sl/SL_Menu.py:1761 +msgid "Due Date" +msgstr "" + +#: sl/SL_Menu.py:742 sl/SL_Menu.py:1765 +msgid "Clear" +msgstr "" + +#: sl/SL_Menu.py:749 sl/SL_Menu.py:1634 sl/SL_Menu.py:1804 +msgid "Notes (Markdown)" +msgstr "" + +#: sl/SL_Menu.py:751 sl/SL_Menu.py:1816 +msgid "Save Changes" +msgstr "" + +#: sl/SL_Menu.py:762 +msgid "Task details updated successfully." +msgstr "" + +#: sl/SL_Menu.py:768 +msgid "Error updating task details." +msgstr "" + +#: sl/SL_Menu.py:778 sl/SL_Menu.py:794 +msgid "Project Management" +msgstr "" + +#: sl/SL_Menu.py:787 sl/SL_Menu.py:861 +msgid "Back to Main Menu" +msgstr "" + +#: sl/SL_Menu.py:873 sl/SL_Menu.py:2000 +msgid "Report Format" +msgstr "" + +#: sl/SL_Menu.py:875 sl/SL_Menu.py:2159 +msgid "Email Settings" +msgstr "" + +#: sl/SL_Menu.py:876 sl/SL_Menu.py:2020 +msgid "Change CSS Style" +msgstr "" + +#: sl/SL_Menu.py:877 sl/SL_Menu.py:2058 +msgid "Change View Mode" +msgstr "" + +#: sl/SL_Menu.py:890 +msgid "Add New Project" +msgstr "" + +#: sl/SL_Menu.py:893 +msgid "Name of the project" +msgstr "" + +#: sl/SL_Menu.py:897 +#, python-brace-format +msgid "Project '{name}' added." +msgstr "" + +#: sl/SL_Menu.py:901 sl/SL_Menu.py:947 sl/SL_Menu.py:992 sl/SL_Menu.py:1038 +#: sl/SL_Menu.py:1093 sl/SL_Menu.py:1187 sl/SL_Menu.py:1235 sl/SL_Menu.py:1285 +#: sl/SL_Menu.py:1364 sl/SL_Menu.py:1394 sl/SL_Menu.py:1424 sl/SL_Menu.py:1455 +#: sl/SL_Menu.py:1517 sl/SL_Menu.py:1557 sl/SL_Menu.py:1666 sl/SL_Menu.py:1685 +#: sl/SL_Menu.py:1843 sl/SL_Menu.py:1890 sl/SL_Menu.py:1934 sl/SL_Menu.py:1995 +#: sl/SL_Menu.py:2014 sl/SL_Menu.py:2051 sl/SL_Menu.py:2084 sl/SL_Menu.py:2152 +#: sl/SL_Menu.py:2188 +msgid "Cancel" +msgstr "" + +#: sl/SL_Menu.py:919 sl/SL_Menu.py:964 sl/SL_Menu.py:1009 sl/SL_Menu.py:1204 +#: sl/SL_Menu.py:1267 sl/SL_Menu.py:1302 sl/SL_Menu.py:1334 sl/SL_Menu.py:1383 +#: sl/SL_Menu.py:1413 sl/SL_Menu.py:1443 sl/SL_Menu.py:1863 sl/SL_Menu.py:2251 +#: sl/SL_Menu.py:2312 +msgid "Select Project" +msgstr "" + +#: sl/SL_Menu.py:924 +#, python-brace-format +msgid "No open tasks to close in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:931 sl/SL_Menu.py:976 sl/SL_Menu.py:1021 sl/SL_Menu.py:1075 +#: sl/SL_Menu.py:1216 sl/SL_Menu.py:1344 sl/SL_Menu.py:1700 sl/SL_Menu.py:1874 +#: sl/SL_Menu.py:2282 +msgid "Select Task" +msgstr "" + +#: sl/SL_Menu.py:941 +#, python-brace-format +msgid "Task '{sub_name}' in '{main_name}' has been closed." +msgstr "" + +#: sl/SL_Menu.py:969 +#, python-brace-format +msgid "No closed tasks to reopen in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:986 +#, python-brace-format +msgid "Task '{sub_name}' in '{main_name}' has been reopened." +msgstr "" + +#: sl/SL_Menu.py:1014 +#, python-brace-format +msgid "No open tasks to delete in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:1025 +msgid "This action cannot be undone." +msgstr "" + +#: sl/SL_Menu.py:1032 +#, python-brace-format +msgid "Task '{sub_name}' deleted from '{main_name}'." +msgstr "" + +#: sl/SL_Menu.py:1055 +msgid "Select Source Project" +msgstr "" + +#: sl/SL_Menu.py:1060 +#, python-brace-format +msgid "No tasks found in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:1068 +msgid "No other projects available to move to." +msgstr "" + +#: sl/SL_Menu.py:1079 sl/SL_Menu.py:1503 +msgid "Select Target Project" +msgstr "" + +#: sl/SL_Menu.py:1087 +#, python-brace-format +msgid "Task '{sub}' moved from '{src}' to '{dst}'." +msgstr "" + +#: sl/SL_Menu.py:1091 +msgid "Error: Could not move task." +msgstr "" + +#: sl/SL_Menu.py:1102 sl/SL_Menu.py:1464 +msgid "Weeks of inactivity" +msgstr "" + +#: sl/SL_Menu.py:1107 +#, python-brace-format +msgid "Inactive Tasks (> {weeks} weeks):" +msgstr "" + +#: sl/SL_Menu.py:1112 sl/SL_Menu.py:1472 +msgid "Last Activity" +msgstr "" + +#: sl/SL_Menu.py:1171 +#, python-brace-format +msgid "" +"Are you sure you want to delete {count} closed tasks? This action cannot be " +"undone." +msgstr "" + +#: sl/SL_Menu.py:1173 +msgid "Show projects to delete" +msgstr "" + +#: sl/SL_Menu.py:1177 +msgid "Delete All" +msgstr "" + +#: sl/SL_Menu.py:1183 +#, python-brace-format +msgid "Successfully deleted {count} tasks." +msgstr "" + +#: sl/SL_Menu.py:1209 +#, python-brace-format +msgid "No open tasks to promote in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:1220 +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:1222 +msgid "Promote to Project" +msgstr "" + +#: sl/SL_Menu.py:1261 +msgid "No open projects to rename." +msgstr "" + +#: sl/SL_Menu.py:1270 sl/SL_Menu.py:1349 +msgid "New Name" +msgstr "" + +#: sl/SL_Menu.py:1271 sl/SL_Menu.py:1350 +msgid "Rename" +msgstr "" + +#: sl/SL_Menu.py:1275 sl/SL_Menu.py:1354 +msgid "Please enter a new name." +msgstr "" + +#: sl/SL_Menu.py:1277 sl/SL_Menu.py:1356 +msgid "New name is the same as the old name." +msgstr "" + +#: sl/SL_Menu.py:1279 +#, python-brace-format +msgid "Project '{old_name}' successfully renamed to '{new_name}'." +msgstr "" + +#: sl/SL_Menu.py:1339 +#, python-brace-format +msgid "No open tasks to rename in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:1362 +msgid "Error: Could not rename. The new name might already exist." +msgstr "" + +#: sl/SL_Menu.py:1375 +msgid "No open projects to close." +msgstr "" + +#: sl/SL_Menu.py:1388 +#, python-brace-format +msgid "Project '{name}' has been closed." +msgstr "" + +#: sl/SL_Menu.py:1392 sl/SL_Menu.py:1422 sl/SL_Menu.py:1453 +msgid "Error: Project not found." +msgstr "" + +#: sl/SL_Menu.py:1405 +msgid "No closed projects to reopen." +msgstr "" + +#: sl/SL_Menu.py:1418 +#, python-brace-format +msgid "Project '{name}' has been reopened." +msgstr "" + +#: sl/SL_Menu.py:1444 +msgid "" +"This action cannot be undone. All associated tasks and time entries will be " +"deleted." +msgstr "" + +#: sl/SL_Menu.py:1449 +#, python-brace-format +msgid "Project '{name}' has been deleted." +msgstr "" + +#: sl/SL_Menu.py:1469 +#, python-brace-format +msgid "Inactive Projects (> {weeks} weeks):" +msgstr "" + +#: sl/SL_Menu.py:1474 +#, python-brace-format +msgid "No projects found inactive for more than {weeks} weeks." +msgstr "" + +#: sl/SL_Menu.py:1483 sl/SL_Menu.py:1506 +msgid "Demote Project" +msgstr "" + +#: sl/SL_Menu.py:1495 +msgid "Select Project to Demote" +msgstr "" + +#: sl/SL_Menu.py:1501 +msgid "No other projects available to demote into." +msgstr "" + +#: sl/SL_Menu.py:1504 +#, python-brace-format +msgid "This will convert '{src}' into a task of '{dst}'." +msgstr "" + +#: sl/SL_Menu.py:1529 +msgid "Projects with only closed or no tasks:" +msgstr "" + +#: sl/SL_Menu.py:1533 +msgid "No completed projects found." +msgstr "" + +#: sl/SL_Menu.py:1542 sl/SL_Menu.py:1673 sl/SL_Menu.py:2241 +msgid "Step 1: Select Project" +msgstr "" + +#: sl/SL_Menu.py:1546 sl/SL_Menu.py:1857 +msgid "No open projects found. Please add one first." +msgstr "" + +#: sl/SL_Menu.py:1551 sl/SL_Menu.py:1680 sl/SL_Menu.py:1905 +msgid "Project" +msgstr "" + +#: sl/SL_Menu.py:1553 sl/SL_Menu.py:1681 sl/SL_Menu.py:1705 sl/SL_Menu.py:2253 +msgid "Next" +msgstr "" + +#: sl/SL_Menu.py:1568 sl/SL_Menu.py:2267 +msgid "No project selected. Please start again." +msgstr "" + +#: sl/SL_Menu.py:1573 +msgid "To Project:" +msgstr "" + +#: sl/SL_Menu.py:1594 +msgid "Name of the new task" +msgstr "" + +#: sl/SL_Menu.py:1600 +msgid "Due date" +msgstr "" + +#: sl/SL_Menu.py:1606 sl/SL_Menu.py:1775 +msgid "Recurring" +msgstr "" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "daily" +msgstr "" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "on all business days" +msgstr "" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "weekly" +msgstr "" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "monthly" +msgstr "" + +#: sl/SL_Menu.py:1620 sl/SL_Menu.py:1788 +msgid "userdefined" +msgstr "" + +#: sl/SL_Menu.py:1624 sl/SL_Menu.py:1797 +msgid "Frequency" +msgstr "" + +#: sl/SL_Menu.py:1628 sl/SL_Menu.py:1800 +msgid "Days" +msgstr "" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Edit" +msgstr "" + +#: sl/SL_Menu.py:1632 sl/SL_Menu.py:1802 +msgid "Preview" +msgstr "" + +#: sl/SL_Menu.py:1637 sl/SL_Menu.py:1807 +msgid "No notes provided." +msgstr "" + +#: sl/SL_Menu.py:1642 sl/SL_Menu.py:1812 +msgid "A due date is required for recurring tasks." +msgstr "" + +#: sl/SL_Menu.py:1650 +msgid "Please enter a name." +msgstr "" + +#: sl/SL_Menu.py:1661 +#, python-brace-format +msgid "Task '{sub_name}' added to '{main_name}'." +msgstr "" + +#: sl/SL_Menu.py:1693 sl/SL_Menu.py:2272 +msgid "Step 2: Select Task from" +msgstr "" + +#: sl/SL_Menu.py:1696 +msgid "No open tasks found." +msgstr "" + +#: sl/SL_Menu.py:1724 +msgid "Task not found." +msgstr "" + +#: sl/SL_Menu.py:1840 +msgid "Error: Could not update task." +msgstr "" + +#: sl/SL_Menu.py:1853 +msgid "Start Work on Task" +msgstr "" + +#: sl/SL_Menu.py:1867 +#, python-brace-format +msgid "No open tasks to start work on in '{name}'." +msgstr "" + +#: sl/SL_Menu.py:1878 +msgid "Start Work" +msgstr "" + +#: sl/SL_Menu.py:1906 +msgid "Task" +msgstr "" + +#: sl/SL_Menu.py:1907 +msgid "Started at" +msgstr "" + +#: sl/SL_Menu.py:1918 +msgid "Streamlit Port Settings" +msgstr "" + +#: sl/SL_Menu.py:1922 +msgid "Current Streamlit Port" +msgstr "" + +#: sl/SL_Menu.py:1925 +msgid "New Port" +msgstr "" + +#: sl/SL_Menu.py:1926 sl/SL_Menu.py:1958 sl/SL_Menu.py:2007 sl/SL_Menu.py:2042 +#: sl/SL_Menu.py:2074 sl/SL_Menu.py:2141 sl/SL_Menu.py:2173 +msgid "Save" +msgstr "" + +#: sl/SL_Menu.py:1930 +#, python-brace-format +msgid "Port updated to {port}. Please restart Streamlit." +msgstr "" + +#: sl/SL_Menu.py:1940 +msgid "Change Data Storage Location" +msgstr "" + +#: sl/SL_Menu.py:1943 +msgid "Current data file" +msgstr "" + +#: sl/SL_Menu.py:1946 +msgid "New Path for data file" +msgstr "" + +#: sl/SL_Menu.py:1952 +msgid "Move existing data to the new location" +msgstr "" + +#: sl/SL_Menu.py:1955 +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:1962 +msgid "Please enter a new path." +msgstr "" + +#: sl/SL_Menu.py:1970 +msgid "" +"Error: For security, the data file must be located within the application " +"directory." +msgstr "" + +#: sl/SL_Menu.py:1980 +msgid "" +"Storage location updated. Please restart the application for the changes to " +"take effect." +msgstr "" + +#: sl/SL_Menu.py:2006 +msgid "Select Format" +msgstr "" + +#: sl/SL_Menu.py:2011 +msgid "Report format updated." +msgstr "" + +#: sl/SL_Menu.py:2024 +msgid "Current CSS file" +msgstr "" + +#: sl/SL_Menu.py:2041 +msgid "Select CSS File" +msgstr "" + +#: sl/SL_Menu.py:2047 +msgid "" +"CSS style updated. Please restart the application for the changes to take " +"effect." +msgstr "" + +#: sl/SL_Menu.py:2063 +msgid "App Window (Webview)" +msgstr "" + +#: sl/SL_Menu.py:2063 +msgid "System Browser" +msgstr "" + +#: sl/SL_Menu.py:2073 +msgid "Select View Mode" +msgstr "" + +#: sl/SL_Menu.py:2080 +msgid "" +"View mode updated. Please restart the application for the changes to take " +"effect." +msgstr "" + +#: sl/SL_Menu.py:2091 +msgid "Restore Previous Version" +msgstr "" + +#: sl/SL_Menu.py:2096 +msgid "The 'update' module is not available. This feature is disabled." +msgstr "" + +#: sl/SL_Menu.py:2101 +#, python-brace-format +msgid "No previous version backup '{filename}' found." +msgstr "" + +#: sl/SL_Menu.py:2105 +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:2107 +msgid "Restore and Restart" +msgstr "" + +#: sl/SL_Menu.py:2108 +msgid "Restoring and restarting..." +msgstr "" + +#: sl/SL_Menu.py:2111 +msgid "Restore complete. Please restart the application." +msgstr "" + +#: sl/SL_Menu.py:2117 +msgid "Change Language" +msgstr "" + +#: sl/SL_Menu.py:2140 +msgid "Select Language" +msgstr "" + +#: sl/SL_Menu.py:2148 +msgid "" +"Language changed. Please restart the application for the changes to take " +"effect." +msgstr "" + +#: sl/SL_Menu.py:2166 +msgid "Enable email import" +msgstr "" + +#: sl/SL_Menu.py:2167 +msgid "IMAP Server" +msgstr "" + +#: sl/SL_Menu.py:2168 +msgid "Port" +msgstr "" + +#: sl/SL_Menu.py:2169 +msgid "Username" +msgstr "" + +#: sl/SL_Menu.py:2170 +msgid "Password" +msgstr "" + +#: sl/SL_Menu.py:2171 +msgid "Use SSL" +msgstr "" + +#: sl/SL_Menu.py:2184 +msgid "Email settings saved." +msgstr "" + +#: sl/SL_Menu.py:2198 sl/SL_Menu.py:2330 +msgid "Select Date" +msgstr "" + +#: sl/SL_Menu.py:2199 sl/SL_Menu.py:2223 sl/SL_Menu.py:2287 sl/SL_Menu.py:2313 +#: sl/SL_Menu.py:2331 +msgid "Generate Report" +msgstr "" + +#: sl/SL_Menu.py:2219 +msgid "Start Date" +msgstr "" + +#: sl/SL_Menu.py:2221 +msgid "End Date" +msgstr "" + +#: sl/SL_Menu.py:2346 +msgid "Report Result" +msgstr "" + +#: sl/SL_Menu.py:2375 +msgid "Export Report" +msgstr "" diff --git a/tt/TimeTracker.py b/tt/TimeTracker.py index ce2b625..65b182b 100644 --- a/tt/TimeTracker.py +++ b/tt/TimeTracker.py @@ -37,7 +37,7 @@ class TimeTracker: The data is loaded from and saved to a JSON file. """ - VERSION = "3.14" + VERSION = "3.15" STATUS_OPEN = "open" STATUS_CLOSED = "closed" STATUS_DONE = "done"