Files
beabigegg 4b7e523f84 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>
2026-01-13 21:37:29 +08:00

91 lines
2.5 KiB
JSON

{
"title": "Audit Log",
"subtitle": "Track all operations in the system",
"filters": {
"action": "Action Type",
"user": "User",
"entity": "Entity Type",
"dateRange": "Date Range",
"allActions": "All Actions",
"allUsers": "All Users",
"allEntities": "All Entities"
},
"actions": {
"create": "Create",
"update": "Update",
"delete": "Delete",
"login": "Login",
"logout": "Logout",
"assign": "Assign",
"unassign": "Unassign",
"statusChange": "Status Change",
"comment": "Comment",
"upload": "Upload",
"download": "Download"
},
"entities": {
"task": "Task",
"project": "Project",
"space": "Space",
"user": "User",
"comment": "Comment",
"attachment": "Attachment"
},
"columns": {
"timestamp": "Timestamp",
"user": "User",
"action": "Action",
"entity": "Entity",
"details": "Details",
"ipAddress": "IP Address"
},
"details": {
"before": "Before",
"after": "After",
"changes": "Changes"
},
"export": {
"title": "Export Log",
"csv": "Export as CSV",
"json": "Export as JSON"
},
"empty": {
"title": "No Audit Records",
"description": "No audit records match the current filters"
},
"modal": {
"details": {
"title": "Audit Log Details",
"eventType": "Event Type:",
"action": "Action:",
"resource": "Resource:",
"user": "User:",
"ipAddress": "IP Address:",
"sensitivity": "Sensitivity:",
"time": "Time:",
"changes": "Changes",
"field": "Field",
"oldValue": "Old Value",
"newValue": "New Value",
"checksum": "Checksum:",
"na": "N/A",
"system": "System"
},
"verification": {
"title": "Integrity Verification",
"verifying": "Verifying audit log integrity...",
"verifyingHint": "This may take a moment depending on the number of records.",
"failed": "Verification Failed",
"statusSuccess": "Integrity Verified",
"statusFailed": "Integrity Issues Detected",
"successDescription": "All audit records have valid checksums and have not been tampered with.",
"failedDescription": "Some audit records have invalid checksums, indicating potential tampering or corruption.",
"totalChecked": "Total Checked",
"valid": "Valid",
"invalid": "Invalid",
"invalidRecords": "Invalid Records",
"invalidRecordsDescription": "The following record IDs failed integrity verification:"
}
}
}