@liujitcn/kratos-admin-system 0.0.64 → 0.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/package/declarations/src/api/base/v1/ai_knowledge.d.ts +7 -0
- package/dist/package/declarations/src/api/system/admin/v1/ai_provider.d.ts +5 -1
- package/dist/package/declarations/src/api/system/admin/v1/ai_query.d.ts +10 -0
- package/dist/package/declarations/src/api/system/admin/v1/ai_session.d.ts +9 -0
- package/dist/package/declarations/src/locales/generated.d.ts +1405 -1089
- package/dist/package/declarations/src/rpc/base/v1/ai_knowledge.d.ts +22 -0
- package/dist/package/declarations/src/rpc/base/v1/ai_message.d.ts +2 -0
- package/dist/package/declarations/src/rpc/base/v1/ai_provider.d.ts +13 -6
- package/dist/package/declarations/src/rpc/system/admin/v1/ai_provider.d.ts +85 -4
- package/dist/package/declarations/src/rpc/system/admin/v1/ai_query.d.ts +73 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/ai_session.d.ts +114 -0
- package/dist/package/declarations/src/views/ai/chat/components/ChatPanel.vue.d.ts +9 -2
- package/dist/package/declarations/src/views/ai/chat/components/XSender.vue.d.ts +7 -0
- package/dist/package/declarations/src/views/ai/chat/modelDisplay.d.ts +5 -0
- package/dist/package/declarations/src/views/ai/chat/modelSelection.d.ts +9 -0
- package/dist/package/declarations/src/views/ai/query/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/ai/session/index.vue.d.ts +3 -0
- package/dist/package/src/api/base/v1/ai_knowledge.ts +22 -0
- package/dist/package/src/api/system/admin/v1/ai_provider.ts +14 -0
- package/dist/package/src/api/system/admin/v1/ai_query.ts +25 -0
- package/dist/package/src/api/system/admin/v1/ai_session.ts +25 -0
- package/dist/package/src/components/account/ChangePasswordForm.vue +1 -1
- package/dist/package/src/components/tenant-project/TenantProjectSelect.vue +21 -4
- package/dist/package/src/locales/en-US.json +351 -272
- package/dist/package/src/locales/ja-JP.json +351 -272
- package/dist/package/src/locales/zh-CN.json +361 -282
- package/dist/package/src/locales/zh-TW.json +351 -272
- package/dist/package/src/rpc/base/v1/ai_knowledge.ts +33 -0
- package/dist/package/src/rpc/base/v1/ai_message.ts +2 -0
- package/dist/package/src/rpc/base/v1/ai_provider.ts +14 -6
- package/dist/package/src/rpc/system/admin/v1/ai_provider.ts +93 -4
- package/dist/package/src/rpc/system/admin/v1/ai_query.ts +89 -0
- package/dist/package/src/rpc/system/admin/v1/ai_session.ts +131 -0
- package/dist/package/src/views/ai/chat/components/ChatPanel.vue +22 -1
- package/dist/package/src/views/ai/chat/components/XSender.vue +367 -71
- package/dist/package/src/views/ai/chat/index.vue +46 -8
- package/dist/package/src/views/ai/chat/modelDisplay.ts +67 -0
- package/dist/package/src/views/ai/chat/modelSelection.ts +31 -0
- package/dist/package/src/views/ai/query/index.vue +222 -0
- package/dist/package/src/views/ai/session/index.vue +422 -0
- package/dist/package/src/views/base/ai-provider/index.vue +301 -154
- package/dist/package/src/views/base/api-rate-limit-policy/index.vue +4 -3
- package/dist/package/src/views/base/message-provider/index.vue +9 -5
- package/dist/package/src/views/base/message-template/index.vue +2 -2
- package/dist/package/src/views/base/oauth-provider/index.vue +2 -2
- package/dist/package/src/views/base/rate-limit-rule/index.vue +8 -3
- package/dist/package/src/views/base/tenant-project-grant/index.vue +9 -4
- package/dist/package/src/views/tool/code-gen/config.ts +1 -0
- package/package.json +2 -2
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"system.base.config.tab.basic": "Basic information",
|
|
3
|
-
"system.base.config.tab.form": "Configuration form",
|
|
4
2
|
"system.ai.chat.action.collapse_sessions": "Collapse conversations",
|
|
5
3
|
"system.ai.chat.action.confirm_delete_conversation": "Delete",
|
|
6
4
|
"system.ai.chat.action.continue": "Continue",
|
|
@@ -30,6 +28,7 @@
|
|
|
30
28
|
"system.ai.chat.dialog.delete_title": "Delete conversation",
|
|
31
29
|
"system.ai.chat.dialog.rename_description": "Enter a new conversation name\nCurrent name: {title}",
|
|
32
30
|
"system.ai.chat.dialog.rename_title": "Rename conversation",
|
|
31
|
+
"system.ai.chat.error.details_unavailable": "Provider error details are not exposed in chat. See the service logs.",
|
|
33
32
|
"system.ai.chat.field.cache_tokens": "Cache read",
|
|
34
33
|
"system.ai.chat.field.duration": "Duration",
|
|
35
34
|
"system.ai.chat.field.first_token": "First token",
|
|
@@ -95,7 +94,6 @@
|
|
|
95
94
|
"system.ai.chat.status.uploading_attachments": "Uploading attachments...",
|
|
96
95
|
"system.ai.chat.title.assistant": "AI assistant",
|
|
97
96
|
"system.ai.chat.title.error_detail": "Error details",
|
|
98
|
-
"system.ai.chat.error.details_unavailable": "Provider error details are not exposed in chat. See the service logs.",
|
|
99
97
|
"system.ai.chat.title.recent_conversations": "Recent conversations",
|
|
100
98
|
"system.ai.chat.title.runtime": "Runtime details",
|
|
101
99
|
"system.ai.chat.value.analyze_attachments": "Continue the analysis using the attachments",
|
|
@@ -104,15 +102,68 @@
|
|
|
104
102
|
"system.ai.chat.value.general_assistant": "General assistant",
|
|
105
103
|
"system.ai.chat.value.item_count": "{count} items",
|
|
106
104
|
"system.ai.chat.value.new_conversation": "New conversation",
|
|
107
|
-
"system.ai.chat.value.web_search": "Web search",
|
|
108
105
|
"system.ai.chat.value.selected_attachments": "{count} attachments selected",
|
|
109
106
|
"system.ai.chat.value.shortcut_tools": "{group} · {count} tools",
|
|
110
107
|
"system.ai.chat.value.tool": "Tool",
|
|
108
|
+
"system.ai.chat.value.web_search": "Web search",
|
|
111
109
|
"system.ai.chat.welcome.afternoon": "Good afternoon, I am your general AI assistant",
|
|
112
110
|
"system.ai.chat.welcome.evening": "Good evening, I am your general AI assistant",
|
|
113
111
|
"system.ai.chat.welcome.morning": "Good morning, I am your general AI assistant",
|
|
114
112
|
"system.ai.chat.welcome_description": "Ask a question directly or upload attachments for analysis.",
|
|
113
|
+
"system.ai.knowledge.doc_count": "{count} doc(s)",
|
|
114
|
+
"system.ai.knowledge.empty": "No knowledge base available",
|
|
115
|
+
"system.ai.knowledge.manage": "Manage Knowledge",
|
|
116
|
+
"system.ai.knowledge.select_hint": "Select knowledge bases to inject into context",
|
|
117
|
+
"system.ai.knowledge.selected_count": "{count} knowledge base(s) selected",
|
|
118
|
+
"system.ai.knowledge.title": "Knowledge Base",
|
|
119
|
+
"system.ai.model.empty": "No models available. Add and enable one in AI Providers first.",
|
|
120
|
+
"system.ai.model.load_failed": "Failed to load providers and models",
|
|
121
|
+
"system.ai.model.manage": "Manage Models",
|
|
122
|
+
"system.ai.model.model_placeholder": "Select a model",
|
|
123
|
+
"system.ai.model.provider_model_count": "{providers} providers · {models} models",
|
|
124
|
+
"system.ai.model.provider_placeholder": "Select a provider",
|
|
125
|
+
"system.ai.model.title": "Select Model",
|
|
126
|
+
"system.ai.query.action.detail": "View detail",
|
|
127
|
+
"system.ai.query.detail.result": "Query result",
|
|
128
|
+
"system.ai.query.detail.title": "Query detail",
|
|
129
|
+
"system.ai.query.field.elapsed_ms": "Elapsed (ms)",
|
|
130
|
+
"system.ai.query.field.error_msg": "Error message",
|
|
131
|
+
"system.ai.query.field.id": "ID",
|
|
132
|
+
"system.ai.query.field.question": "Question",
|
|
133
|
+
"system.ai.query.field.row_count": "Row count",
|
|
134
|
+
"system.ai.query.field.sql": "Generated SQL",
|
|
135
|
+
"system.ai.query.field.status": "Status",
|
|
136
|
+
"system.ai.query.field.user": "User",
|
|
137
|
+
"system.ai.query.status.failed": "Failed",
|
|
138
|
+
"system.ai.query.status.success": "Success",
|
|
115
139
|
"system.ai.request_failed_with_status": "AI assistant request failed ({status})",
|
|
140
|
+
"system.ai.session.action.usage": "Usage Statistics",
|
|
141
|
+
"system.ai.session.detail.no_content": "(No content)",
|
|
142
|
+
"system.ai.session.detail.title": "Session Detail",
|
|
143
|
+
"system.ai.session.field.cache_tokens": "Cache Tokens",
|
|
144
|
+
"system.ai.session.field.duration_ms": "Duration (ms)",
|
|
145
|
+
"system.ai.session.field.first_token_ms": "First Token (ms)",
|
|
146
|
+
"system.ai.session.field.id": "Session ID",
|
|
147
|
+
"system.ai.session.field.input_tokens": "Input Tokens",
|
|
148
|
+
"system.ai.session.field.message_count": "Messages",
|
|
149
|
+
"system.ai.session.field.model": "Model",
|
|
150
|
+
"system.ai.session.field.output_tokens": "Output Tokens",
|
|
151
|
+
"system.ai.session.field.status": "Status",
|
|
152
|
+
"system.ai.session.field.terminal": "Terminal",
|
|
153
|
+
"system.ai.session.field.title": "Session Title",
|
|
154
|
+
"system.ai.session.field.total_tokens": "Total Tokens",
|
|
155
|
+
"system.ai.session.field.user": "User",
|
|
156
|
+
"system.ai.session.message.answer": "Answer",
|
|
157
|
+
"system.ai.session.message.empty": "No messages",
|
|
158
|
+
"system.ai.session.message.no_content": "(No content)",
|
|
159
|
+
"system.ai.session.message.question": "Question",
|
|
160
|
+
"system.ai.session.status.failed": "Failed",
|
|
161
|
+
"system.ai.session.status.generating": "Generating",
|
|
162
|
+
"system.ai.session.status.success": "Success",
|
|
163
|
+
"system.ai.session.terminal.admin": "Admin",
|
|
164
|
+
"system.ai.session.terminal.app": "App",
|
|
165
|
+
"system.ai.session.unknown_user": "Unknown user ({id})",
|
|
166
|
+
"system.ai.session.usage.title": "Usage Statistics",
|
|
116
167
|
"system.backup.action.restore": "Restore",
|
|
117
168
|
"system.backup.archive.config": "Archive configuration",
|
|
118
169
|
"system.backup.archive.mode.internal": "Current-data-source archive table",
|
|
@@ -122,6 +173,12 @@
|
|
|
122
173
|
"system.backup.backup.restore.manual": "Manual backup restore",
|
|
123
174
|
"system.backup.backup.type.full": "Full backup",
|
|
124
175
|
"system.backup.backup.type.incremental": "Incremental backup",
|
|
176
|
+
"system.backup.error.archive_restore_failed": "Data archive restoration failed.",
|
|
177
|
+
"system.backup.error.archive_task_failed": "The data archive task failed. See the task log for details.",
|
|
178
|
+
"system.backup.error.archive_task_reset": "The archive task exited unexpectedly and was reset by a later task.",
|
|
179
|
+
"system.backup.error.backup_restore_failed": "Database backup restoration failed.",
|
|
180
|
+
"system.backup.error.backup_task_failed": "The database backup task failed. See the task log for details.",
|
|
181
|
+
"system.backup.error.backup_task_reset": "The backup task exited unexpectedly and was reset by a later task.",
|
|
125
182
|
"system.backup.field.archive_mode": "Archive mode",
|
|
126
183
|
"system.backup.field.archive_record_id": "Archive record ID",
|
|
127
184
|
"system.backup.field.archive_retention_days": "Archive retention days",
|
|
@@ -157,6 +214,10 @@
|
|
|
157
214
|
"system.backup.restore.mode.full": "Full restore",
|
|
158
215
|
"system.backup.restore.mode.selected": "Restore selected range",
|
|
159
216
|
"system.backup.restore.mode.verify_only": "Verify only",
|
|
217
|
+
"system.backup.result.archive_completed": "Archive completed: {Archived} rows archived, {Deleted} online rows deleted",
|
|
218
|
+
"system.backup.result.archive_none_enabled": "No table archive configurations are enabled",
|
|
219
|
+
"system.backup.result.backup_completed": "Database backup completed for {Count} data sources",
|
|
220
|
+
"system.backup.result.backup_none_enabled": "No database backup configurations are enabled",
|
|
160
221
|
"system.backup.status.deleted": "Deleted",
|
|
161
222
|
"system.backup.status.failed": "Failed",
|
|
162
223
|
"system.backup.status.running": "Running",
|
|
@@ -169,6 +230,70 @@
|
|
|
169
230
|
"system.backup.validation.table_name": "Enter a table name",
|
|
170
231
|
"system.backup.validation.target_database": "Enter a target database",
|
|
171
232
|
"system.backup.validation.target_source_name": "Enter a target data source",
|
|
233
|
+
"system.base.ai.model.action.test_failed": "Connection failed",
|
|
234
|
+
"system.base.ai.model.action.test_success": "Connection succeeded",
|
|
235
|
+
"system.base.ai.model.api_type.chat_completions": "Chat Completions API",
|
|
236
|
+
"system.base.ai.model.api_type.responses": "Responses API",
|
|
237
|
+
"system.base.ai.model.category.audio": "Audio model",
|
|
238
|
+
"system.base.ai.model.category.chat": "Chat model",
|
|
239
|
+
"system.base.ai.model.category.embedding": "Embedding model (RAG)",
|
|
240
|
+
"system.base.ai.model.category.image": "Image model",
|
|
241
|
+
"system.base.ai.model.category.rerank": "Rerank model",
|
|
242
|
+
"system.base.ai.model.category.video": "Video model",
|
|
243
|
+
"system.base.ai.model.field.api_type": "API type",
|
|
244
|
+
"system.base.ai.model.field.category": "Category",
|
|
245
|
+
"system.base.ai.model.field.dimensions": "Vector dimensions",
|
|
246
|
+
"system.base.ai.model.field.display_name": "Display name",
|
|
247
|
+
"system.base.ai.model.field.duration": "Video duration (s)",
|
|
248
|
+
"system.base.ai.model.field.max_retries": "Max retries",
|
|
249
|
+
"system.base.ai.model.field.max_tokens": "Max output tokens",
|
|
250
|
+
"system.base.ai.model.field.model_name": "Model name",
|
|
251
|
+
"system.base.ai.model.field.quality": "Image quality",
|
|
252
|
+
"system.base.ai.model.field.resolution": "Video resolution",
|
|
253
|
+
"system.base.ai.model.field.size": "Image size",
|
|
254
|
+
"system.base.ai.model.field.speed": "Speed",
|
|
255
|
+
"system.base.ai.model.field.task": "Speech task",
|
|
256
|
+
"system.base.ai.model.field.temperature": "Temperature",
|
|
257
|
+
"system.base.ai.model.field.timeout_seconds": "Timeout (s)",
|
|
258
|
+
"system.base.ai.model.field.voice": "Voice",
|
|
259
|
+
"system.base.ai.model.placeholder.dimensions": "Leave empty or 0 if undeclared",
|
|
260
|
+
"system.base.ai.model.placeholder.display_name": "Mapped from the model name when left empty",
|
|
261
|
+
"system.base.ai.model.task.asr": "Speech recognition",
|
|
262
|
+
"system.base.ai.model.task.tts": "Text to speech",
|
|
263
|
+
"system.base.ai.model.validation.category": "Please select a category",
|
|
264
|
+
"system.base.ai.model.validation.model_name": "Please enter a model name",
|
|
265
|
+
"system.base.ai.model.validation.model_name_length": "Model name cannot exceed 200 characters",
|
|
266
|
+
"system.base.ai_action.resource": "AI action",
|
|
267
|
+
"system.base.ai_message.resource": "AI message",
|
|
268
|
+
"system.base.ai_provider.field.api_key": "API key",
|
|
269
|
+
"system.base.ai_provider.field.base_url": "Model API base URL",
|
|
270
|
+
"system.base.ai_provider.field.config": "Provider configuration",
|
|
271
|
+
"system.base.ai_provider.field.models": "Models",
|
|
272
|
+
"system.base.ai_provider.field.name": "Provider name",
|
|
273
|
+
"system.base.ai_provider.field.provider": "Provider type",
|
|
274
|
+
"system.base.ai_provider.message.confirm_delete": "Delete provider \"{name}\"?",
|
|
275
|
+
"system.base.ai_provider.message.create_success": "Provider created",
|
|
276
|
+
"system.base.ai_provider.message.delete_success": "Provider deleted",
|
|
277
|
+
"system.base.ai_provider.message.status_success": "Provider status updated",
|
|
278
|
+
"system.base.ai_provider.message.update_success": "Provider updated",
|
|
279
|
+
"system.base.ai_provider.model.add": "Add Model",
|
|
280
|
+
"system.base.ai_provider.model.confirm_remove": "Remove model \"{name}\"?",
|
|
281
|
+
"system.base.ai_provider.model.edit": "Edit Model",
|
|
282
|
+
"system.base.ai_provider.model.empty": "No models added yet. Please add at least one model.",
|
|
283
|
+
"system.base.ai_provider.model.test": "Test Models",
|
|
284
|
+
"system.base.ai_provider.model.validation.duplicate": "Model names must be unique",
|
|
285
|
+
"system.base.ai_provider.model.validation.required": "Please add at least one model",
|
|
286
|
+
"system.base.ai_provider.placeholder.api_key": "Enter the API key",
|
|
287
|
+
"system.base.ai_provider.placeholder.base_url": "Enter a full URL, e.g. https://api.openai.com/v1 or http://localhost:11434/v1",
|
|
288
|
+
"system.base.ai_provider.placeholder.keep_api_key": "Leave blank to keep the existing key",
|
|
289
|
+
"system.base.ai_provider.provider.ollama": "Ollama",
|
|
290
|
+
"system.base.ai_provider.provider.openai_compatible": "OpenAI-compatible",
|
|
291
|
+
"system.base.ai_provider.resource": "AI provider",
|
|
292
|
+
"system.base.ai_provider.validation.config_invalid": "Config keys must be non-empty and unique",
|
|
293
|
+
"system.base.ai_provider.validation.name": "Enter a provider name",
|
|
294
|
+
"system.base.ai_provider.validation.provider": "Select a Provider type",
|
|
295
|
+
"system.base.ai_provider.value.configured": "Configured",
|
|
296
|
+
"system.base.ai_provider.value.not_configured": "Not configured",
|
|
172
297
|
"system.base.api.doc.field.description": "Description",
|
|
173
298
|
"system.base.api.doc.field.location": "Location",
|
|
174
299
|
"system.base.api.doc.field.name": "Field",
|
|
@@ -200,6 +325,25 @@
|
|
|
200
325
|
"system.base.api.section.responses": "Responses",
|
|
201
326
|
"system.base.api.title.detail": "API details",
|
|
202
327
|
"system.base.api.title.edit": "Edit API",
|
|
328
|
+
"system.base.api_rate_limit_policy.dimension.global": "Global",
|
|
329
|
+
"system.base.api_rate_limit_policy.dimension.ip": "Source IP",
|
|
330
|
+
"system.base.api_rate_limit_policy.dimension.oauth_client": "OAuth client",
|
|
331
|
+
"system.base.api_rate_limit_policy.dimension.tenant": "Tenant",
|
|
332
|
+
"system.base.api_rate_limit_policy.dimension.user": "User",
|
|
333
|
+
"system.base.api_rate_limit_policy.field.api": "API",
|
|
334
|
+
"system.base.api_rate_limit_policy.field.dimension": "Rate limit dimension",
|
|
335
|
+
"system.base.api_rate_limit_policy.field.method": "Method",
|
|
336
|
+
"system.base.api_rate_limit_policy.field.path": "Path",
|
|
337
|
+
"system.base.api_rate_limit_policy.field.rule": "Rate limit rule",
|
|
338
|
+
"system.base.api_rate_limit_policy.field.service": "Service",
|
|
339
|
+
"system.base.api_rate_limit_policy.title": "API rate limit policies",
|
|
340
|
+
"system.base.api_rate_limit_policy.tooltip.apis": "All selected APIs share the dimension and rule below. Avoid grouping APIs with very different traffic profiles; an API cannot have duplicate policies for the same dimension.",
|
|
341
|
+
"system.base.api_rate_limit_policy.tooltip.dimension": "Global shares one quota across all requests. Source IP uses the connection address (behind a reverse proxy this may be the proxy). Tenant, user, and OAuth client use authenticated identity.",
|
|
342
|
+
"system.base.api_rate_limit_policy.tooltip.parameters": "Policy parameters are an independent snapshot of the selected rule defaults. Changes here apply only to this API policy, not the rule template or other policies.",
|
|
343
|
+
"system.base.api_rate_limit_policy.tooltip.rule": "Select an enabled algorithm rule. Its default parameters are loaded below; edits are saved only with this API policy.",
|
|
344
|
+
"system.base.api_rate_limit_policy.validation.api": "Select an API",
|
|
345
|
+
"system.base.api_rate_limit_policy.validation.dimension": "Select a rate limit dimension",
|
|
346
|
+
"system.base.api_rate_limit_policy.validation.rule": "Select a rate limit rule",
|
|
203
347
|
"system.base.area.action.create": "Create administrative area",
|
|
204
348
|
"system.base.area.action.edit": "Edit administrative area",
|
|
205
349
|
"system.base.area.field.name": "Area name",
|
|
@@ -208,6 +352,11 @@
|
|
|
208
352
|
"system.base.area.message.delete_single": "Delete this administrative area?",
|
|
209
353
|
"system.base.area.resource": "Administrative division",
|
|
210
354
|
"system.base.area.value.root": "Top level",
|
|
355
|
+
"system.base.code_gen_file.resource": "Code generation file",
|
|
356
|
+
"system.base.code_gen_table.field.name": "Business table name",
|
|
357
|
+
"system.base.code_gen_table.field.source_name": "Data source",
|
|
358
|
+
"system.base.code_gen_table.resource": "Code generation table configuration",
|
|
359
|
+
"system.base.code_gen_task.resource": "Code generation task",
|
|
211
360
|
"system.base.config.field.key": "Configuration key",
|
|
212
361
|
"system.base.config.field.name": "Configuration name",
|
|
213
362
|
"system.base.config.field.site": "Configuration location",
|
|
@@ -218,8 +367,11 @@
|
|
|
218
367
|
"system.base.config.message.rich_text_missing": "No rich text configured",
|
|
219
368
|
"system.base.config.message.value_missing": "Not configured",
|
|
220
369
|
"system.base.config.resource": "System Configuration",
|
|
370
|
+
"system.base.config.tab.basic": "Basic information",
|
|
371
|
+
"system.base.config.tab.form": "Configuration form",
|
|
221
372
|
"system.base.dept.field.name": "Department name",
|
|
222
373
|
"system.base.dept.field.parent": "Parent department",
|
|
374
|
+
"system.base.dept.resource": "Department",
|
|
223
375
|
"system.base.dept.value.root": "Top-level department",
|
|
224
376
|
"system.base.dict.action.create": "Create dictionary",
|
|
225
377
|
"system.base.dict.action.edit": "Edit dictionary",
|
|
@@ -255,7 +407,11 @@
|
|
|
255
407
|
"system.base.dict.message.update_success": "Dictionary updated",
|
|
256
408
|
"system.base.dict.placeholder.code": "Enter dictionary code",
|
|
257
409
|
"system.base.dict.placeholder.name": "Enter dictionary name",
|
|
410
|
+
"system.base.dict.resource": "Dictionary",
|
|
258
411
|
"system.base.dict.title.items": "[{name}] Dictionary items",
|
|
412
|
+
"system.base.dict_item.field.dict_id": "Dictionary",
|
|
413
|
+
"system.base.dict_item.field.value": "Dictionary value",
|
|
414
|
+
"system.base.dict_item.resource": "Dictionary item",
|
|
259
415
|
"system.base.file.confirm_delete": "Delete file \"{name}\" and its object?",
|
|
260
416
|
"system.base.file.detail": "File details",
|
|
261
417
|
"system.base.file.field.extension": "Extension",
|
|
@@ -281,6 +437,27 @@
|
|
|
281
437
|
"system.base.i18n.message.translate_failed": "Failed to translate {language}",
|
|
282
438
|
"system.base.i18n.message.translate_success": "{language} translated",
|
|
283
439
|
"system.base.i18n.placeholder.text": "Enter the {language} i18n",
|
|
440
|
+
"system.base.i18n_custom.action.create": "Add custom translation",
|
|
441
|
+
"system.base.i18n_custom.action.edit": "Edit custom translation",
|
|
442
|
+
"system.base.i18n_custom.field.default_value": "Default text",
|
|
443
|
+
"system.base.i18n_custom.field.key": "Locale key",
|
|
444
|
+
"system.base.i18n_custom.field.locale": "Locale",
|
|
445
|
+
"system.base.i18n_custom.field.remark": "Remark",
|
|
446
|
+
"system.base.i18n_custom.field.site": "Site",
|
|
447
|
+
"system.base.i18n_custom.field.status": "Status",
|
|
448
|
+
"system.base.i18n_custom.field.tenant_id": "Tenant",
|
|
449
|
+
"system.base.i18n_custom.field.value": "Custom text",
|
|
450
|
+
"system.base.i18n_custom.message.confirm_delete": "Are you sure you want to delete custom translation \"{name}\"?",
|
|
451
|
+
"system.base.i18n_custom.message.confirm_status": "Are you sure you want to {action} \"{name}\"?",
|
|
452
|
+
"system.base.i18n_custom.placeholder.key": "Enter a locale key, such as common.field.project",
|
|
453
|
+
"system.base.i18n_custom.placeholder.locale": "Select a locale",
|
|
454
|
+
"system.base.i18n_custom.placeholder.remark": "Enter a remark",
|
|
455
|
+
"system.base.i18n_custom.placeholder.site": "Select a site",
|
|
456
|
+
"system.base.i18n_custom.placeholder.value": "Enter custom text",
|
|
457
|
+
"system.base.i18n_custom.resource": "custom translation",
|
|
458
|
+
"system.base.i18n_custom.site.admin": "Admin",
|
|
459
|
+
"system.base.i18n_custom.site.app": "App",
|
|
460
|
+
"system.base.i18n_custom.site.system": "System",
|
|
284
461
|
"system.base.job.action.add_arg": "Add parameter",
|
|
285
462
|
"system.base.job.action.create": "Create scheduled job",
|
|
286
463
|
"system.base.job.action.edit": "Edit scheduled job",
|
|
@@ -288,6 +465,15 @@
|
|
|
288
465
|
"system.base.job.action.log": "Logs",
|
|
289
466
|
"system.base.job.action.start": "Start",
|
|
290
467
|
"system.base.job.action.stop": "Stop",
|
|
468
|
+
"system.base.job.error.archive_restore_failed": "Data archive restoration failed.",
|
|
469
|
+
"system.base.job.error.archive_task_failed": "The data archive task failed. See the task log for details.",
|
|
470
|
+
"system.base.job.error.archive_task_reset": "The archive task exited unexpectedly and was reset by a later task.",
|
|
471
|
+
"system.base.job.error.backup_restore_failed": "Database backup restoration failed.",
|
|
472
|
+
"system.base.job.error.backup_task_failed": "The database backup task failed. See the task log for details.",
|
|
473
|
+
"system.base.job.error.backup_task_reset": "The backup task exited unexpectedly and was reset by a later task.",
|
|
474
|
+
"system.base.job.error.i18n_task_failed": "The machine translation task failed. See the task log for details.",
|
|
475
|
+
"system.base.job.error.log_fallback_failed": "The log fallback ingestion task failed. See the task log for details.",
|
|
476
|
+
"system.base.job.error.message_dispatch_failed": "The message dispatch recovery task failed. See the task log for details.",
|
|
291
477
|
"system.base.job.field.arg_key": "Parameter",
|
|
292
478
|
"system.base.job.field.arg_value": "Value",
|
|
293
479
|
"system.base.job.field.args": "Target parameters",
|
|
@@ -328,11 +514,22 @@
|
|
|
328
514
|
"system.base.job.message.update_success": "Scheduled job updated",
|
|
329
515
|
"system.base.job.placeholder.invoke_target": "Enter target",
|
|
330
516
|
"system.base.job.placeholder.name": "Enter job name",
|
|
517
|
+
"system.base.job.resource": "Scheduled task",
|
|
518
|
+
"system.base.job.result.archive_completed": "Archive completed: {Archived} rows archived, {Deleted} online rows deleted",
|
|
519
|
+
"system.base.job.result.archive_none_enabled": "No table archive configurations are enabled",
|
|
520
|
+
"system.base.job.result.backup_completed": "Database backup completed for {Count} data sources",
|
|
521
|
+
"system.base.job.result.backup_none_enabled": "No database backup configurations are enabled",
|
|
522
|
+
"system.base.job.result.i18n_no_target_locales": "No target languages are enabled",
|
|
523
|
+
"system.base.job.result.i18n_translated_count": "Generated {Count} machine translations",
|
|
524
|
+
"system.base.job.result.i18n_translator_disabled": "Machine translation is not enabled",
|
|
525
|
+
"system.base.job.result.log_fallback_replayed": "Replayed {Count} log entries into the database",
|
|
526
|
+
"system.base.job.result.message_dispatch_recovered": "Recovered {Count} message deliveries and cleaned up {Cleaned} expired inbox entries",
|
|
331
527
|
"system.base.job.title.log": "Job execution logs for {name}",
|
|
332
528
|
"system.base.job.validation.arg_key_required": "Every parameter must have a key",
|
|
333
529
|
"system.base.language.action.create": "Create language",
|
|
334
530
|
"system.base.language.action.edit": "Edit language",
|
|
335
531
|
"system.base.language.field.code": "Language code",
|
|
532
|
+
"system.base.language.field.language_code": "Language code",
|
|
336
533
|
"system.base.language.field.name": "Language name",
|
|
337
534
|
"system.base.language.field.native_name": "Native name",
|
|
338
535
|
"system.base.language.field.primary": "Primary language",
|
|
@@ -403,8 +600,6 @@
|
|
|
403
600
|
"system.base.log.field.os": "Operating system",
|
|
404
601
|
"system.base.log.field.path": "Path",
|
|
405
602
|
"system.base.log.field.project": "Project",
|
|
406
|
-
"system.base.log.field.role_code": "Role code",
|
|
407
|
-
"system.base.log.field.role_id": "Role ID",
|
|
408
603
|
"system.base.log.field.reason": "Reason",
|
|
409
604
|
"system.base.log.field.reason_code": "Reason code",
|
|
410
605
|
"system.base.log.field.referer": "Referrer",
|
|
@@ -421,6 +616,8 @@
|
|
|
421
616
|
"system.base.log.field.resource_type": "Resource type",
|
|
422
617
|
"system.base.log.field.response_size": "Response size",
|
|
423
618
|
"system.base.log.field.result": "Result",
|
|
619
|
+
"system.base.log.field.role_code": "Role code",
|
|
620
|
+
"system.base.log.field.role_id": "Role ID",
|
|
424
621
|
"system.base.log.field.sensitive": "Sensitive data",
|
|
425
622
|
"system.base.log.field.service_name": "Service",
|
|
426
623
|
"system.base.log.field.sql_digest": "SQL digest",
|
|
@@ -501,7 +698,6 @@
|
|
|
501
698
|
"system.base.login_policy.field.device_blacklist": "Device blacklist",
|
|
502
699
|
"system.base.login_policy.field.device_whitelist": "Device whitelist",
|
|
503
700
|
"system.base.login_policy.field.initial_password": "Initial password",
|
|
504
|
-
"system.base.login_policy.field.password_strength": "Password strength",
|
|
505
701
|
"system.base.login_policy.field.ip_blacklist": "IP blacklist",
|
|
506
702
|
"system.base.login_policy.field.ip_whitelist": "IP whitelist",
|
|
507
703
|
"system.base.login_policy.field.lock_duration_minutes": "Lock duration (minutes)",
|
|
@@ -511,10 +707,13 @@
|
|
|
511
707
|
"system.base.login_policy.field.password_max_age_days": "Password age (days)",
|
|
512
708
|
"system.base.login_policy.field.password_min_complexity_classes": "Password complexity classes",
|
|
513
709
|
"system.base.login_policy.field.password_min_length": "Minimum password length",
|
|
710
|
+
"system.base.login_policy.field.password_strength": "Password strength",
|
|
514
711
|
"system.base.login_policy.field.rules": "Restrictions",
|
|
515
712
|
"system.base.login_policy.field.scope_type": "Scope type",
|
|
516
713
|
"system.base.login_policy.field.target": "Policy target",
|
|
714
|
+
"system.base.login_policy.field.tenant_id": "Tenant",
|
|
517
715
|
"system.base.login_policy.field.time_windows": "Blocked time windows",
|
|
716
|
+
"system.base.login_policy.field.user_id": "Target user",
|
|
518
717
|
"system.base.login_policy.hint": "IP values support exact addresses or CIDR. Enter multiple values on separate lines. Time windows use HH:MM-HH:MM.",
|
|
519
718
|
"system.base.login_policy.method.device": "Device restriction",
|
|
520
719
|
"system.base.login_policy.method.ip": "IP restriction",
|
|
@@ -528,6 +727,7 @@
|
|
|
528
727
|
"system.base.login_policy.placeholder.region": "For example CN or US",
|
|
529
728
|
"system.base.login_policy.placeholder.time": "For example 22:00-06:00",
|
|
530
729
|
"system.base.login_policy.placeholder.value": "Enter a value",
|
|
730
|
+
"system.base.login_policy.resource": "Login policy",
|
|
531
731
|
"system.base.login_policy.restriction.blacklist": "Blacklist",
|
|
532
732
|
"system.base.login_policy.restriction.whitelist": "Whitelist",
|
|
533
733
|
"system.base.login_policy.rules.add": "Add rule",
|
|
@@ -547,6 +747,11 @@
|
|
|
547
747
|
"system.base.login_policy.validation.password_min_complexity_classes": "Enter the password complexity classes",
|
|
548
748
|
"system.base.login_policy.validation.password_min_length": "Enter the minimum password length",
|
|
549
749
|
"system.base.login_policy.validation.scope_type": "Select a scope type",
|
|
750
|
+
"system.base.login_policy_rule.field.policy_id": "Policy",
|
|
751
|
+
"system.base.login_policy_rule.field.restriction_method": "Match method",
|
|
752
|
+
"system.base.login_policy_rule.field.restriction_type": "Restriction type",
|
|
753
|
+
"system.base.login_policy_rule.field.restriction_value": "Restriction value",
|
|
754
|
+
"system.base.login_policy_rule.resource": "Login policy restriction rule",
|
|
550
755
|
"system.base.menu.access.authenticated": "Signed-in users",
|
|
551
756
|
"system.base.menu.access.guest": "Guests only",
|
|
552
757
|
"system.base.menu.access.public": "Public",
|
|
@@ -604,6 +809,7 @@
|
|
|
604
809
|
"system.base.menu.placeholder.selected_icon": "For example, HOME_SELECTED",
|
|
605
810
|
"system.base.menu.placeholder.title": "Enter menu title",
|
|
606
811
|
"system.base.menu.placeholder.view_key": "For example, HOME",
|
|
812
|
+
"system.base.menu.resource": "Menu",
|
|
607
813
|
"system.base.menu.status.hidden": "Hidden",
|
|
608
814
|
"system.base.menu.status.visible": "Visible",
|
|
609
815
|
"system.base.menu.title.list": "Menus",
|
|
@@ -655,11 +861,12 @@
|
|
|
655
861
|
"system.base.message.content_format.plain": "Plain text",
|
|
656
862
|
"system.base.message.detail.action": "Details",
|
|
657
863
|
"system.base.message.detail.title": "Message details",
|
|
864
|
+
"system.base.message.dispatch_status.cancelled": "Cancelled",
|
|
865
|
+
"system.base.message.dispatch_status.failed": "Failed",
|
|
658
866
|
"system.base.message.dispatch_status.pending": "Pending",
|
|
659
867
|
"system.base.message.dispatch_status.running": "Delivering",
|
|
660
868
|
"system.base.message.dispatch_status.succeeded": "Completed",
|
|
661
|
-
"system.base.message.
|
|
662
|
-
"system.base.message.dispatch_status.cancelled": "Cancelled",
|
|
869
|
+
"system.base.message.error.dispatch_failed": "Message delivery failed. Check the service logs.",
|
|
663
870
|
"system.base.message.field.action_target": "Action view key",
|
|
664
871
|
"system.base.message.field.action_type": "Click action",
|
|
665
872
|
"system.base.message.field.attempt_count": "Attempts",
|
|
@@ -675,7 +882,6 @@
|
|
|
675
882
|
"system.base.message.field.include_children": "Include child departments",
|
|
676
883
|
"system.base.message.field.inserted_total": "Inserted",
|
|
677
884
|
"system.base.message.field.last_error": "Last error",
|
|
678
|
-
"system.base.message.error.dispatch_failed": "Message delivery failed. Check the service logs.",
|
|
679
885
|
"system.base.message.field.matched_total": "Matched",
|
|
680
886
|
"system.base.message.field.post_id": "Position ID",
|
|
681
887
|
"system.base.message.field.priority": "Priority",
|
|
@@ -697,6 +903,7 @@
|
|
|
697
903
|
"system.base.message.priority.important": "Important",
|
|
698
904
|
"system.base.message.priority.normal": "Normal",
|
|
699
905
|
"system.base.message.priority.urgent": "Urgent",
|
|
906
|
+
"system.base.message.resource": "Message",
|
|
700
907
|
"system.base.message.send_detail.action": "Send details",
|
|
701
908
|
"system.base.message.send_detail.title": "Send details",
|
|
702
909
|
"system.base.message.status.draft": "Draft",
|
|
@@ -722,7 +929,9 @@
|
|
|
722
929
|
"system.base.message_category.field.color": "Color",
|
|
723
930
|
"system.base.message_category.field.default_priority": "Default priority",
|
|
724
931
|
"system.base.message_category.field.icon": "Icon",
|
|
932
|
+
"system.base.message_category.field.inbox": "Inbox",
|
|
725
933
|
"system.base.message_category.field.name": "Category name",
|
|
934
|
+
"system.base.message_category.field.provider": "Delivery channels",
|
|
726
935
|
"system.base.message_category.field.retention_days": "Retention days",
|
|
727
936
|
"system.base.message_category.icon.analysis": "Analysis",
|
|
728
937
|
"system.base.message_category.icon.bell": "Notification",
|
|
@@ -737,6 +946,7 @@
|
|
|
737
946
|
"system.base.message_category.icon.success": "Success",
|
|
738
947
|
"system.base.message_category.icon.user": "User",
|
|
739
948
|
"system.base.message_category.icon.warning": "Warning",
|
|
949
|
+
"system.base.message_category.option.inbox": "Include inbox",
|
|
740
950
|
"system.base.message_category.placeholder.code": "For example: SYSTEM, SECURITY",
|
|
741
951
|
"system.base.message_category.placeholder.icon": "Choose a preset icon",
|
|
742
952
|
"system.base.message_category.placeholder.name": "For example: System messages",
|
|
@@ -749,8 +959,41 @@
|
|
|
749
959
|
"system.base.message_category.tooltip.color": "The accent color used for the inbox icon and unread marker",
|
|
750
960
|
"system.base.message_category.tooltip.default_priority": "The priority prefilled for new messages; it can be changed per message",
|
|
751
961
|
"system.base.message_category.tooltip.icon": "Choose a preset icon to help recipients identify the message source",
|
|
962
|
+
"system.base.message_category.tooltip.inbox": "Only categories containing inbox are shown in message management",
|
|
752
963
|
"system.base.message_category.tooltip.name": "The category name shown in the inbox and message management",
|
|
964
|
+
"system.base.message_category.tooltip.provider": "Select the external delivery channels used by this category",
|
|
753
965
|
"system.base.message_category.tooltip.retention_days": "Messages are cleaned up after this many days; 0 uses the system default",
|
|
966
|
+
"system.base.message_provider.field.client_id": "Client identifier",
|
|
967
|
+
"system.base.message_provider.field.client_secret": "Client secret",
|
|
968
|
+
"system.base.message_provider.field.config": "Extension config",
|
|
969
|
+
"system.base.message_provider.field.description": "Description",
|
|
970
|
+
"system.base.message_provider.field.icon": "Icon",
|
|
971
|
+
"system.base.message_provider.field.name": "Channel name",
|
|
972
|
+
"system.base.message_provider.field.provider": "Channel type",
|
|
973
|
+
"system.base.message_provider.field.secret_configured": "Secret status",
|
|
974
|
+
"system.base.message_provider.message.config_invalid": "Config keys must be non-empty and unique",
|
|
975
|
+
"system.base.message_provider.placeholder.keep_secret": "Leave blank to keep the existing secret",
|
|
976
|
+
"system.base.message_provider.placeholder.name": "Enter a channel name",
|
|
977
|
+
"system.base.message_provider.placeholder.provider": "Enter a channel type",
|
|
978
|
+
"system.base.message_provider.resource": "Message delivery channel",
|
|
979
|
+
"system.base.message_provider.validation.name": "Please enter the channel name",
|
|
980
|
+
"system.base.message_provider.validation.provider": "Please select the channel type",
|
|
981
|
+
"system.base.message_template.content_format.plain_text": "Plain text",
|
|
982
|
+
"system.base.message_template.content_format.rich_text": "Rich text",
|
|
983
|
+
"system.base.message_template.content_format.safe_markdown": "Markdown",
|
|
984
|
+
"system.base.message_template.field.category": "Message category",
|
|
985
|
+
"system.base.message_template.field.config": "Extension config",
|
|
986
|
+
"system.base.message_template.field.content": "Template content",
|
|
987
|
+
"system.base.message_template.field.content_format": "Content format",
|
|
988
|
+
"system.base.message_template.field.provider": "Delivery channel",
|
|
989
|
+
"system.base.message_template.field.title": "Template title",
|
|
990
|
+
"system.base.message_template.message.config_invalid": "Config keys must be non-empty and unique",
|
|
991
|
+
"system.base.message_template.placeholder.category": "Select a message category",
|
|
992
|
+
"system.base.message_template.placeholder.provider": "Select a delivery channel",
|
|
993
|
+
"system.base.message_template.placeholder.title": "Enter a template title",
|
|
994
|
+
"system.base.message_template.validation.category": "Please select the message category",
|
|
995
|
+
"system.base.message_template.validation.provider": "Please select the delivery channel",
|
|
996
|
+
"system.base.message_template.validation.title": "Please enter the template title",
|
|
754
997
|
"system.base.migration.action.copy_down_script": "Copy rollback script",
|
|
755
998
|
"system.base.migration.action.copy_up_script": "Copy upgrade script",
|
|
756
999
|
"system.base.migration.field.data_source": "Data source",
|
|
@@ -785,6 +1028,27 @@
|
|
|
785
1028
|
"system.base.oauth_client.resource": "Application client",
|
|
786
1029
|
"system.base.oauth_client.value.available_api": "Available APIs",
|
|
787
1030
|
"system.base.oauth_client.value.selected_api": "Authorized APIs",
|
|
1031
|
+
"system.base.oauth_provider.field.client_id": "Client ID",
|
|
1032
|
+
"system.base.oauth_provider.field.client_secret": "Client Secret",
|
|
1033
|
+
"system.base.oauth_provider.field.config": "Custom configuration",
|
|
1034
|
+
"system.base.oauth_provider.field.description": "Hint",
|
|
1035
|
+
"system.base.oauth_provider.field.icon": "Icon",
|
|
1036
|
+
"system.base.oauth_provider.field.name": "Display name",
|
|
1037
|
+
"system.base.oauth_provider.field.provider": "Provider key",
|
|
1038
|
+
"system.base.oauth_provider.field.redirect_uri": "Redirect URI",
|
|
1039
|
+
"system.base.oauth_provider.field.scopes": "Scopes",
|
|
1040
|
+
"system.base.oauth_provider.message.config_invalid": "Custom configuration must be a valid JSON object",
|
|
1041
|
+
"system.base.oauth_provider.placeholder.client_id": "Enter the third-party Client ID",
|
|
1042
|
+
"system.base.oauth_provider.placeholder.client_secret": "Enter the third-party Client Secret",
|
|
1043
|
+
"system.base.oauth_provider.placeholder.config": "Parameter value",
|
|
1044
|
+
"system.base.oauth_provider.placeholder.description": "Enter the login hint",
|
|
1045
|
+
"system.base.oauth_provider.placeholder.icon": "Built-in icon key or image URL",
|
|
1046
|
+
"system.base.oauth_provider.placeholder.keep_secret": "Leave blank to keep the existing secret",
|
|
1047
|
+
"system.base.oauth_provider.placeholder.name": "For example: GitHub",
|
|
1048
|
+
"system.base.oauth_provider.placeholder.provider": "For example: github",
|
|
1049
|
+
"system.base.oauth_provider.placeholder.redirect_uri": "Enter the registered redirect URI",
|
|
1050
|
+
"system.base.oauth_provider.placeholder.scopes": "Type and press Enter to add a scope",
|
|
1051
|
+
"system.base.oauth_provider.resource": "sign-in method",
|
|
788
1052
|
"system.base.online_session.action.revoke": "Sign out",
|
|
789
1053
|
"system.base.online_session.confirm.revoke": "Sign out the current session for “{user_name}”?",
|
|
790
1054
|
"system.base.online_session.field.client_ip": "Client IP",
|
|
@@ -796,10 +1060,48 @@
|
|
|
796
1060
|
"system.base.online_session.message.revoked": "Online session signed out",
|
|
797
1061
|
"system.base.post.field.code": "Post code",
|
|
798
1062
|
"system.base.post.field.name": "Post name",
|
|
1063
|
+
"system.base.post.resource": "Position",
|
|
1064
|
+
"system.base.rate_limit_rule.algorithm.fixed_window": "Fixed window",
|
|
1065
|
+
"system.base.rate_limit_rule.algorithm.leaky_bucket": "Leaky bucket",
|
|
1066
|
+
"system.base.rate_limit_rule.algorithm.sliding_window_counter": "Sliding window counter",
|
|
1067
|
+
"system.base.rate_limit_rule.algorithm.sliding_window_log": "Sliding window log",
|
|
1068
|
+
"system.base.rate_limit_rule.algorithm.token_bucket": "Token bucket",
|
|
1069
|
+
"system.base.rate_limit_rule.algorithm_help.fixed_window": "Resets the counter at fixed time boundaries. It is simple and inexpensive, but requests around a boundary may briefly reach nearly twice the limit.",
|
|
1070
|
+
"system.base.rate_limit_rule.algorithm_help.leaky_bucket": "The accumulated amount decays at the configured leak rate. Capacity absorbs short bursts; new requests are rejected when full, not queued.",
|
|
1071
|
+
"system.base.rate_limit_rule.algorithm_help.sliding_window_counter": "Estimates recent traffic by weighting counts from the current and previous windows. It uses less storage but is approximate.",
|
|
1072
|
+
"system.base.rate_limit_rule.algorithm_help.sliding_window_log": "Stores request timestamps for an exact rolling-window count. Use when precision matters; Redis usage grows with traffic. The per-window limit is 10,000.",
|
|
1073
|
+
"system.base.rate_limit_rule.algorithm_help.token_bucket": "Tokens refill continuously at the configured rate; burst capacity controls how many requests can pass at once. Set the rate to sustainable QPS and capacity to the expected burst, e.g. 10/s and 20.",
|
|
1074
|
+
"system.base.rate_limit_rule.field.burst": "Burst capacity",
|
|
1075
|
+
"system.base.rate_limit_rule.field.capacity": "Bucket capacity",
|
|
1076
|
+
"system.base.rate_limit_rule.field.code": "Rule code",
|
|
1077
|
+
"system.base.rate_limit_rule.field.leak_rate_per_second": "Leak rate per second",
|
|
1078
|
+
"system.base.rate_limit_rule.field.limit": "Window request limit",
|
|
1079
|
+
"system.base.rate_limit_rule.field.name": "Rule name",
|
|
1080
|
+
"system.base.rate_limit_rule.field.parameters": "Algorithm parameters",
|
|
1081
|
+
"system.base.rate_limit_rule.field.rule_type": "Rate limit algorithm",
|
|
1082
|
+
"system.base.rate_limit_rule.field.tokens_per_second": "Tokens per second",
|
|
1083
|
+
"system.base.rate_limit_rule.field.window_seconds": "Window duration (seconds)",
|
|
1084
|
+
"system.base.rate_limit_rule.summary.fixed_window": "Up to {limit} requests per {window_seconds}s",
|
|
1085
|
+
"system.base.rate_limit_rule.summary.leaky_bucket": "Leaks {leak_rate_per_second}/s · capacity {capacity}",
|
|
1086
|
+
"system.base.rate_limit_rule.summary.sliding_window_counter": "Sliding {window_seconds}s · limit {limit}",
|
|
1087
|
+
"system.base.rate_limit_rule.summary.sliding_window_log": "Up to {limit} requests in the last {window_seconds}s",
|
|
1088
|
+
"system.base.rate_limit_rule.summary.token_bucket": "{tokens_per_second} requests/s · burst {burst}",
|
|
1089
|
+
"system.base.rate_limit_rule.title": "Rate limit rules",
|
|
1090
|
+
"system.base.rate_limit_rule.tooltip.burst": "Maximum tokens the bucket can hold, and therefore the number of requests it can release in a burst. Set it to the expected short peak; 1 allows almost no burst.",
|
|
1091
|
+
"system.base.rate_limit_rule.tooltip.capacity": "Maximum accumulated amount the bucket can hold, which determines the short burst it can absorb. Set it for the expected peak; excess requests are rejected.",
|
|
1092
|
+
"system.base.rate_limit_rule.tooltip.leak_rate_per_second": "Amount removed from the bucket per second, in requests/s. Set it to the desired sustainable throughput; higher values free capacity faster.",
|
|
1093
|
+
"system.base.rate_limit_rule.tooltip.limit": "Maximum requests allowed in the window. For example, 120 requests per 60 seconds. Choose a value based on normal peak traffic and service capacity.",
|
|
1094
|
+
"system.base.rate_limit_rule.tooltip.parameters": "These are the algorithm rule's default parameters. An API policy copies them when the rule is selected; later policy edits do not change these defaults.",
|
|
1095
|
+
"system.base.rate_limit_rule.tooltip.tokens_per_second": "Continuous token refill rate, in requests/s, representing the approximate long-term average QPS. Set it to sustainable API throughput; 10 adds 10 tokens per second.",
|
|
1096
|
+
"system.base.rate_limit_rule.tooltip.window_seconds": "Window duration in seconds. Fixed windows reset at boundaries; sliding counters are weighted approximations; sliding logs count the exact recent interval at higher storage cost.",
|
|
1097
|
+
"system.base.rate_limit_rule.validation.code": "Enter the rule code",
|
|
1098
|
+
"system.base.rate_limit_rule.validation.name": "Enter the rule name",
|
|
1099
|
+
"system.base.rate_limit_rule.validation.parameters": "Enter valid parameters for the selected algorithm",
|
|
799
1100
|
"system.base.redact_output_policy.field.api": "API",
|
|
800
1101
|
"system.base.redact_output_policy.field.field_path": "Field path",
|
|
801
1102
|
"system.base.redact_output_policy.field.message_ref": "Response message",
|
|
802
1103
|
"system.base.redact_output_policy.field.mode": "Processing mode",
|
|
1104
|
+
"system.base.redact_output_policy.field.operation": "API operation",
|
|
803
1105
|
"system.base.redact_output_policy.field.parameters": "Rule parameters",
|
|
804
1106
|
"system.base.redact_output_policy.field.response_field": "Response field",
|
|
805
1107
|
"system.base.redact_output_policy.field.rule": "Redaction rule",
|
|
@@ -811,6 +1113,7 @@
|
|
|
811
1113
|
"system.base.redact_output_policy.mode.rule": "Apply rule",
|
|
812
1114
|
"system.base.redact_output_policy.placeholder.api": "Select an API",
|
|
813
1115
|
"system.base.redact_output_policy.placeholder.service": "Select a service",
|
|
1116
|
+
"system.base.redact_output_policy.resource": "Response data masking policy",
|
|
814
1117
|
"system.base.redact_output_policy.title": "Response Redaction Policies",
|
|
815
1118
|
"system.base.redact_output_policy.validation.api": "Select an interface",
|
|
816
1119
|
"system.base.redact_output_policy.validation.configured_fields": "Choose a processing mode for at least one field",
|
|
@@ -822,10 +1125,10 @@
|
|
|
822
1125
|
"system.base.redact_rule.description.fixed_length_mask": "Replace content with a fixed character while preserving its length",
|
|
823
1126
|
"system.base.redact_rule.description.hash_digest": "Generate an irreversible result with a digest algorithm",
|
|
824
1127
|
"system.base.redact_rule.description.ip_mask": "Keep the IP prefix octets and mask the rest",
|
|
825
|
-
"system.base.redact_rule.description.string_mask": "Keep configured leading and trailing characters and mask the middle",
|
|
826
1128
|
"system.base.redact_rule.description.phone_mask": "Keep the first three and last four digits of a phone number",
|
|
827
1129
|
"system.base.redact_rule.description.regex_replace": "Replace matching content with a regular expression",
|
|
828
1130
|
"system.base.redact_rule.description.stable_uuid": "Convert text to a stable UUID",
|
|
1131
|
+
"system.base.redact_rule.description.string_mask": "Keep configured leading and trailing characters and mask the middle",
|
|
829
1132
|
"system.base.redact_rule.description.truncate_text": "Keep a text prefix and append a suffix",
|
|
830
1133
|
"system.base.redact_rule.description.url_mask": "Mask URL query parameter values",
|
|
831
1134
|
"system.base.redact_rule.field.code": "Rule code",
|
|
@@ -837,30 +1140,31 @@
|
|
|
837
1140
|
"system.base.redact_rule.parameter.char": "Replacement character",
|
|
838
1141
|
"system.base.redact_rule.parameter.keep_first": "Leading characters to keep",
|
|
839
1142
|
"system.base.redact_rule.parameter.keep_last": "Trailing characters to keep",
|
|
840
|
-
"system.base.redact_rule.parameter.min_mask": "Minimum masked characters",
|
|
841
1143
|
"system.base.redact_rule.parameter.keep_local_first": "Local-part characters to keep",
|
|
842
1144
|
"system.base.redact_rule.parameter.keep_octets": "IP octets to keep",
|
|
843
1145
|
"system.base.redact_rule.parameter.length": "Kept length",
|
|
844
1146
|
"system.base.redact_rule.parameter.mask_char": "Mask character",
|
|
845
1147
|
"system.base.redact_rule.parameter.mask_domain": "Mask domain",
|
|
846
1148
|
"system.base.redact_rule.parameter.mask_query": "Mask query parameters",
|
|
1149
|
+
"system.base.redact_rule.parameter.min_mask": "Minimum masked characters",
|
|
847
1150
|
"system.base.redact_rule.parameter.pattern": "Match pattern",
|
|
848
1151
|
"system.base.redact_rule.parameter.replacement": "Replacement",
|
|
849
1152
|
"system.base.redact_rule.parameter.suffix": "Suffix",
|
|
1153
|
+
"system.base.redact_rule.resource": "Data masking rule",
|
|
850
1154
|
"system.base.redact_rule.template.email_mask": "Email mask",
|
|
851
1155
|
"system.base.redact_rule.template.fixed_length_mask": "Fixed-length mask",
|
|
852
1156
|
"system.base.redact_rule.template.hash_digest": "Hash digest",
|
|
853
1157
|
"system.base.redact_rule.template.ip_mask": "IP address mask",
|
|
854
|
-
"system.base.redact_rule.template.string_mask": "Generic string mask",
|
|
855
1158
|
"system.base.redact_rule.template.phone_mask": "Phone number mask",
|
|
856
1159
|
"system.base.redact_rule.template.regex_replace": "Regular expression replacement",
|
|
857
1160
|
"system.base.redact_rule.template.stable_uuid": "Stable UUID",
|
|
1161
|
+
"system.base.redact_rule.template.string_mask": "Generic string mask",
|
|
858
1162
|
"system.base.redact_rule.template.truncate_text": "Text truncation",
|
|
859
1163
|
"system.base.redact_rule.template.url_mask": "URL parameter mask",
|
|
860
1164
|
"system.base.redact_rule.title": "Redaction rules",
|
|
861
|
-
"system.base.redact_rule.validation.parameters": "Enter the rule parameters",
|
|
862
1165
|
"system.base.redact_rule.validation.code": "Enter the rule code",
|
|
863
1166
|
"system.base.redact_rule.validation.name": "Enter the rule name",
|
|
1167
|
+
"system.base.redact_rule.validation.parameters": "Enter the rule parameters",
|
|
864
1168
|
"system.base.redact_rule.validation.rule_type": "Select the rule type",
|
|
865
1169
|
"system.base.redact_storage_policy.field.column_name": "Field",
|
|
866
1170
|
"system.base.redact_storage_policy.field.parameters": "Rule parameters",
|
|
@@ -869,6 +1173,7 @@
|
|
|
869
1173
|
"system.base.redact_storage_policy.field.table_name": "Table",
|
|
870
1174
|
"system.base.redact_storage_policy.message.batch_save_success": "Saved storage redaction policies for {count} fields",
|
|
871
1175
|
"system.base.redact_storage_policy.message.configured_fields": "{count} fields configured",
|
|
1176
|
+
"system.base.redact_storage_policy.resource": "Storage data masking policy",
|
|
872
1177
|
"system.base.redact_storage_policy.title": "Storage Redaction Policies",
|
|
873
1178
|
"system.base.redact_storage_policy.validation.column_name": "Select a field",
|
|
874
1179
|
"system.base.redact_storage_policy.validation.configured_fields": "Select a redaction rule for at least one field",
|
|
@@ -903,6 +1208,7 @@
|
|
|
903
1208
|
"system.base.role.placeholder.code": "Enter role code",
|
|
904
1209
|
"system.base.role.placeholder.menu_permission": "Menu permission name",
|
|
905
1210
|
"system.base.role.placeholder.name": "Enter role name",
|
|
1211
|
+
"system.base.role.resource": "Role",
|
|
906
1212
|
"system.base.role.title.assign_permission": "[{name}] Permission assignment",
|
|
907
1213
|
"system.base.role.validation.menu_duplicate": "Menu permissions cannot contain duplicates",
|
|
908
1214
|
"system.base.runtime_config.base_log_fallback.description": "When the log queue fails or entries cannot be written to the database, logs are written to a fallback file and later written to the log tables by a scheduled task.",
|
|
@@ -913,15 +1219,38 @@
|
|
|
913
1219
|
"system.base.tenant.field.contact_name": "Contact",
|
|
914
1220
|
"system.base.tenant.field.contact_phone": "Contact phone",
|
|
915
1221
|
"system.base.tenant.field.name": "Tenant name",
|
|
916
|
-
"system.base.tenant.message.phone_invalid": "Enter a valid contact phone number",
|
|
917
1222
|
"system.base.tenant.message.initial_credentials": "Tenant created. Admin username: {userName}\nInitial password: {password}\nSave it securely; it cannot be viewed again after closing this dialog.",
|
|
918
1223
|
"system.base.tenant.message.initial_credentials_warning": "Save these credentials securely; they cannot be viewed again after closing this dialog.",
|
|
1224
|
+
"system.base.tenant.message.phone_invalid": "Enter a valid contact phone number",
|
|
919
1225
|
"system.base.tenant.message.protected_delete": "The default tenant cannot be deleted",
|
|
920
1226
|
"system.base.tenant.message.protected_status": "The default tenant status cannot be changed",
|
|
1227
|
+
"system.base.tenant.resource": "Tenant",
|
|
921
1228
|
"system.base.tenant.title.initial_credentials": "Tenant administrator initial credentials",
|
|
922
1229
|
"system.base.tenant.tooltip.copy_credentials": "Copy the tenant code, username, and password",
|
|
923
1230
|
"system.base.tenant.tooltip.hide_password": "Hide password",
|
|
924
1231
|
"system.base.tenant.tooltip.show_password": "Show password",
|
|
1232
|
+
"system.base.tenant_project.all": "All projects",
|
|
1233
|
+
"system.base.tenant_project.field.code": "Project number",
|
|
1234
|
+
"system.base.tenant_project.field.name": "Project name",
|
|
1235
|
+
"system.base.tenant_project.grant": "Project access",
|
|
1236
|
+
"system.base.tenant_project.projects": "Selected projects",
|
|
1237
|
+
"system.base.tenant_project.resource": "Tenant project",
|
|
1238
|
+
"system.base.tenant_project_grant.all_projects": "All projects",
|
|
1239
|
+
"system.base.tenant_project_grant.field.projects": "Projects",
|
|
1240
|
+
"system.base.tenant_project_grant.field.scope": "Authorization scope",
|
|
1241
|
+
"system.base.tenant_project_grant.field.subject": "Subject",
|
|
1242
|
+
"system.base.tenant_project_grant.field.subject_id": "Grant subject ID",
|
|
1243
|
+
"system.base.tenant_project_grant.field.subject_type": "Subject type",
|
|
1244
|
+
"system.base.tenant_project_grant.resource": "Project access grant",
|
|
1245
|
+
"system.base.tenant_project_grant.subject_type.dept": "Department",
|
|
1246
|
+
"system.base.tenant_project_grant.subject_type.post": "Post",
|
|
1247
|
+
"system.base.tenant_project_grant.subject_type.role": "Role",
|
|
1248
|
+
"system.base.tenant_project_grant.subject_type.user": "User",
|
|
1249
|
+
"system.base.tenant_project_grant.title": "Project authorization",
|
|
1250
|
+
"system.base.tenant_project_grant.tooltip.scope": "On: grant this subject access to all projects in the tenant. Off: grant access only to the projects selected below.",
|
|
1251
|
+
"system.base.third_account.field.identifier": "Third-party account identifier",
|
|
1252
|
+
"system.base.third_account.field.provider": "Sign-in provider",
|
|
1253
|
+
"system.base.third_account.resource": "Third-party account binding",
|
|
925
1254
|
"system.base.user.action.create": "Create user",
|
|
926
1255
|
"system.base.user.action.edit": "Edit user",
|
|
927
1256
|
"system.base.user.action.reset_password": "Reset password",
|
|
@@ -958,9 +1287,10 @@
|
|
|
958
1287
|
"system.base.user.placeholder.new_password": "Enter new password",
|
|
959
1288
|
"system.base.user.placeholder.nick_name": "Enter nickname",
|
|
960
1289
|
"system.base.user.placeholder.password": "Enter password",
|
|
961
|
-
"system.base.user.placeholder.password_optional": "Leave blank to use the initial password
|
|
1290
|
+
"system.base.user.placeholder.password_optional": "Leave blank to use the policy initial password if configured",
|
|
962
1291
|
"system.base.user.placeholder.user_code": "Enter user code",
|
|
963
1292
|
"system.base.user.placeholder.user_name": "Enter username",
|
|
1293
|
+
"system.base.user.resource": "User",
|
|
964
1294
|
"system.base.user.title.department_list": "Departments",
|
|
965
1295
|
"system.base.user.title.reset_password": "Reset password: {name}",
|
|
966
1296
|
"system.base.user.validation.email_invalid": "Enter a valid email",
|
|
@@ -1107,6 +1437,7 @@
|
|
|
1107
1437
|
"system.code.gen.component.transfer": "Transfer",
|
|
1108
1438
|
"system.code.gen.component.tree": "Tree",
|
|
1109
1439
|
"system.code.gen.component.tree_select": "Tree select",
|
|
1440
|
+
"system.code.gen.component.yaml_editor": "YAML editor",
|
|
1110
1441
|
"system.code.gen.i18n.action.edit_column": "Edit non-primary language field descriptions",
|
|
1111
1442
|
"system.code.gen.i18n.field.i18ns": "Field i18n",
|
|
1112
1443
|
"system.code.gen.i18n.message.missing": "Required before generation: {locales}",
|
|
@@ -1319,6 +1650,7 @@
|
|
|
1319
1650
|
"system.code.gen.value.off": "Off",
|
|
1320
1651
|
"system.code.gen.value.on": "On",
|
|
1321
1652
|
"system.code.gen.value.skip": "Skip",
|
|
1653
|
+
"system.dashboard.last_7_days": "Last 7 days",
|
|
1322
1654
|
"system.dashboard.load_failed": "Failed to load dashboard statistics",
|
|
1323
1655
|
"system.dashboard.login_distribution": "Login results",
|
|
1324
1656
|
"system.dashboard.login_trend": "Login trend",
|
|
@@ -1328,6 +1660,7 @@
|
|
|
1328
1660
|
"system.dashboard.title": "Dashboard",
|
|
1329
1661
|
"system.dashboard.today_logins": "Today's logins",
|
|
1330
1662
|
"system.dashboard.today_operations": "Today's operations",
|
|
1663
|
+
"system.dashboard.total": "Total {count}",
|
|
1331
1664
|
"system.dashboard.updated_at": "Updated {time}",
|
|
1332
1665
|
"system.dashboard.users": "Total users",
|
|
1333
1666
|
"system.notification.action.archive": "Archive",
|
|
@@ -1340,10 +1673,10 @@
|
|
|
1340
1673
|
"system.notification.field.read_status": "Read status",
|
|
1341
1674
|
"system.notification.field.received_at": "Received at",
|
|
1342
1675
|
"system.notification.field.sender": "Sender",
|
|
1676
|
+
"system.notification.sender.system": "System",
|
|
1343
1677
|
"system.notification.status.read": "Read",
|
|
1344
1678
|
"system.notification.status.unread": "Unread",
|
|
1345
1679
|
"system.notification.title": "Message Center",
|
|
1346
|
-
"system.notification.sender.system": "System",
|
|
1347
1680
|
"system.notification.view.archived": "Archived",
|
|
1348
1681
|
"system.notification.view.inbox": "All messages",
|
|
1349
1682
|
"system.notification.view.unread": "Unread",
|
|
@@ -1548,259 +1881,5 @@
|
|
|
1548
1881
|
"system.runtime.log.value.live_console": "Live console",
|
|
1549
1882
|
"system.sse.error.auth_expired": "SSE authentication has expired",
|
|
1550
1883
|
"system.sse.error.connection_closed": "SSE connection closed",
|
|
1551
|
-
"system.sse.error.connection_failed": "SSE connection failed: {status}"
|
|
1552
|
-
"system.base.tenant_project.field.name": "Project name",
|
|
1553
|
-
"system.base.tenant_project.field.code": "Project number",
|
|
1554
|
-
"system.base.tenant_project.grant": "Project access",
|
|
1555
|
-
"system.base.tenant_project.all": "All projects",
|
|
1556
|
-
"system.base.tenant_project.projects": "Selected projects",
|
|
1557
|
-
"system.base.tenant_project_grant.title": "Project authorization",
|
|
1558
|
-
"system.base.tenant_project_grant.field.subject_type": "Subject type",
|
|
1559
|
-
"system.base.tenant_project_grant.field.subject": "Subject",
|
|
1560
|
-
"system.base.tenant_project_grant.field.scope": "Authorization scope",
|
|
1561
|
-
"system.base.tenant_project_grant.tooltip.scope": "On: grant this subject access to all projects in the tenant. Off: grant access only to the projects selected below.",
|
|
1562
|
-
"system.base.tenant_project_grant.field.projects": "Projects",
|
|
1563
|
-
"system.base.tenant_project_grant.all_projects": "All projects",
|
|
1564
|
-
"system.base.tenant_project_grant.subject_type.post": "Post",
|
|
1565
|
-
"system.base.tenant_project_grant.subject_type.role": "Role",
|
|
1566
|
-
"system.base.tenant_project_grant.subject_type.dept": "Department",
|
|
1567
|
-
"system.base.tenant_project_grant.subject_type.user": "User",
|
|
1568
|
-
"system.base.i18n_custom.resource": "custom translation",
|
|
1569
|
-
"system.base.i18n_custom.action.create": "Add custom translation",
|
|
1570
|
-
"system.base.i18n_custom.action.edit": "Edit custom translation",
|
|
1571
|
-
"system.base.i18n_custom.field.site": "Site",
|
|
1572
|
-
"system.base.i18n_custom.field.key": "Locale key",
|
|
1573
|
-
"system.base.i18n_custom.field.locale": "Locale",
|
|
1574
|
-
"system.base.i18n_custom.field.default_value": "Default text",
|
|
1575
|
-
"system.base.i18n_custom.field.value": "Custom text",
|
|
1576
|
-
"system.base.i18n_custom.field.status": "Status",
|
|
1577
|
-
"system.base.i18n_custom.field.remark": "Remark",
|
|
1578
|
-
"system.base.i18n_custom.site.system": "System",
|
|
1579
|
-
"system.base.i18n_custom.site.admin": "Admin",
|
|
1580
|
-
"system.base.i18n_custom.site.app": "App",
|
|
1581
|
-
"system.base.i18n_custom.placeholder.site": "Select a site",
|
|
1582
|
-
"system.base.i18n_custom.placeholder.key": "Enter a locale key, such as common.field.project",
|
|
1583
|
-
"system.base.i18n_custom.placeholder.locale": "Select a locale",
|
|
1584
|
-
"system.base.i18n_custom.placeholder.value": "Enter custom text",
|
|
1585
|
-
"system.base.i18n_custom.placeholder.remark": "Enter a remark",
|
|
1586
|
-
"system.base.i18n_custom.message.confirm_status": "Are you sure you want to {action} \"{name}\"?",
|
|
1587
|
-
"system.base.i18n_custom.message.confirm_delete": "Are you sure you want to delete custom translation \"{name}\"?",
|
|
1588
|
-
"system.dashboard.last_7_days": "Last 7 days",
|
|
1589
|
-
"system.dashboard.total": "Total {count}",
|
|
1590
|
-
"system.base.oauth_provider.resource": "sign-in method",
|
|
1591
|
-
"system.base.oauth_provider.field.provider": "Provider key",
|
|
1592
|
-
"system.base.oauth_provider.field.name": "Display name",
|
|
1593
|
-
"system.base.oauth_provider.field.description": "Hint",
|
|
1594
|
-
"system.base.oauth_provider.field.icon": "Icon",
|
|
1595
|
-
"system.base.oauth_provider.field.client_id": "Client ID",
|
|
1596
|
-
"system.base.oauth_provider.field.client_secret": "Client Secret",
|
|
1597
|
-
"system.base.oauth_provider.field.redirect_uri": "Redirect URI",
|
|
1598
|
-
"system.base.oauth_provider.field.scopes": "Scopes",
|
|
1599
|
-
"system.base.oauth_provider.field.config": "Custom configuration",
|
|
1600
|
-
"system.base.oauth_provider.placeholder.provider": "For example: github",
|
|
1601
|
-
"system.base.oauth_provider.placeholder.name": "For example: GitHub",
|
|
1602
|
-
"system.base.oauth_provider.placeholder.description": "Enter the login hint",
|
|
1603
|
-
"system.base.oauth_provider.placeholder.icon": "Built-in icon key or image URL",
|
|
1604
|
-
"system.base.oauth_provider.placeholder.client_id": "Enter the third-party Client ID",
|
|
1605
|
-
"system.base.oauth_provider.placeholder.client_secret": "Enter the third-party Client Secret",
|
|
1606
|
-
"system.base.oauth_provider.placeholder.keep_secret": "Leave blank to keep the existing secret",
|
|
1607
|
-
"system.base.oauth_provider.placeholder.redirect_uri": "Enter the registered redirect URI",
|
|
1608
|
-
"system.base.oauth_provider.placeholder.scopes": "Type and press Enter to add a scope",
|
|
1609
|
-
"system.base.oauth_provider.placeholder.config": "Parameter value",
|
|
1610
|
-
"system.base.oauth_provider.message.config_invalid": "Custom configuration must be a valid JSON object",
|
|
1611
|
-
"system.backup.error.backup_task_failed": "The database backup task failed. See the task log for details.",
|
|
1612
|
-
"system.backup.error.archive_task_failed": "The data archive task failed. See the task log for details.",
|
|
1613
|
-
"system.backup.error.backup_restore_failed": "Database backup restoration failed.",
|
|
1614
|
-
"system.backup.error.archive_restore_failed": "Data archive restoration failed.",
|
|
1615
|
-
"system.backup.error.backup_task_reset": "The backup task exited unexpectedly and was reset by a later task.",
|
|
1616
|
-
"system.backup.error.archive_task_reset": "The archive task exited unexpectedly and was reset by a later task.",
|
|
1617
|
-
"system.backup.result.backup_none_enabled": "No database backup configurations are enabled",
|
|
1618
|
-
"system.backup.result.backup_completed": "Database backup completed for {Count} data sources",
|
|
1619
|
-
"system.backup.result.archive_none_enabled": "No table archive configurations are enabled",
|
|
1620
|
-
"system.backup.result.archive_completed": "Archive completed: {Archived} rows archived, {Deleted} online rows deleted",
|
|
1621
|
-
"system.base.job.error.backup_task_failed": "The database backup task failed. See the task log for details.",
|
|
1622
|
-
"system.base.job.error.archive_task_failed": "The data archive task failed. See the task log for details.",
|
|
1623
|
-
"system.base.job.error.backup_restore_failed": "Database backup restoration failed.",
|
|
1624
|
-
"system.base.job.error.archive_restore_failed": "Data archive restoration failed.",
|
|
1625
|
-
"system.base.job.error.backup_task_reset": "The backup task exited unexpectedly and was reset by a later task.",
|
|
1626
|
-
"system.base.job.error.archive_task_reset": "The archive task exited unexpectedly and was reset by a later task.",
|
|
1627
|
-
"system.base.job.result.backup_none_enabled": "No database backup configurations are enabled",
|
|
1628
|
-
"system.base.job.result.backup_completed": "Database backup completed for {Count} data sources",
|
|
1629
|
-
"system.base.job.result.archive_none_enabled": "No table archive configurations are enabled",
|
|
1630
|
-
"system.base.job.result.archive_completed": "Archive completed: {Archived} rows archived, {Deleted} online rows deleted",
|
|
1631
|
-
"system.base.job.error.i18n_task_failed": "The machine translation task failed. See the task log for details.",
|
|
1632
|
-
"system.base.job.result.i18n_translator_disabled": "Machine translation is not enabled",
|
|
1633
|
-
"system.base.job.result.i18n_no_target_locales": "No target languages are enabled",
|
|
1634
|
-
"system.base.job.result.i18n_translated_count": "Generated {Count} machine translations",
|
|
1635
|
-
"system.base.job.error.message_dispatch_failed": "The message dispatch recovery task failed. See the task log for details.",
|
|
1636
|
-
"system.base.job.result.message_dispatch_recovered": "Recovered {Count} message deliveries and cleaned up {Cleaned} expired inbox entries",
|
|
1637
|
-
"system.base.job.error.log_fallback_failed": "The log fallback ingestion task failed. See the task log for details.",
|
|
1638
|
-
"system.base.job.result.log_fallback_replayed": "Replayed {Count} log entries into the database",
|
|
1639
|
-
"system.base.code_gen_table.resource": "Code generation table configuration",
|
|
1640
|
-
"system.base.code_gen_table.field.name": "Business table name",
|
|
1641
|
-
"system.base.code_gen_table.field.source_name": "Data source",
|
|
1642
|
-
"system.base.dict.resource": "Dictionary",
|
|
1643
|
-
"system.base.dict_item.resource": "Dictionary item",
|
|
1644
|
-
"system.base.dict_item.field.dict_id": "Dictionary",
|
|
1645
|
-
"system.base.dict_item.field.value": "Dictionary value",
|
|
1646
|
-
"system.base.job.resource": "Scheduled task",
|
|
1647
|
-
"system.base.language.field.language_code": "Language code",
|
|
1648
|
-
"system.base.login_policy.resource": "Login policy",
|
|
1649
|
-
"system.base.login_policy.field.tenant_id": "Tenant",
|
|
1650
|
-
"system.base.login_policy.field.user_id": "Target user",
|
|
1651
|
-
"system.base.login_policy_rule.resource": "Login policy restriction rule",
|
|
1652
|
-
"system.base.login_policy_rule.field.policy_id": "Policy",
|
|
1653
|
-
"system.base.login_policy_rule.field.restriction_type": "Restriction type",
|
|
1654
|
-
"system.base.login_policy_rule.field.restriction_method": "Match method",
|
|
1655
|
-
"system.base.login_policy_rule.field.restriction_value": "Restriction value",
|
|
1656
|
-
"system.base.menu.resource": "Menu",
|
|
1657
|
-
"system.base.post.resource": "Position",
|
|
1658
|
-
"system.base.redact_output_policy.resource": "Response data masking policy",
|
|
1659
|
-
"system.base.redact_output_policy.field.operation": "API operation",
|
|
1660
|
-
"system.base.redact_rule.resource": "Data masking rule",
|
|
1661
|
-
"system.base.redact_storage_policy.resource": "Storage data masking policy",
|
|
1662
|
-
"system.base.role.resource": "Role",
|
|
1663
|
-
"system.base.tenant.resource": "Tenant",
|
|
1664
|
-
"system.base.tenant_project.resource": "Tenant project",
|
|
1665
|
-
"system.base.tenant_project_grant.resource": "Project access grant",
|
|
1666
|
-
"system.base.tenant_project_grant.field.subject_id": "Grant subject ID",
|
|
1667
|
-
"system.base.third_account.resource": "Third-party account binding",
|
|
1668
|
-
"system.base.third_account.field.identifier": "Third-party account identifier",
|
|
1669
|
-
"system.base.third_account.field.provider": "Sign-in provider",
|
|
1670
|
-
"system.base.user.resource": "User",
|
|
1671
|
-
"system.base.i18n_custom.field.tenant_id": "Tenant",
|
|
1672
|
-
"system.base.dept.resource": "Department",
|
|
1673
|
-
"system.base.message.resource": "Message",
|
|
1674
|
-
"system.base.ai_message.resource": "AI message",
|
|
1675
|
-
"system.base.ai_action.resource": "AI action",
|
|
1676
|
-
"system.base.code_gen_task.resource": "Code generation task",
|
|
1677
|
-
"system.base.code_gen_file.resource": "Code generation file",
|
|
1678
|
-
"system.base.rate_limit_rule.algorithm.fixed_window": "Fixed window",
|
|
1679
|
-
"system.base.rate_limit_rule.algorithm.leaky_bucket": "Leaky bucket",
|
|
1680
|
-
"system.base.rate_limit_rule.algorithm.sliding_window_counter": "Sliding window counter",
|
|
1681
|
-
"system.base.rate_limit_rule.algorithm.sliding_window_log": "Sliding window log",
|
|
1682
|
-
"system.base.rate_limit_rule.algorithm.token_bucket": "Token bucket",
|
|
1683
|
-
"system.base.rate_limit_rule.field.burst": "Burst capacity",
|
|
1684
|
-
"system.base.rate_limit_rule.field.capacity": "Bucket capacity",
|
|
1685
|
-
"system.base.rate_limit_rule.field.code": "Rule code",
|
|
1686
|
-
"system.base.rate_limit_rule.field.leak_rate_per_second": "Leak rate per second",
|
|
1687
|
-
"system.base.rate_limit_rule.field.limit": "Window request limit",
|
|
1688
|
-
"system.base.rate_limit_rule.field.name": "Rule name",
|
|
1689
|
-
"system.base.rate_limit_rule.field.parameters": "Algorithm parameters",
|
|
1690
|
-
"system.base.rate_limit_rule.field.rule_type": "Rate limit algorithm",
|
|
1691
|
-
"system.base.rate_limit_rule.field.tokens_per_second": "Tokens per second",
|
|
1692
|
-
"system.base.rate_limit_rule.field.window_seconds": "Window duration (seconds)",
|
|
1693
|
-
"system.base.rate_limit_rule.summary.fixed_window": "Up to {limit} requests per {window_seconds}s",
|
|
1694
|
-
"system.base.rate_limit_rule.summary.leaky_bucket": "Leaks {leak_rate_per_second}/s · capacity {capacity}",
|
|
1695
|
-
"system.base.rate_limit_rule.summary.sliding_window_counter": "Sliding {window_seconds}s · limit {limit}",
|
|
1696
|
-
"system.base.rate_limit_rule.summary.sliding_window_log": "Up to {limit} requests in the last {window_seconds}s",
|
|
1697
|
-
"system.base.rate_limit_rule.summary.token_bucket": "{tokens_per_second} requests/s · burst {burst}",
|
|
1698
|
-
"system.base.rate_limit_rule.title": "Rate limit rules",
|
|
1699
|
-
"system.base.rate_limit_rule.algorithm_help.fixed_window": "Resets the counter at fixed time boundaries. It is simple and inexpensive, but requests around a boundary may briefly reach nearly twice the limit.",
|
|
1700
|
-
"system.base.rate_limit_rule.algorithm_help.leaky_bucket": "The accumulated amount decays at the configured leak rate. Capacity absorbs short bursts; new requests are rejected when full, not queued.",
|
|
1701
|
-
"system.base.rate_limit_rule.algorithm_help.sliding_window_counter": "Estimates recent traffic by weighting counts from the current and previous windows. It uses less storage but is approximate.",
|
|
1702
|
-
"system.base.rate_limit_rule.algorithm_help.sliding_window_log": "Stores request timestamps for an exact rolling-window count. Use when precision matters; Redis usage grows with traffic. The per-window limit is 10,000.",
|
|
1703
|
-
"system.base.rate_limit_rule.algorithm_help.token_bucket": "Tokens refill continuously at the configured rate; burst capacity controls how many requests can pass at once. Set the rate to sustainable QPS and capacity to the expected burst, e.g. 10/s and 20.",
|
|
1704
|
-
"system.base.rate_limit_rule.tooltip.burst": "Maximum tokens the bucket can hold, and therefore the number of requests it can release in a burst. Set it to the expected short peak; 1 allows almost no burst.",
|
|
1705
|
-
"system.base.rate_limit_rule.tooltip.capacity": "Maximum accumulated amount the bucket can hold, which determines the short burst it can absorb. Set it for the expected peak; excess requests are rejected.",
|
|
1706
|
-
"system.base.rate_limit_rule.tooltip.limit": "Maximum requests allowed in the window. For example, 120 requests per 60 seconds. Choose a value based on normal peak traffic and service capacity.",
|
|
1707
|
-
"system.base.rate_limit_rule.tooltip.leak_rate_per_second": "Amount removed from the bucket per second, in requests/s. Set it to the desired sustainable throughput; higher values free capacity faster.",
|
|
1708
|
-
"system.base.rate_limit_rule.tooltip.parameters": "These are the algorithm rule's default parameters. An API policy copies them when the rule is selected; later policy edits do not change these defaults.",
|
|
1709
|
-
"system.base.rate_limit_rule.tooltip.tokens_per_second": "Continuous token refill rate, in requests/s, representing the approximate long-term average QPS. Set it to sustainable API throughput; 10 adds 10 tokens per second.",
|
|
1710
|
-
"system.base.rate_limit_rule.tooltip.window_seconds": "Window duration in seconds. Fixed windows reset at boundaries; sliding counters are weighted approximations; sliding logs count the exact recent interval at higher storage cost.",
|
|
1711
|
-
"system.base.rate_limit_rule.validation.code": "Enter the rule code",
|
|
1712
|
-
"system.base.rate_limit_rule.validation.name": "Enter the rule name",
|
|
1713
|
-
"system.base.rate_limit_rule.validation.parameters": "Enter valid parameters for the selected algorithm",
|
|
1714
|
-
"system.base.api_rate_limit_policy.dimension.global": "Global",
|
|
1715
|
-
"system.base.api_rate_limit_policy.dimension.ip": "Source IP",
|
|
1716
|
-
"system.base.api_rate_limit_policy.dimension.tenant": "Tenant",
|
|
1717
|
-
"system.base.api_rate_limit_policy.dimension.user": "User",
|
|
1718
|
-
"system.base.api_rate_limit_policy.dimension.oauth_client": "OAuth client",
|
|
1719
|
-
"system.base.api_rate_limit_policy.field.api": "API",
|
|
1720
|
-
"system.base.api_rate_limit_policy.field.dimension": "Rate limit dimension",
|
|
1721
|
-
"system.base.api_rate_limit_policy.field.method": "Method",
|
|
1722
|
-
"system.base.api_rate_limit_policy.field.path": "Path",
|
|
1723
|
-
"system.base.api_rate_limit_policy.field.rule": "Rate limit rule",
|
|
1724
|
-
"system.base.api_rate_limit_policy.field.service": "Service",
|
|
1725
|
-
"system.base.api_rate_limit_policy.title": "API rate limit policies",
|
|
1726
|
-
"system.base.api_rate_limit_policy.tooltip.apis": "All selected APIs share the dimension and rule below. Avoid grouping APIs with very different traffic profiles; an API cannot have duplicate policies for the same dimension.",
|
|
1727
|
-
"system.base.api_rate_limit_policy.tooltip.dimension": "Global shares one quota across all requests. Source IP uses the connection address (behind a reverse proxy this may be the proxy). Tenant, user, and OAuth client use authenticated identity.",
|
|
1728
|
-
"system.base.api_rate_limit_policy.tooltip.parameters": "Policy parameters are an independent snapshot of the selected rule defaults. Changes here apply only to this API policy, not the rule template or other policies.",
|
|
1729
|
-
"system.base.api_rate_limit_policy.tooltip.rule": "Select an enabled algorithm rule. Its default parameters are loaded below; edits are saved only with this API policy.",
|
|
1730
|
-
"system.base.api_rate_limit_policy.validation.api": "Select an API",
|
|
1731
|
-
"system.base.api_rate_limit_policy.validation.dimension": "Select a rate limit dimension",
|
|
1732
|
-
"system.base.api_rate_limit_policy.validation.rule": "Select a rate limit rule",
|
|
1733
|
-
"system.base.message_category.field.inbox": "Inbox",
|
|
1734
|
-
"system.base.message_category.field.provider": "Delivery channels",
|
|
1735
|
-
"system.base.message_category.option.inbox": "Include inbox",
|
|
1736
|
-
"system.base.message_category.tooltip.inbox": "Only categories containing inbox are shown in message management",
|
|
1737
|
-
"system.base.message_category.tooltip.provider": "Select the external delivery channels used by this category",
|
|
1738
|
-
"system.base.message_provider.resource": "Message delivery channel",
|
|
1739
|
-
"system.base.message_provider.field.provider": "Channel type",
|
|
1740
|
-
"system.base.message_provider.field.name": "Channel name",
|
|
1741
|
-
"system.base.message_provider.field.description": "Description",
|
|
1742
|
-
"system.base.message_provider.field.icon": "Icon",
|
|
1743
|
-
"system.base.message_provider.field.client_id": "Client identifier",
|
|
1744
|
-
"system.base.message_provider.field.client_secret": "Client secret",
|
|
1745
|
-
"system.base.message_provider.field.secret_configured": "Secret status",
|
|
1746
|
-
"system.base.message_provider.field.config": "Extension config",
|
|
1747
|
-
"system.base.message_provider.placeholder.provider": "Enter a channel type",
|
|
1748
|
-
"system.base.message_provider.placeholder.name": "Enter a channel name",
|
|
1749
|
-
"system.base.message_provider.placeholder.keep_secret": "Leave blank to keep the existing secret",
|
|
1750
|
-
"system.base.message_provider.message.config_invalid": "Config keys must be non-empty and unique",
|
|
1751
|
-
"system.base.message_template.field.category": "Message category",
|
|
1752
|
-
"system.base.message_template.field.provider": "Delivery channel",
|
|
1753
|
-
"system.base.message_template.field.title": "Template title",
|
|
1754
|
-
"system.base.message_template.field.content": "Template content",
|
|
1755
|
-
"system.base.message_template.field.content_format": "Content format",
|
|
1756
|
-
"system.base.message_template.field.config": "Extension config",
|
|
1757
|
-
"system.base.message_template.placeholder.category": "Select a message category",
|
|
1758
|
-
"system.base.message_template.placeholder.provider": "Select a delivery channel",
|
|
1759
|
-
"system.base.message_template.placeholder.title": "Enter a template title",
|
|
1760
|
-
"system.base.message_template.message.config_invalid": "Config keys must be non-empty and unique",
|
|
1761
|
-
"system.base.message_template.content_format.plain_text": "Plain text",
|
|
1762
|
-
"system.base.message_template.content_format.safe_markdown": "Markdown",
|
|
1763
|
-
"system.base.message_template.content_format.rich_text": "Rich text",
|
|
1764
|
-
"system.base.ai_provider.provider.openai_compatible": "OpenAI-compatible",
|
|
1765
|
-
"system.base.ai_provider.provider.ollama": "Ollama",
|
|
1766
|
-
"system.base.ai_provider.field.name": "Provider name",
|
|
1767
|
-
"system.base.ai_provider.field.provider": "Provider type",
|
|
1768
|
-
"system.base.ai_provider.field.base_url": "Model API base URL",
|
|
1769
|
-
"system.base.ai_provider.field.api_key": "API key",
|
|
1770
|
-
"system.base.ai_provider.field.config": "Provider configuration",
|
|
1771
|
-
"system.base.ai_provider.field.models": "Models",
|
|
1772
|
-
"system.base.ai_provider.field.api_type": "API type",
|
|
1773
|
-
"system.base.ai_provider.field.max_retries": "Maximum retries",
|
|
1774
|
-
"system.base.ai_provider.field.max_tokens": "Maximum output tokens",
|
|
1775
|
-
"system.base.ai_provider.field.model_name": "Model name",
|
|
1776
|
-
"system.base.ai_provider.field.temperature": "Temperature",
|
|
1777
|
-
"system.base.ai_provider.field.timeout_seconds": "Timeout (seconds)",
|
|
1778
|
-
"system.base.ai_provider.placeholder.base_url": "Enter a full URL, e.g. https://api.openai.com/v1 or http://localhost:11434/v1",
|
|
1779
|
-
"system.base.ai_provider.placeholder.api_key": "Enter the API key",
|
|
1780
|
-
"system.base.ai_provider.placeholder.keep_api_key": "Leave blank to keep the existing key",
|
|
1781
|
-
"system.base.ai_provider.model.add": "Add model",
|
|
1782
|
-
"system.base.ai_provider.model.edit": "Edit model",
|
|
1783
|
-
"system.base.ai_provider.model.empty": "No models added. Add at least one model.",
|
|
1784
|
-
"system.base.ai_provider.model.api_type.chat_completions": "Chat Completions API",
|
|
1785
|
-
"system.base.ai_provider.model.api_type.responses": "Responses API",
|
|
1786
|
-
"system.base.ai_provider.model.confirm_remove": "Remove model \"{name}\"?",
|
|
1787
|
-
"system.base.ai_provider.model.validation.duplicate": "Model names must be unique",
|
|
1788
|
-
"system.base.ai_provider.model.validation.range": "Check that the value is within the allowed range",
|
|
1789
|
-
"system.base.ai_provider.model.validation.required": "Add at least one model",
|
|
1790
|
-
"system.base.ai_provider.validation.config_invalid": "Config keys must be non-empty and unique",
|
|
1791
|
-
"system.base.ai_provider.validation.name": "Enter a provider name",
|
|
1792
|
-
"system.base.ai_provider.validation.api_type": "Select an API type",
|
|
1793
|
-
"system.base.ai_provider.validation.model_name": "Enter a model name",
|
|
1794
|
-
"system.base.ai_provider.validation.model_name_length": "Model name must be 100 characters or fewer",
|
|
1795
|
-
"system.base.ai_provider.validation.provider": "Select a Provider type",
|
|
1796
|
-
"system.base.ai_provider.value.configured": "Configured",
|
|
1797
|
-
"system.base.ai_provider.value.not_configured": "Not configured",
|
|
1798
|
-
"system.base.ai_provider.message.create_success": "Provider created",
|
|
1799
|
-
"system.base.ai_provider.message.update_success": "Provider updated",
|
|
1800
|
-
"system.base.ai_provider.message.confirm_delete": "Delete provider \"{name}\"?",
|
|
1801
|
-
"system.base.ai_provider.message.delete_success": "Provider deleted",
|
|
1802
|
-
"system.base.ai_provider.message.status_success": "Provider status updated",
|
|
1803
|
-
"system.ai.model.provider_placeholder": "Select a provider",
|
|
1804
|
-
"system.ai.model.model_placeholder": "Select a model",
|
|
1805
|
-
"system.ai.model.load_failed": "Failed to load providers and models"
|
|
1884
|
+
"system.sse.error.connection_failed": "SSE connection failed: {status}"
|
|
1806
1885
|
}
|