feat: add i18n internationalization support
- Add react-i18next, i18next with browser language detection - Support Traditional Chinese (zh-TW) and English (en) - Default language: zh-TW, stored in localStorage - Create 10 translation namespaces (common, auth, dashboard, tasks, etc.) - Add LanguageSwitcher component in header - Translate pages: Login, Dashboard, Tasks, Spaces, Workload, Audit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
134
frontend/public/locales/en/tasks.json
Normal file
134
frontend/public/locales/en/tasks.json
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"title": "Tasks",
|
||||
"createTask": "Create Task",
|
||||
"editTask": "Edit Task",
|
||||
"deleteTask": "Delete Task",
|
||||
"taskDetails": "Task Details",
|
||||
"fields": {
|
||||
"title": "Title",
|
||||
"titlePlaceholder": "Enter task title",
|
||||
"description": "Description",
|
||||
"descriptionPlaceholder": "Enter task description",
|
||||
"status": "Status",
|
||||
"priority": "Priority",
|
||||
"assignee": "Assignee",
|
||||
"dueDate": "Due Date",
|
||||
"startDate": "Start Date",
|
||||
"estimatedHours": "Estimated Hours",
|
||||
"actualHours": "Actual Hours",
|
||||
"progress": "Progress",
|
||||
"tags": "Tags",
|
||||
"parent": "Parent Task",
|
||||
"subtasks": "Subtasks",
|
||||
"attachments": "Attachments",
|
||||
"comments": "Comments",
|
||||
"watchers": "Watchers",
|
||||
"blockers": "Blockers"
|
||||
},
|
||||
"status": {
|
||||
"todo": "To Do",
|
||||
"in_progress": "In Progress",
|
||||
"review": "In Review",
|
||||
"done": "Done",
|
||||
"cancelled": "Cancelled",
|
||||
"blocked": "Blocked"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Low",
|
||||
"medium": "Medium",
|
||||
"high": "High",
|
||||
"urgent": "Urgent"
|
||||
},
|
||||
"views": {
|
||||
"list": "List",
|
||||
"kanban": "Kanban",
|
||||
"calendar": "Calendar",
|
||||
"gantt": "Gantt",
|
||||
"timeline": "Timeline"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All Tasks",
|
||||
"myTasks": "My Tasks",
|
||||
"unassigned": "Unassigned",
|
||||
"overdue": "Overdue",
|
||||
"dueThisWeek": "Due This Week",
|
||||
"highPriority": "High Priority",
|
||||
"recentlyUpdated": "Recently Updated"
|
||||
},
|
||||
"sort": {
|
||||
"sortBy": "Sort by",
|
||||
"dueDate": "Due Date",
|
||||
"priority": "Priority",
|
||||
"status": "Status",
|
||||
"title": "Title",
|
||||
"createdAt": "Created At",
|
||||
"updatedAt": "Updated At",
|
||||
"ascending": "Ascending",
|
||||
"descending": "Descending"
|
||||
},
|
||||
"actions": {
|
||||
"assign": "Assign",
|
||||
"reassign": "Reassign",
|
||||
"changeStatus": "Change Status",
|
||||
"changePriority": "Change Priority",
|
||||
"addSubtask": "Add Subtask",
|
||||
"addComment": "Add Comment",
|
||||
"addAttachment": "Add Attachment",
|
||||
"addWatcher": "Add Watcher",
|
||||
"removeWatcher": "Remove Watcher",
|
||||
"duplicate": "Duplicate Task",
|
||||
"archive": "Archive",
|
||||
"restore": "Restore",
|
||||
"moveToProject": "Move to Project"
|
||||
},
|
||||
"subtasks": {
|
||||
"title": "Subtasks",
|
||||
"add": "Add Subtask",
|
||||
"placeholder": "Enter subtask title",
|
||||
"completed": "{{count}} / {{total}} completed",
|
||||
"empty": "No subtasks"
|
||||
},
|
||||
"comments": {
|
||||
"title": "Comments",
|
||||
"add": "Add Comment",
|
||||
"placeholder": "Write your comment...",
|
||||
"edited": "edited",
|
||||
"delete": "Delete Comment",
|
||||
"confirmDelete": "Are you sure you want to delete this comment?",
|
||||
"empty": "No comments yet",
|
||||
"reply": "Reply"
|
||||
},
|
||||
"attachments": {
|
||||
"title": "Attachments",
|
||||
"add": "Add Attachment",
|
||||
"upload": "Upload File",
|
||||
"dragDrop": "Drag and drop files here or click to upload",
|
||||
"maxSize": "Max file size: {{size}}MB",
|
||||
"downloading": "Downloading...",
|
||||
"empty": "No attachments"
|
||||
},
|
||||
"blockers": {
|
||||
"title": "Blockers",
|
||||
"add": "Add Blocker",
|
||||
"blockedBy": "Blocked by",
|
||||
"blocking": "Blocking",
|
||||
"remove": "Remove blocker",
|
||||
"empty": "No blockers"
|
||||
},
|
||||
"messages": {
|
||||
"created": "Task created",
|
||||
"updated": "Task updated",
|
||||
"deleted": "Task deleted",
|
||||
"statusChanged": "Status changed to \"{{status}}\"",
|
||||
"assigned": "Assigned to {{assignee}}",
|
||||
"unassigned": "Unassigned",
|
||||
"commentAdded": "Comment added",
|
||||
"attachmentUploaded": "Attachment uploaded",
|
||||
"confirmDelete": "Are you sure you want to delete this task? This action cannot be undone."
|
||||
},
|
||||
"empty": {
|
||||
"title": "No Tasks",
|
||||
"description": "There are no tasks yet. Create your first task to get started!",
|
||||
"filtered": "No tasks match your filters"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user