From d5b045158a791d4c57358fb4623161718f71e76d Mon Sep 17 00:00:00 2001 From: paul-nothaft <40865108-paul-nothaft@users.noreply.replit.com> Date: Fri, 24 Oct 2025 11:26:17 +0000 Subject: [PATCH] Add missing translations for project templates and task details Adds new translation keys for project templates and task details in `en.json` and `de.json`, and updates `ProjectTemplate.tsx` to use these translations. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/iGgwDyZ --- .replit | 4 -- client/src/components/ProjectTemplate.tsx | 70 +++++++++++------------ client/src/i18n/locales/de.json | 9 ++- client/src/i18n/locales/en.json | 9 ++- 4 files changed, 51 insertions(+), 41 deletions(-) diff --git a/.replit b/.replit index 1de34cd..a572720 100644 --- a/.replit +++ b/.replit @@ -30,10 +30,6 @@ externalPort = 3000 localPort = 44261 externalPort = 3003 -[[ports]] -localPort = 46755 -externalPort = 4200 - [env] PORT = "5000" diff --git a/client/src/components/ProjectTemplate.tsx b/client/src/components/ProjectTemplate.tsx index 5ed6e60..ec08d42 100644 --- a/client/src/components/ProjectTemplate.tsx +++ b/client/src/components/ProjectTemplate.tsx @@ -677,7 +677,7 @@ export default function ProjectTemplate({ {/* Closed Projects Section */}
-

Closed Projects

+

{t('projectTemplate.closedProjects')}

- + setSelectedProject({ ...selectedProject, name: e.target.value })} - placeholder="Enter project name" + placeholder={t('projectTemplate.projectNamePlaceholder')} data-testid="input-edit-project-name" />
- + setSelectedProject({ ...selectedProject, description: e.target.value })} - placeholder="Enter project description" + placeholder={t('projectTemplate.projectDescriptionPlaceholder')} data-testid="input-edit-project-description" />
- +
@@ -1163,7 +1163,7 @@ export default function ProjectTemplate({ {/* Planned End Date */}
- + @@ -1198,7 +1198,7 @@ export default function ProjectTemplate({ className="text-xs text-muted-foreground hover:text-destructive" data-testid="button-clear-planned-end-date" > - Clear date + {t('projectTemplate.clearDate')} )}
@@ -1206,7 +1206,7 @@ export default function ProjectTemplate({ {/* Tasks Section */}
-

Project Tasks

+

{t('projectTemplate.projectTasks')}

@@ -1227,29 +1227,29 @@ export default function ProjectTemplate({
- + setTaskForm({...taskForm, title: e.target.value})} - placeholder="Enter task title" + placeholder={t('projectTemplate.enterTaskTitle')} className="text-sm" data-testid={`input-inline-task-title-${index}`} />
- + setTaskForm({...taskForm, description: e.target.value})} - placeholder="Enter task description" + placeholder={t('projectTemplate.enterTaskDescription')} className="text-sm" data-testid={`input-inline-task-description-${index}`} />
- +
- +
- + - Cancel + {t('projectTemplate.cancel')}
@@ -1345,13 +1345,13 @@ export default function ProjectTemplate({ ) : null} {task.timeTracked && task.timeTracked > 0 && ( - {Math.floor(task.timeTracked / 60)}h {task.timeTracked % 60}m tracked + {Math.floor(task.timeTracked / 60)}h {task.timeTracked % 60}m {t('projectTemplate.tracked')} )} {task.notes && task.notes.trim() && ( - Notes + {t('projectTemplate.notesLabel')} )}
@@ -1365,7 +1365,7 @@ export default function ProjectTemplate({ handleOpenTaskDetails(task); }} data-testid={`button-details-task-${index}`} - title="View task details" + title={t('projectTemplate.viewTaskDetails')} > @@ -1377,7 +1377,7 @@ export default function ProjectTemplate({ handleEditTask(index); }} data-testid={`button-edit-task-edit-${index}`} - title="Edit task" + title={t('projectTemplate.editTaskTooltip')} > @@ -1389,7 +1389,7 @@ export default function ProjectTemplate({ handleRemoveTask(index); }} data-testid={`button-remove-task-edit-${index}`} - title="Remove task" + title={t('projectTemplate.removeTask')} > @@ -1401,7 +1401,7 @@ export default function ProjectTemplate({ {projectTasks.length === 0 && (
- No tasks in this project yet. Click "Add Task" to get started. + {t('projectTemplate.noTasksInProject')}
)}
diff --git a/client/src/i18n/locales/de.json b/client/src/i18n/locales/de.json index ab3dbf4..bf35833 100644 --- a/client/src/i18n/locales/de.json +++ b/client/src/i18n/locales/de.json @@ -253,7 +253,14 @@ "projectDescriptionPlaceholder": "Projektbeschreibung eingeben (optional)", "plannedEndDate": "Geplantes Enddatum", "selectPlannedEndDate": "Geplantes Enddatum wählen", - "clearDate": "Datum löschen" + "clearDate": "Datum löschen", + "noTasksInProject": "Noch keine Aufgaben in diesem Projekt. Klicken Sie auf \"Aufgabe hinzufügen\", um zu beginnen.", + "closedProjects": "Abgeschlossene Projekte", + "viewTaskDetails": "Aufgabendetails anzeigen", + "editTaskTooltip": "Aufgabe bearbeiten", + "removeTask": "Aufgabe entfernen", + "tracked": "verfolgt", + "notesLabel": "Notizen" }, "timeCompletion": { "title": "Aufgabe abgeschlossen!", diff --git a/client/src/i18n/locales/en.json b/client/src/i18n/locales/en.json index 509cf1e..95cc192 100644 --- a/client/src/i18n/locales/en.json +++ b/client/src/i18n/locales/en.json @@ -253,7 +253,14 @@ "projectDescriptionPlaceholder": "Enter project description (optional)", "plannedEndDate": "Planned End Date", "selectPlannedEndDate": "Select planned end date", - "clearDate": "Clear date" + "clearDate": "Clear date", + "noTasksInProject": "No tasks in this project yet. Click \"Add Task\" to get started.", + "closedProjects": "Closed Projects", + "viewTaskDetails": "View task details", + "editTaskTooltip": "Edit task", + "removeTask": "Remove task", + "tracked": "tracked", + "notesLabel": "Notes" }, "timeCompletion": { "title": "Task Completed!",