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:
73
frontend/public/locales/en/settings.json
Normal file
73
frontend/public/locales/en/settings.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"title": "Settings",
|
||||
"projectSettings": "Project Settings",
|
||||
"tabs": {
|
||||
"general": "General",
|
||||
"members": "Members",
|
||||
"customFields": "Custom Fields",
|
||||
"notifications": "Notifications",
|
||||
"integrations": "Integrations",
|
||||
"danger": "Danger Zone"
|
||||
},
|
||||
"general": {
|
||||
"title": "General Settings",
|
||||
"projectName": "Project Name",
|
||||
"description": "Description",
|
||||
"status": "Status",
|
||||
"visibility": "Visibility",
|
||||
"public": "Public",
|
||||
"private": "Private"
|
||||
},
|
||||
"members": {
|
||||
"title": "Member Management",
|
||||
"invite": "Invite Member",
|
||||
"inviteByEmail": "Invite by email",
|
||||
"emailPlaceholder": "Enter email address",
|
||||
"role": "Role",
|
||||
"changeRole": "Change Role",
|
||||
"remove": "Remove Member",
|
||||
"confirmRemove": "Are you sure you want to remove this member?"
|
||||
},
|
||||
"customFields": {
|
||||
"title": "Custom Fields",
|
||||
"add": "Add Field",
|
||||
"edit": "Edit Field",
|
||||
"delete": "Delete Field",
|
||||
"fieldName": "Field Name",
|
||||
"fieldType": "Field Type",
|
||||
"required": "Required",
|
||||
"types": {
|
||||
"text": "Text",
|
||||
"number": "Number",
|
||||
"date": "Date",
|
||||
"select": "Dropdown",
|
||||
"multiSelect": "Multi-select",
|
||||
"checkbox": "Checkbox"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notification Settings",
|
||||
"email": "Email Notifications",
|
||||
"inApp": "In-app Notifications",
|
||||
"taskAssigned": "When a task is assigned to me",
|
||||
"taskCompleted": "When a task is completed",
|
||||
"commentAdded": "When a comment is added",
|
||||
"dueDateApproaching": "When a due date is approaching"
|
||||
},
|
||||
"danger": {
|
||||
"title": "Danger Zone",
|
||||
"archive": "Archive Project",
|
||||
"archiveDescription": "Archive this project. The project will become read-only.",
|
||||
"delete": "Delete Project",
|
||||
"deleteDescription": "Permanently delete this project and all its data. This action cannot be undone.",
|
||||
"confirmArchive": "Are you sure you want to archive this project?",
|
||||
"confirmDelete": "Are you sure you want to delete this project? Type the project name to confirm:",
|
||||
"typeToConfirm": "Type \"{{name}}\" to confirm"
|
||||
},
|
||||
"messages": {
|
||||
"saved": "Settings saved",
|
||||
"memberInvited": "Invitation sent",
|
||||
"memberRemoved": "Member removed",
|
||||
"roleChanged": "Role changed"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user