feat: implement debug logging cleanup and i18n coverage proposals

## cleanup-debug-logging
- Create environment-aware logger utility (logger.ts)
- Replace 60+ console.log/error statements across 28 files
- Production: only warn/error logs visible
- Development: all log levels with prefixes

Updated files:
- Contexts: NotificationContext, ProjectSyncContext, AuthContext
- Components: GanttChart, CalendarView, ErrorBoundary, and 11 others
- Pages: Tasks, Projects, Dashboard, and 7 others
- Services: api.ts

## complete-i18n-coverage
- WeeklyReportPreview: all strings translated, dynamic locale
- ReportHistory: all strings translated, dynamic locale
- AuditPage: detail modal and verification modal translated
- WorkloadPage: error message translated

Locale files updated:
- en/common.json, zh-TW/common.json: reports section
- en/audit.json, zh-TW/audit.json: modal sections
- en/workload.json, zh-TW/workload.json: errors section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
beabigegg
2026-01-13 21:37:29 +08:00
parent ed8d30e9bd
commit 4b7e523f84
37 changed files with 430 additions and 207 deletions

View File

@@ -21,7 +21,8 @@
"remove": "Remove",
"view": "View",
"download": "Download",
"upload": "Upload"
"upload": "Upload",
"retry": "Retry"
},
"labels": {
"loading": "Loading...",
@@ -135,5 +136,62 @@
"maxFileSize": "Maximum file size: {{size}}",
"uploading": "Uploading {{filename}} ({{current}}/{{total}})...",
"uploadFailed": "Upload failed"
},
"reports": {
"weeklyPreview": {
"title": "Weekly Report Preview",
"generateNow": "Generate Now",
"generating": "Generating...",
"loading": "Loading report preview...",
"noData": "No report data available",
"noProjects": "No projects found",
"projects": "Projects",
"retry": "Retry",
"completedShort": "completed",
"done": "done",
"inProgressLower": "in progress",
"overdueLower": "overdue",
"blockedLower": "blocked",
"nextWeekLower": "next week",
"unassigned": "Unassigned",
"due": "Due",
"since": "Since",
"noReasonProvided": "No reason provided",
"daysOverdue": "{{count}} day overdue",
"daysOverdue_other": "{{count}} days overdue",
"status": {
"completed": "Completed",
"inProgress": "In Progress",
"overdue": "Overdue",
"blocked": "Blocked",
"nextWeek": "Next Week",
"total": "Total"
},
"errors": {
"loadFailed": "Failed to load report preview",
"generateFailed": "Failed to generate report"
},
"messages": {
"generateSuccess": "Report generated and notification sent!"
}
},
"history": {
"title": "Report History",
"loading": "Loading history...",
"retry": "Retry",
"empty": "No report history found. Reports are generated every Friday at 16:00.",
"totalReports": "{{count}} report",
"totalReports_other": "{{count}} reports",
"completed": "Completed",
"inProgress": "In Progress",
"overdue": "Overdue",
"status": {
"sent": "sent",
"failed": "failed"
},
"errors": {
"loadFailed": "Failed to load report history"
}
}
}
}