@liujitcn/kratos-admin-system 0.0.62 → 0.0.65
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 +16 -1
- package/dist/package/declarations/src/api/base/v1/ai_provider.d.ts +7 -0
- package/dist/package/declarations/src/api/system/admin/v1/ai_provider.d.ts +20 -0
- package/dist/package/declarations/src/api/system/admin/v1/base_api_rate_limit_policy.d.ts +19 -0
- package/dist/package/declarations/src/api/system/admin/v1/base_message_provider.d.ts +21 -0
- package/dist/package/declarations/src/api/system/admin/v1/base_message_template.d.ts +16 -0
- package/dist/package/declarations/src/api/system/admin/v1/base_oauth_provider.d.ts +18 -0
- package/dist/package/declarations/src/api/system/admin/v1/base_rate_limit_rule.d.ts +21 -0
- package/dist/package/declarations/src/components/api/ApiTransfer.vue.d.ts +35 -0
- package/dist/package/declarations/src/components/api/apiTransfer.d.ts +13 -0
- package/dist/package/declarations/src/components/i18n/DynamicI18nCell.vue.d.ts +2 -2
- package/dist/package/declarations/src/components/i18n/dynamicI18n.d.ts +3 -4
- package/dist/package/declarations/src/locales/generated.d.ts +968 -0
- package/dist/package/declarations/src/rpc/base/v1/ai_message.d.ts +4 -0
- package/dist/package/declarations/src/rpc/base/v1/ai_provider.d.ts +29 -0
- package/dist/package/declarations/src/rpc/base/v1/oauth.d.ts +20 -0
- package/dist/package/declarations/src/rpc/google/protobuf/struct.d.ts +81 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/ai_provider.d.ts +133 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_api_rate_limit_policy.d.ts +137 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_i18n.d.ts +4 -23
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message.d.ts +4 -4
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message_category.d.ts +19 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message_provider.d.ts +126 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message_template.d.ts +99 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_oauth_provider.d.ts +133 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_rate_limit_rule.d.ts +144 -0
- package/dist/package/declarations/src/utils/persisted-message.d.ts +4 -0
- package/dist/package/declarations/src/utils/rateLimit.d.ts +24 -0
- package/dist/package/declarations/src/views/ai/chat/components/ChatPanel.vue.d.ts +11 -2
- package/dist/package/declarations/src/views/ai/chat/components/XSender.vue.d.ts +9 -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/base/ai-provider/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/api-rate-limit-policy/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/message-provider/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/message-template/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/oauth-provider/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/rate-limit-rule/index.vue.d.ts +3 -0
- package/dist/package/src/api/base/v1/ai_provider.ts +22 -0
- package/dist/package/src/api/system/admin/v1/ai_provider.ts +57 -0
- package/dist/package/src/api/system/admin/v1/base_api_rate_limit_policy.ts +51 -0
- package/dist/package/src/api/system/admin/v1/base_message_provider.ts +57 -0
- package/dist/package/src/api/system/admin/v1/base_message_template.ts +44 -0
- package/dist/package/src/api/system/admin/v1/base_oauth_provider.ts +50 -0
- package/dist/package/src/api/system/admin/v1/base_rate_limit_rule.ts +58 -0
- package/dist/package/src/components/ai/Ai.vue +1 -1
- package/dist/package/src/components/api/ApiTransfer.vue +117 -0
- package/dist/package/src/components/api/apiTransfer.ts +27 -0
- package/dist/package/src/components/i18n/DynamicI18nCell.vue +8 -8
- package/dist/package/src/components/i18n/DynamicI18nEditor.vue +6 -3
- package/dist/package/src/components/i18n/dynamicI18n.ts +4 -5
- package/dist/package/src/components/tenant-project/TenantProjectManager.vue +2 -1
- package/dist/package/src/locales/en-US.json +246 -4
- package/dist/package/src/locales/ja-JP.json +246 -4
- package/dist/package/src/locales/zh-CN.json +246 -4
- package/dist/package/src/locales/zh-TW.json +246 -4
- package/dist/package/src/rpc/base/v1/ai_message.ts +7 -1
- package/dist/package/src/rpc/base/v1/ai_provider.ts +41 -0
- package/dist/package/src/rpc/base/v1/oauth.ts +16 -0
- package/dist/package/src/rpc/google/protobuf/struct.ts +80 -0
- package/dist/package/src/rpc/system/admin/v1/ai_provider.ts +155 -0
- package/dist/package/src/rpc/system/admin/v1/base_api_rate_limit_policy.ts +160 -0
- package/dist/package/src/rpc/system/admin/v1/base_i18n.ts +4 -24
- package/dist/package/src/rpc/system/admin/v1/base_message.ts +4 -4
- package/dist/package/src/rpc/system/admin/v1/base_message_category.ts +20 -0
- package/dist/package/src/rpc/system/admin/v1/base_message_provider.ts +150 -0
- package/dist/package/src/rpc/system/admin/v1/base_message_template.ts +117 -0
- package/dist/package/src/rpc/system/admin/v1/base_oauth_provider.ts +156 -0
- package/dist/package/src/rpc/system/admin/v1/base_rate_limit_rule.ts +167 -0
- package/dist/package/src/utils/persisted-message.ts +21 -0
- package/dist/package/src/utils/rateLimit.ts +140 -0
- package/dist/package/src/views/ai/chat/components/ChatPanel.vue +40 -5
- package/dist/package/src/views/ai/chat/components/XSender.vue +309 -3
- package/dist/package/src/views/ai/chat/index.vue +48 -1
- 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/base/ai-provider/index.vue +613 -0
- package/dist/package/src/views/base/api-rate-limit-policy/index.vue +429 -0
- package/dist/package/src/views/base/backup-management/archive-record/index.vue +2 -0
- package/dist/package/src/views/base/backup-management/archive-restore/index.vue +2 -1
- package/dist/package/src/views/base/backup-management/backup-record/index.vue +2 -0
- package/dist/package/src/views/base/backup-management/backup-restore/index.vue +2 -1
- package/dist/package/src/views/base/config/index.vue +12 -13
- package/dist/package/src/views/base/dict/index.vue +2 -3
- package/dist/package/src/views/base/dict/item.vue +2 -3
- package/dist/package/src/views/base/job/index.vue +2 -3
- package/dist/package/src/views/base/job/log.vue +3 -2
- package/dist/package/src/views/base/menu/index.vue +27 -83
- package/dist/package/src/views/base/message/index.vue +9 -3
- package/dist/package/src/views/base/message-category/index.vue +34 -3
- package/dist/package/src/views/base/message-provider/index.vue +168 -0
- package/dist/package/src/views/base/message-template/index.vue +105 -0
- package/dist/package/src/views/base/migration/index.vue +1 -1
- package/dist/package/src/views/base/oauth-client/index.vue +6 -6
- package/dist/package/src/views/base/oauth-provider/index.vue +274 -0
- package/dist/package/src/views/base/rate-limit-rule/index.vue +327 -0
- package/dist/package/src/views/base/redact-output-policy/index.vue +1 -1
- package/dist/package/src/views/base/redact-rule/index.vue +12 -2
- package/dist/package/src/views/base/redact-storage-policy/index.vue +4 -0
- package/dist/package/src/views/base/tenant/index.vue +3 -3
- package/package.json +2 -2
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"system.ai.chat.status.uploading_attachments": "Uploading attachments...",
|
|
96
96
|
"system.ai.chat.title.assistant": "AI assistant",
|
|
97
97
|
"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.",
|
|
98
99
|
"system.ai.chat.title.recent_conversations": "Recent conversations",
|
|
99
100
|
"system.ai.chat.title.runtime": "Runtime details",
|
|
100
101
|
"system.ai.chat.value.analyze_attachments": "Continue the analysis using the attachments",
|
|
@@ -103,6 +104,7 @@
|
|
|
103
104
|
"system.ai.chat.value.general_assistant": "General assistant",
|
|
104
105
|
"system.ai.chat.value.item_count": "{count} items",
|
|
105
106
|
"system.ai.chat.value.new_conversation": "New conversation",
|
|
107
|
+
"system.ai.chat.value.web_search": "Web search",
|
|
106
108
|
"system.ai.chat.value.selected_attachments": "{count} attachments selected",
|
|
107
109
|
"system.ai.chat.value.shortcut_tools": "{group} · {count} tools",
|
|
108
110
|
"system.ai.chat.value.tool": "Tool",
|
|
@@ -294,6 +296,10 @@
|
|
|
294
296
|
"system.base.job.field.entry_id": "Job ID",
|
|
295
297
|
"system.base.job.field.invoke_target": "Target",
|
|
296
298
|
"system.base.job.field.name": "Job name",
|
|
299
|
+
"system.base.job.log.error.arguments_invalid": "The task arguments are invalid",
|
|
300
|
+
"system.base.job.log.error.execution_panic": "The task terminated unexpectedly. Check the service logs.",
|
|
301
|
+
"system.base.job.log.error.running_elsewhere": "The task is already running on another instance",
|
|
302
|
+
"system.base.job.log.error.target_missing": "The task target is not registered",
|
|
297
303
|
"system.base.job.log.field.error": "Failure reason",
|
|
298
304
|
"system.base.job.log.field.execute_time": "Execution time",
|
|
299
305
|
"system.base.job.log.field.input": "Input",
|
|
@@ -662,18 +668,19 @@
|
|
|
662
668
|
"system.base.message.field.category": "Category",
|
|
663
669
|
"system.base.message.field.content": "Content",
|
|
664
670
|
"system.base.message.field.content_format": "Content format",
|
|
665
|
-
"system.base.message.field.delivered_total": "
|
|
671
|
+
"system.base.message.field.delivered_total": "Successful deliveries",
|
|
666
672
|
"system.base.message.field.dept_id": "Department ID",
|
|
667
673
|
"system.base.message.field.expires_at": "Expires at",
|
|
668
|
-
"system.base.message.field.failed_total": "Failed",
|
|
674
|
+
"system.base.message.field.failed_total": "Failed deliveries",
|
|
669
675
|
"system.base.message.field.include_children": "Include child departments",
|
|
670
676
|
"system.base.message.field.inserted_total": "Inserted",
|
|
671
677
|
"system.base.message.field.last_error": "Last error",
|
|
678
|
+
"system.base.message.error.dispatch_failed": "Message delivery failed. Check the service logs.",
|
|
672
679
|
"system.base.message.field.matched_total": "Matched",
|
|
673
680
|
"system.base.message.field.post_id": "Position ID",
|
|
674
681
|
"system.base.message.field.priority": "Priority",
|
|
675
682
|
"system.base.message.field.published_at": "Published at",
|
|
676
|
-
"system.base.message.field.recipient_total": "
|
|
683
|
+
"system.base.message.field.recipient_total": "Delivery targets",
|
|
677
684
|
"system.base.message.field.role_id": "Role ID",
|
|
678
685
|
"system.base.message.field.scheduled_at": "Scheduled at",
|
|
679
686
|
"system.base.message.field.sender": "Sender",
|
|
@@ -765,6 +772,7 @@
|
|
|
765
772
|
"system.base.migration.title.history": "Database Migration Records",
|
|
766
773
|
"system.base.migration.title.list": "Migration records",
|
|
767
774
|
"system.base.migration.value.default_module": "Database migration",
|
|
775
|
+
"system.base.migration.value.default_source": "Default data source",
|
|
768
776
|
"system.base.oauth_client.action.copy_credentials": "Copy credentials",
|
|
769
777
|
"system.base.oauth_client.confirm.rotate_credentials": "Rotating the client credentials immediately invalidates the old secret. Continue?",
|
|
770
778
|
"system.base.oauth_client.field.api": "Authorized APIs",
|
|
@@ -1335,6 +1343,7 @@
|
|
|
1335
1343
|
"system.notification.status.read": "Read",
|
|
1336
1344
|
"system.notification.status.unread": "Unread",
|
|
1337
1345
|
"system.notification.title": "Message Center",
|
|
1346
|
+
"system.notification.sender.system": "System",
|
|
1338
1347
|
"system.notification.view.archived": "Archived",
|
|
1339
1348
|
"system.notification.view.inbox": "All messages",
|
|
1340
1349
|
"system.notification.view.unread": "Unread",
|
|
@@ -1577,5 +1586,238 @@
|
|
|
1577
1586
|
"system.base.i18n_custom.message.confirm_status": "Are you sure you want to {action} \"{name}\"?",
|
|
1578
1587
|
"system.base.i18n_custom.message.confirm_delete": "Are you sure you want to delete custom translation \"{name}\"?",
|
|
1579
1588
|
"system.dashboard.last_7_days": "Last 7 days",
|
|
1580
|
-
"system.dashboard.total": "Total {count}"
|
|
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.test": "Test model",
|
|
1784
|
+
"system.base.ai_provider.model.test_results": "Model test results",
|
|
1785
|
+
"system.base.ai_provider.model.test_success": "Connection successful",
|
|
1786
|
+
"system.base.ai_provider.model.test_failed": "Connection failed",
|
|
1787
|
+
"system.base.ai_provider.model.empty": "No models added. Add at least one model.",
|
|
1788
|
+
"system.base.ai_provider.model.api_type.chat_completions": "Chat Completions API",
|
|
1789
|
+
"system.base.ai_provider.model.api_type.responses": "Responses API",
|
|
1790
|
+
"system.base.ai_provider.model.confirm_remove": "Remove model \"{name}\"?",
|
|
1791
|
+
"system.base.ai_provider.model.validation.duplicate": "Model names must be unique",
|
|
1792
|
+
"system.base.ai_provider.model.validation.range": "Check that the value is within the allowed range",
|
|
1793
|
+
"system.base.ai_provider.model.validation.required": "Add at least one model",
|
|
1794
|
+
"system.base.ai_provider.validation.config_invalid": "Config keys must be non-empty and unique",
|
|
1795
|
+
"system.base.ai_provider.validation.name": "Enter a provider name",
|
|
1796
|
+
"system.base.ai_provider.validation.api_type": "Select an API type",
|
|
1797
|
+
"system.base.ai_provider.validation.model_name": "Enter a model name",
|
|
1798
|
+
"system.base.ai_provider.validation.model_name_length": "Model name must be 100 characters or fewer",
|
|
1799
|
+
"system.base.ai_provider.validation.provider": "Select a Provider type",
|
|
1800
|
+
"system.base.ai_provider.value.configured": "Configured",
|
|
1801
|
+
"system.base.ai_provider.value.not_configured": "Not configured",
|
|
1802
|
+
"system.base.ai_provider.message.create_success": "Provider created",
|
|
1803
|
+
"system.base.ai_provider.message.update_success": "Provider updated",
|
|
1804
|
+
"system.base.ai_provider.message.confirm_delete": "Delete provider \"{name}\"?",
|
|
1805
|
+
"system.base.ai_provider.message.delete_success": "Provider deleted",
|
|
1806
|
+
"system.base.ai_provider.message.status_success": "Provider status updated",
|
|
1807
|
+
"system.ai.model.provider_placeholder": "Select a provider",
|
|
1808
|
+
"system.ai.model.model_placeholder": "Select a model",
|
|
1809
|
+
"system.ai.model.load_failed": "Failed to load providers and models",
|
|
1810
|
+
"system.base.ai_provider.resource": "AI provider",
|
|
1811
|
+
"system.base.message_provider.validation.provider": "Please select the channel type",
|
|
1812
|
+
"system.base.message_provider.validation.name": "Please enter the channel name",
|
|
1813
|
+
"system.base.message_template.validation.category": "Please select the message category",
|
|
1814
|
+
"system.base.message_template.validation.provider": "Please select the delivery channel",
|
|
1815
|
+
"system.base.message_template.validation.title": "Please enter the template title",
|
|
1816
|
+
"system.ai.model.title": "Select Model",
|
|
1817
|
+
"system.ai.model.provider_model_count": "{providers} providers · {models} models",
|
|
1818
|
+
"system.ai.model.manage": "Manage Models",
|
|
1819
|
+
"system.ai.model.empty": "No models available. Add and enable one in AI Providers first.",
|
|
1820
|
+
"system.base.ai_provider.field.display_name": "Display Name",
|
|
1821
|
+
"system.base.ai_provider.model.placeholder.display_name": "Leave empty to auto-derive from the model name",
|
|
1822
|
+
"system.base.ai_provider.model.validation.display_name": "Display name cannot exceed 100 characters"
|
|
1581
1823
|
}
|