Skip to content

Commit 18d9b28

Browse files
committed
feat: 添加多语言/i18n补充与聊天组件
- 新增中英日韩四语言完整补充文件 - 新增国际化分析报告、实施总结和快速指南文档 - 重构聊天组件:ChatInput, ChatPanel, FloatingChatButton, MessageBubble - 实现聊天服务:chatStorage (IndexedDB本地存储), chatStream (SSE流式响应) - 实现聊天状态管理:chat.store (Zustand) - 优化多个 admin 页面的国际化支持 - 修复组件样式和交互体验
1 parent bbd9295 commit 18d9b28

File tree

27 files changed

+5471
-559
lines changed

27 files changed

+5471
-559
lines changed
Lines changed: 325 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,325 @@
1+
{
2+
"admin": {
3+
"dashboard": {
4+
"fetchFailed": "Failed to fetch dashboard data",
5+
"lastUpdated": "Last Updated",
6+
"autoRefresh": "Auto Refresh",
7+
"refresh": "Refresh",
8+
"monthlyNew": "Monthly New",
9+
"comparedToLastMonth": "Compared to last month",
10+
"todayActive": "Today Active",
11+
"weekActive": "Week Active",
12+
"monthlyActiveUsers": "Monthly Active Users",
13+
"userActivityStats": "User Activity Statistics",
14+
"recentUsers": "Recently Registered Users",
15+
"recentRepositories": "Recently Created Repositories",
16+
"recentErrorLogs": "Recent Error Logs",
17+
"documentCount": "Documents",
18+
"quickActions": "Quick Actions",
19+
"quickActionsDescription": "Frequently used management operations",
20+
"stats": {
21+
"total_repos": "Total Repositories",
22+
"total_documents": "Total Documents",
23+
"online_users": "Online Users"
24+
},
25+
"noDescription": "No description",
26+
"unknown": "Unknown",
27+
"increaseRate": "Growth Rate"
28+
},
29+
"users": {
30+
"userList": "User List",
31+
"totalUsers": "Total {{total}} users",
32+
"filterByRole": "Filter by Role",
33+
"allRoles": "All Roles",
34+
"cancelSelection": "Cancel Selection",
35+
"selectAll": "Select All",
36+
"selectUser": "Select user {{name}}",
37+
"openMenu": "Open Menu",
38+
"actionsMenu": "Actions",
39+
"resetPassword": "Reset Password",
40+
"batchDeleteSelected": "Delete Selected ({{count}})",
41+
"previous": "Previous",
42+
"next": "Next",
43+
"pageInfo": "Page {{current}} of {{total}}",
44+
"errors": {
45+
"loadFailed": "Load Failed",
46+
"loadFailedDescription": "Unable to load user list",
47+
"unknown": "Unknown"
48+
},
49+
"messages": {
50+
"confirmDelete": "Are you sure you want to delete this user?",
51+
"deleteSuccess": "Delete Successful",
52+
"deleteSuccessDescription": "User has been deleted",
53+
"deleteFailed": "Delete Failed",
54+
"deleteFailedDescription": "Unable to delete user",
55+
"pleaseSelectUsers": "Please select users to delete"
56+
}
57+
},
58+
"repositories": {
59+
"batchActions": "Batch Actions",
60+
"repositoryList": "Repository List",
61+
"totalRepositories": "Total {{total}} repositories",
62+
"filterStatus": "Filter Status",
63+
"allStatus": "All Status",
64+
"statisticsInfo": "Statistics",
65+
"tokenIn": "Input Tokens",
66+
"tokenOut": "Output Tokens",
67+
"totalToken": "Total Tokens",
68+
"openMenu": "Open Menu",
69+
"viewRepository": "View Repository",
70+
"editInfo": "Edit Information",
71+
"manageContent": "Manage Content",
72+
"reprocessRepository": "Reprocess Repository",
73+
"exportMarkdown": "Export Markdown",
74+
"deleteRepository": "Delete Repository",
75+
"previous": "Previous",
76+
"next": "Next",
77+
"pageInfo": "Page {{current}} of {{total}}",
78+
"stats": {
79+
"totalRepositories": "Total Repositories",
80+
"totalRepositoriesDescription": "All repositories",
81+
"completedRepositories": "Completed",
82+
"completedRepositoriesDescription": "Analysis completed",
83+
"processingRepositories": "Processing",
84+
"processingRepositoriesDescription": "Currently analyzing",
85+
"pendingRepositories": "Pending",
86+
"pendingRepositoriesDescription": "Waiting for analysis"
87+
},
88+
"statusLabels": {
89+
"pending": "Pending",
90+
"processing": "Processing",
91+
"completed": "Completed",
92+
"failed": "Failed"
93+
},
94+
"errors": {
95+
"loadFailed": "Load Failed",
96+
"loadFailedDescription": "Unable to load repository list"
97+
},
98+
"messages": {
99+
"deleteSuccess": "Delete Successful",
100+
"deleteSuccessDescription": "Repository \"{{name}}\" has been deleted",
101+
"deleteFailed": "Delete Failed",
102+
"deleteFailedDescription": "Unable to delete repository",
103+
"refreshSuccess": "Refresh Successful",
104+
"refreshSuccessDescription": "Repository \"{{name}}\" has started reprocessing",
105+
"refreshFailed": "Refresh Failed",
106+
"refreshFailedDescription": "Unable to refresh repository",
107+
"updateSuccess": "Repository information updated successfully",
108+
"updateFailed": "Update Failed",
109+
"updateFailedDescription": "An error occurred while updating repository information"
110+
},
111+
"deleteDialog": {
112+
"title": "Confirm Delete Repository",
113+
"description": "Are you sure you want to delete repository \"{{name}}\"?",
114+
"warning": "This action is irreversible and will delete the repository and all its document data.",
115+
"cancel": "Cancel",
116+
"confirmDelete": "Confirm Delete"
117+
},
118+
"editDialog": {
119+
"title": "Edit Repository Information",
120+
"description": "Edit {{organizationName}}/{{name}} information",
121+
"repositoryDescription": "Repository Description",
122+
"descriptionPlaceholder": "Enter repository description...",
123+
"isRecommended": "Recommended Repository",
124+
"customPrompt": "Custom Prompt (Optional)",
125+
"promptPlaceholder": "Enter custom prompt...",
126+
"cancel": "Cancel",
127+
"saving": "Saving...",
128+
"saveChanges": "Save Changes"
129+
},
130+
"detail": {
131+
"loadRepositoryDataFailed": "Failed to load repository data",
132+
"fileSaveSuccess": "File saved successfully",
133+
"fileSaveFailed": "Failed to save file",
134+
"repositoryRefreshSuccess": "Repository refreshed successfully",
135+
"repositoryRefreshFailed": "Failed to refresh repository",
136+
"repositoryDeleteSuccess": "Repository deleted successfully",
137+
"repositoryDeleteFailed": "Failed to delete repository",
138+
"syncTaskStarted": "Sync task started",
139+
"syncStartFailed": "Failed to start sync",
140+
"exportSuccess": "Export successful",
141+
"exportFailed": "Export failed",
142+
"repositoryNotFound": "Repository not found",
143+
"returnToRepositoryList": "Return to repository list",
144+
"refreshing": "Refreshing...",
145+
"refresh": "Refresh",
146+
"export": "Export",
147+
"edit": "Edit",
148+
"delete": "Delete",
149+
"confirmDeleteRepository": "Confirm Delete Repository",
150+
"deleteRepositoryWarning": "This action will permanently delete the repository and all its data. This operation cannot be undone.",
151+
"cancel": "Cancel",
152+
"confirmDelete": "Confirm Delete",
153+
"documents": "Document Management",
154+
"sync": "Sync Management",
155+
"quality": "Quality Assessment",
156+
"searchDocuments": "Search documents...",
157+
"noDocuments": "No document directory",
158+
"selectDocument": "Select a document",
159+
"selectDocumentDescription": "Select a document from the left directory to view or edit its content",
160+
"completed": "Completed",
161+
"aiGenerate": "AI Generate",
162+
"save": "Save",
163+
"saving": "Saving...",
164+
"lastModified": "Last Modified",
165+
"loadingEditor": "Loading editor...",
166+
"fileContent": "File content...",
167+
"documentContent": "Document content...",
168+
"documentSaveSuccess": "Document saved successfully",
169+
"syncManagement": "Sync Management",
170+
"syncManagementDescription": "Manage repository synchronization settings and history",
171+
"manualSync": "Manual Sync",
172+
"manualSyncRepository": "Manual Sync Repository",
173+
"syncDescription": "This will pull the latest files from the source repository and regenerate documents.",
174+
"startSync": "Start Sync",
175+
"lastSyncTime": "Last Sync Time",
176+
"neverSynced": "Never synced",
177+
"syncStatus": "Sync Status",
178+
"autoSync": "Auto Sync",
179+
"updating": "Updating...",
180+
"enabled": "Enabled",
181+
"disabled": "Disabled",
182+
"syncHistory": "Sync History",
183+
"syncSuccess": "Sync successful",
184+
"syncFailed": "Sync failed",
185+
"syncing": "Syncing",
186+
"manual": "Manual",
187+
"auto": "Auto",
188+
"startTime": "Start",
189+
"endTime": "End",
190+
"filesChanged": "files",
191+
"filesAdded": "Added",
192+
"filesUpdated": "Updated",
193+
"filesDeleted": "Deleted",
194+
"noSyncHistory": "No sync history",
195+
"permissionManagement": "Permission Management",
196+
"permissionManagementDescription": "Manage user and role access to this repository",
197+
"permissionDevelopment": "Permission management feature under development...",
198+
"configManagement": "Configuration Management",
199+
"configManagementDescription": "Manage various configuration options for the repository",
200+
"configDevelopment": "Configuration management feature under development...",
201+
"taskManagement": "Task Management",
202+
"taskManagementDescription": "View and manage repository-related processing tasks",
203+
"taskDevelopment": "Task management feature under development...",
204+
"editRepositoryInfo": "Edit Repository Information",
205+
"editRepositoryDescription": "Modify repository basic information and sync settings",
206+
"repositoryName": "Repository Name",
207+
"repositoryNamePlaceholder": "Enter repository name",
208+
"repositoryDescription": "Repository Description",
209+
"repositoryDescriptionPlaceholder": "Enter repository description",
210+
"enableAutoSync": "Auto Sync",
211+
"enableAutoSyncDescription": "System will automatically sync repository updates when enabled",
212+
"aiGenerateDialog": {
213+
"title": "AI Smart Generate Document Content",
214+
"description": "Generate content for the currently selected document directory. You can enter custom prompts to guide AI generation, or leave empty to use default prompts.",
215+
"promptLabel": "Prompt (Optional)",
216+
"promptPlaceholder": "e.g.: Please generate detailed technical documentation, including code examples and architecture explanations...",
217+
"promptHint": "Tip: Leave empty to use system default prompt or previously saved prompt",
218+
"targetDocument": "Target Document:",
219+
"currentPrompt": "Current Prompt:",
220+
"cancel": "Cancel",
221+
"generating": "Generating...",
222+
"startGenerate": "Start Generate"
223+
},
224+
"wikiGeneration": "Wiki Generation"
225+
}
226+
},
227+
"roles": {
228+
"errors": {
229+
"loadFailed": "Load Failed",
230+
"loadFailedDescription": "Unable to load role list"
231+
},
232+
"status": {
233+
"enabled": "Enabled",
234+
"disabled": "Disabled"
235+
},
236+
"type": {
237+
"system": "System Role",
238+
"custom": "Custom Role"
239+
},
240+
"messages": {
241+
"confirmDelete": "Are you sure you want to delete role \"{{name}}\"?",
242+
"deleteSuccess": "Delete Successful",
243+
"deleteSuccessDescription": "Role has been deleted",
244+
"deleteFailed": "Delete Failed",
245+
"deleteFailedDescription": "Unable to delete role",
246+
"statusUpdateSuccess": "Status Update Successful",
247+
"statusUpdateDescription": "Role has been {{status}}",
248+
"statusEnabled": "enabled",
249+
"statusDisabled": "disabled",
250+
"statusUpdateFailed": "Status Update Failed",
251+
"statusUpdateFailedDescription": "Unable to update role status"
252+
},
253+
"stats": {
254+
"totalRoles": "Total Roles",
255+
"totalRolesDescription": "Including system and custom roles",
256+
"activeRoles": "Active Roles",
257+
"activeRolesDescription": "Currently enabled roles",
258+
"assignedUsers": "Assigned Users",
259+
"assignedUsersDescription": "Total users with role assignments"
260+
},
261+
"list": {
262+
"title": "Role List",
263+
"totalCount": "Total {{total}} roles"
264+
},
265+
"filters": {
266+
"allStatus": "All Status"
267+
},
268+
"table": {
269+
"noDescription": "No description",
270+
"openMenu": "Open Menu",
271+
"actionsMenu": "Actions"
272+
},
273+
"actions": {
274+
"viewMembers": "View Members",
275+
"copyRole": "Copy Role",
276+
"disable": "Disable",
277+
"enable": "Enable"
278+
},
279+
"pagination": {
280+
"previous": "Previous",
281+
"pageInfo": "Page {{current}} of {{total}}",
282+
"next": "Next"
283+
}
284+
},
285+
"tokens": {
286+
"labels": {
287+
"inputTokens": "Input Tokens",
288+
"outputTokens": "Output Tokens",
289+
"totalTokens": "Total Tokens"
290+
},
291+
"stats": {
292+
"percentageOfTotal": "{{percentage}}% of total",
293+
"comparedToYesterday": "{{sign}}{{value}}% compared to yesterday"
294+
},
295+
"chart": {
296+
"title": "Token Usage Trends",
297+
"description": "View token usage across different time periods",
298+
"timeRange": {
299+
"7d": "Last 7 Days",
300+
"30d": "Last 30 Days",
301+
"90d": "Last 90 Days"
302+
},
303+
"chartType": {
304+
"area": "Area Chart",
305+
"line": "Line Chart",
306+
"bar": "Bar Chart"
307+
},
308+
"export": "Export",
309+
"noData": "No Data",
310+
"noDataDescription": "Token usage data will be displayed when there is activity"
311+
},
312+
"operationDistribution": {
313+
"title": "Operation Type Distribution",
314+
"description": "Token usage by operation type",
315+
"noData": "No operation data",
316+
"unknown": "Unknown"
317+
},
318+
"topRepositories": {
319+
"title": "Top Repositories",
320+
"description": "Repositories with highest token usage",
321+
"noData": "No repository data"
322+
}
323+
}
324+
}
325+
}

0 commit comments

Comments
 (0)