refactor(i18n): U42 残余硬编码中文彻底清零 — 33文件54处→0, zh/en 7847→7898对齐

全量 JSX children + toast/confirm + sr-only 描述硬编码中文清零:
- Kubernetes模块: UpdateStrategyCard maxSurge/maxUnavailable说明 + IngressCreateForm host域名/Service端口 + ServiceCreateForm 端口配置/selector + DeploymentEditService 无selector/个关联/暂无Service/Ingress + ClusterOverviewPage 核 + KubernetesClusterDialog 已配置 + KubectlTerminal/ResourceVisualEditor/CreateHPADialog/DeploymentEditContainers/Storage + PodInstancesTable/UpdateStrategySelectorCards
- AI模块: PredictiveCapacityTab AI深度解读/紧急/警告/7天预测/预计N天 + PredictiveCostTab AI深度解读 + event-handler.ts 高危操作确认toast
- Deploy模块: DeployCredentials 启用/禁用 + DeployRBAC 删除角色confirm + WorkspaceTermDialog + CredFormDialog Windows用户
- Monitor模块: AlertRulesTab 删除confirm/分钟 + PrometheusDatasourceManager/LogDatasourcePage 删除confirm + QueryHistoryPanel 条
- System模块: ServerFileBrowser/TerminalDialog/RdpAuditViewer sr-only + SystemManager/CredentialManager/TerminalSessionsTab 删除confirm + SecuritySettingsTab 30分钟/2小时
- Task模块: CronJobViewDialog 次

新增 61 翻译键 (k8s.editAdvanced 6 + k8s.editService 11 + k8s.cluster 2 + k8s.misc 9 + aiops.capacity 9 + aiops.cost 1 + aiops.cli 2 + deploy 4 + monitor 5 + system 10 + task 1 + common 2)
tsc -b=0, npm build✓ (17.71s), ESLint=0/43/any=0, go build=0, 17/17 测试通过
This commit is contained in:
attacker committed 2026-07-14 00:51:36 +08:00
1 parent a7838aaf65
commit c6e0d6ca57
35 files changed
+217 -104

No files matched your search

+77 -22
View File
@@ -634,7 +634,9 @@
"rdpSessionCount": "RDP sessions: {{count}}",
"evidenceChain": "Evidence Chain",
"last1Hour": "Last 1 hour",
"currentHost": "Current host: {{host}}"
"currentHost": "Current host: {{host}}",
"minutes30": "30 min",
"hours2": "2 hours"
},
"menu": {
"aiAgentCli": "Agent CLI",
@@ -1801,7 +1803,9 @@
"operationFailed": "Operation failed",
"tagsLabel": "Tags"
},
"sensitiveWarn": "Please keep sensitive information safe"
"sensitiveWarn": "Please keep sensitive information safe",
"windowsUser": "Windows User",
"badgeDefault": "Default"
},
"credCol": {
"name": "Credential Name",
@@ -2162,7 +2166,8 @@
"noPolicy": "No job permission policies",
"createHint": "After creating a policy, users will automatically get access to matching pipelines via regex"
},
"deleteGroupDesc": "Delete \"{{name}}\"? All members and pipeline grants will be removed."
"deleteGroupDesc": "Delete \"{{name}}\"? All members and pipeline grants will be removed.",
"deleteRoleDesc": "Delete \"{{name}}\"? This will affect {{count}} release tasks"
},
"rdpPassword": "Windows Password",
"rdpPasswordPlaceholder": "Windows login password",
@@ -2550,7 +2555,8 @@
"noVars": "No variables, click \"Add Variable\" to create",
"envVar": "Environment Variables",
"envVarOptional": "Environment Variables (optional)"
}
},
"workspaceTerminalTitle": "Workspace Terminal #{{num}}"
},
"k8s": {
"actionModal": {
@@ -2606,11 +2612,13 @@
"now": "Now",
"allNamespaces": "All Namespaces",
"provider": "Provider",
"region": "Region"
"region": "Region",
"cpuCores": "{{count}} cores",
"noContainer": "(no containers)"
},
"clusterDialog": {
"nameHint": "Only English letters, numbers and hyphens (-) allowed. Cannot start or end with hyphen. Name will be the cluster unique identifier.",
"configured": "Configured (leave empty to keep)",
"configured": "✓ Configured (leave blank to keep)",
"kubeconfigHint": "API Server address will be auto-parsed after pasting kubeconfig content",
"cancel": "Cancel",
"nameRule": "Only letters, digits, and hyphens (-) allowed; cannot start or end with a hyphen",
@@ -2857,8 +2865,8 @@
"updateStrategy": "Update Strategy",
"rollingUpdate": "Rolling Update",
"recreate": "Recreate",
"maxSurgeHint": "Integer or percentage, exceeds desired replicas",
"maxUnavailableHint": "Integer or percentage, max unavailable",
"maxSurgeHint": "maxSurge (integer or percentage, surge above desired)",
"maxUnavailableHint": "maxUnavailable (integer or percentage, max unavailable)",
"historyVersions": "History Versions & Progress",
"rsHistory": "Retain RS History",
"upgradeTimeout": "Upgrade timeout (seconds)",
@@ -2879,7 +2887,11 @@
"secondsPlaceholder": "seconds",
"maxSurge": "Max Surge",
"maxUnavailable": "Max Unavailable",
"strategyLabel": "Update Strategy"
"strategyLabel": "Update Strategy",
"rollingUpdateDesc": "RollingUpdate (Rolling)",
"recreateDesc": "Recreate (Recreate)",
"revisionHistoryLimitHint": "revisionHistoryLimit (RS history to retain)",
"progressDeadlineSecondsHint": "progressDeadlineSeconds (upgrade timeout seconds)"
},
"editBasic": {
"synced": "Synced",
@@ -2960,7 +2972,7 @@
"edit": "Edit",
"createNew": "Create New Service",
"portConfig": "Port Configuration",
"portCount": "ports",
"portCount": "{{count}} ports",
"addCustomPort": "Add Custom Port",
"autoDetect": "Auto Detect",
"ingresses": "Ingresses (App Routes)",
@@ -2968,15 +2980,22 @@
"autoHighlight": "Ingress whose backend points to related Service is auto-highlighted",
"noRelatedIngress": "No Ingress in current namespace",
"createNewIngress": "Create New Ingress",
"hostDomain": "Host (Domain)",
"hostDomain": "host (domain)",
"servicePort": "Service Port",
"noSelector": "(No selector)",
"noSelector": "(no selector)",
"confirmDelete": "Confirm Delete",
"deleteDesc": "This operation cannot be undone",
"portName": "Port Name",
"targetPort": "Target Port",
"protocol": "Protocol",
"serviceCreated": "Service created"
"serviceCreated": "Service created",
"servicePortLabel": "Service Port",
"selectorAutoDetect": "selector (auto-detected):",
"svcLinked": "{{count}} linked",
"ingressAutoHighlight": "Ingresses pointing to linked Services are auto-highlighted",
"noSvcInNs": "No linked Services in current namespace",
"noIngInNs": "No Ingresses in current namespace",
"ingressesLabel": "Ingresses (App Routes)"
},
"editStorage": {
"volumes": "Volumes",
@@ -3420,7 +3439,8 @@
"commonExamples": "Common:",
"accessModeRWO": "ReadWriteOnce (Single node read-write)",
"accessModeROX": "ReadOnlyMany (Multi-node read-only)",
"accessModeRWX": "ReadWriteMany (Multi-node read-write)"
"accessModeRWX": "ReadWriteMany (Multi-node read-write)",
"yamlEditBtn": "YAML Edit"
},
"scheduling": {
"mode": {
@@ -3689,7 +3709,11 @@
"download": "Download",
"copied": "Copied",
"fetchFailed": "Failed to fetch YAML"
}
},
"kubectlTerminalDesc": "Kubernetes cluster command-line terminal",
"podLevel": "Pod Level",
"podNameLabel": "Pod Name",
"podManagePolicy": "Pod Management Policy"
},
"monitor": {
"acknowledge": "Acknowledge",
@@ -5294,7 +5318,14 @@
"nextPage": "Next"
},
"zookeeper": "ZooKeeper",
"deleteRuleConfirmDesc": "Delete \"{{name}}\"?"
"deleteRuleConfirmDesc": "Delete \"{{name}}\"?",
"deleteRulesConfirmDesc": "Delete {{count}} selected alert rules? This action cannot be undone.",
"deleteDatasourceConfirmDesc": "Delete datasource \"{{name}}\"? This action cannot be undone.",
"deleteLogDsConfirmDesc": "Delete \"{{name}}\"?",
"durationMinutes": "{{count}} min",
"queryHistory": {
"count": "{{count}} entries"
}
},
"task": {
"cronJob": {
@@ -5372,7 +5403,8 @@
"batchDeleteConfirm": "Delete {{count}} selected jobs? This cannot be undone.",
"confirmDelete": "Delete \"{{name}}\"? This cannot be undone.",
"execDuration": "Duration: {{ms}}ms"
}
},
"runCount": "{{count}} times"
},
"cronJobCol": {
"task": "Task",
@@ -7763,7 +7795,17 @@
"liveMonitor": {
"exitFullscreen": "Exit Fullscreen",
"fullscreen": "Fullscreen"
}
},
"rdpLiveAudit": "RDP Live Audit",
"rdpHistoryReplay": "RDP History Replay",
"rdpAuditDesc": "Windows RDP graphical session audit viewer",
"sshTerminalDesc": "SSH terminal connection",
"sftpFileDesc": "SFTP file management · upload · download · delete",
"sftpFileLabel": "· SFTP file management",
"deleteUserConfirmDesc": "Delete user \"{{name}}\"?",
"batchDeleteUsersConfirmDesc": "Delete {{count}} selected users? This action cannot be undone.",
"deleteCredConfirmDesc": "Delete \"{{name}}\"? This cannot be undone. Servers using this credential will lose connection.",
"deleteTermSessionsConfirmDesc": "Delete {{count}} selected terminal session records?"
},
"aiops": {
"activeCount": "{{count}} active",
@@ -7966,12 +8008,20 @@
"recDisk": "Disk space is running low. Consider expanding storage or cleaning up historical data and logs.",
"recMonitor": "Recommend continued monitoring of resource usage trends.",
"in24Hours": "In 24 hours",
"noRisk": "Growth is gradual, no threshold breach risk",
"noRisk": "Growth is gradual, no threshold risk",
"expertPrompt": "You are an AIOps capacity planning expert. Based on the following server resource capacity forecast data, provide a comprehensive risk assessment and actionable operations recommendations:",
"resCpu": "Server CPU Compute",
"resMemory": "Server Memory",
"resDisk": "Storage Disk Space",
"summary": "- {{resource}}: Current {{current}}% → 7-day forecast {{predicted}}% (threshold {{threshold}}%), {{risk}}"
"summary": "- {{resource}}: Current {{current}}% → 7-day forecast {{predicted}}% (threshold {{threshold}}%), {{risk}}",
"aiInsight": "AI Deep Insight",
"urgency": "Critical",
"warning": "Warning",
"sevenDayForecast": "7-Day Usage Forecast",
"expectedToReach": "Expected to",
"days": "days",
"afterReachThreshold": "until threshold reached",
"aiSuggestion": "AI Suggestion"
},
"capacityPlanPrompt": "Based on the following host resource usage, provide cost optimization and capacity planning advice (identify idle/overloaded hosts; suggest scale-down/scale-up)",
"capacityPlanning": "Capacity Planning",
@@ -8108,7 +8158,9 @@
"hint": "Shift+Enter for new line / Enter to send",
"stop": "Stop",
"execute": "Run"
}
},
"confirmHighRiskTitle": "⚠️ Confirm High-Risk Operation",
"confirmHighRiskDesc": "Tool: {{tool}}\nRisk: {{risk}}\nCommand: {{command}}"
},
"cloudService": "Cloud Services",
"codingPlan": "Coding Plan",
@@ -8474,7 +8526,10 @@
"zhipuGeneral": "Zhipu GLM (General)",
"zhipuGetKey": "Register a Zhipu account and enable model services to get an API Key",
"zhipuOpenPlatform": "Zhipu Open Platform",
"reachable": "reachable"
"reachable": "reachable",
"cost": {
"aiInsight": "AI Deep Insight"
}
},
"breadcrumb": {
"aiAlertAnalyzer": "Alert Analysis",
+74 -19
View File
@@ -634,7 +634,9 @@
"rdpSessionCount": "RDP 会话共 {{count}} 条",
"evidenceChain": "证据链",
"last1Hour": "最近 1 小时",
"currentHost": "当前主机: {{host}}"
"currentHost": "当前主机: {{host}}",
"minutes30": "30分钟",
"hours2": "2小时"
},
"menu": {
"aiAgentCli": "Agent CLI",
@@ -1801,7 +1803,9 @@
"operationFailed": "操作失败",
"tagsLabel": "标签"
},
"sensitiveWarn": "敏感信息请妥善保管"
"sensitiveWarn": "敏感信息请妥善保管",
"windowsUser": "Windows 用户",
"badgeDefault": "默认"
},
"credCol": {
"name": "凭据名称",
@@ -2162,7 +2166,8 @@
"noPolicy": "暂无 Job 权限策略",
"createHint": "创建策略后,用户将按正则自动获得匹配流水线的访问权限"
},
"deleteGroupDesc": "确定删除「{{name}}」?所有成员和流水线授权将同时移除。"
"deleteGroupDesc": "确定删除「{{name}}」?所有成员和流水线授权将同时移除。",
"deleteRoleDesc": "确定删除「{{name}}」?将影响 {{count}} 个发布任务"
},
"rdpPassword": "Windows 密码",
"rdpPasswordPlaceholder": "Windows 登录密码",
@@ -2550,7 +2555,8 @@
"noVars": "暂无变量,点击\"添加变量\"新增",
"envVar": "环境变量",
"envVarOptional": "环境变量 (可选)"
}
},
"workspaceTerminalTitle": "Workspace 终端 #{{num}}"
},
"k8s": {
"actionModal": {
@@ -2606,11 +2612,13 @@
"now": "现在",
"allNamespaces": "全部命名空间",
"provider": "提供商",
"region": "区域"
"region": "区域",
"cpuCores": "{{count}} 核",
"noContainer": "(无容器)"
},
"clusterDialog": {
"nameHint": "只允许英文、数字和连字符(-),首尾不能是连字符。名称将作为集群唯一标识。",
"configured": "已配置(留空不修改)",
"configured": "✓ 已配置(留空不修改)",
"kubeconfigHint": "粘贴 kubeconfig 内容后将自动解析 API Server 地址",
"cancel": "取消",
"nameRule": "只允许英文、数字和连字符(-),首尾不能是连字符",
@@ -2857,8 +2865,8 @@
"updateStrategy": "更新策略 (Strategy)",
"rollingUpdate": "滚动更新",
"recreate": "重建",
"maxSurgeHint": "整数或百分比,超出期望副本数",
"maxUnavailableHint": "整数或百分比,不可用上限",
"maxSurgeHint": "maxSurge(整数或百分比,超出期望副本数)",
"maxUnavailableHint": "maxUnavailable(整数或百分比,不可用上限)",
"historyVersions": "历史版本 & 进度",
"rsHistory": "保留 RS 历史",
"upgradeTimeout": "升级超时秒数",
@@ -2879,7 +2887,11 @@
"secondsPlaceholder": "秒",
"maxSurge": "最大超出",
"maxUnavailable": "最大不可用",
"strategyLabel": "更新策略"
"strategyLabel": "更新策略",
"rollingUpdateDesc": "RollingUpdate(滚动更新)",
"recreateDesc": "Recreate(重建)",
"revisionHistoryLimitHint": "revisionHistoryLimit(保留 RS 历史)",
"progressDeadlineSecondsHint": "progressDeadlineSeconds(升级超时秒数)"
},
"editBasic": {
"synced": "已同步",
@@ -2960,7 +2972,7 @@
"edit": "编辑",
"createNew": "创建新 Service",
"portConfig": "端口配置",
"portCount": "个端口",
"portCount": "{{count}} 个端口",
"addCustomPort": "添加自定义端口",
"autoDetect": "自动检测",
"ingresses": "Ingresses (应用路由)",
@@ -2976,7 +2988,14 @@
"portName": "端口名称",
"targetPort": "目标端口",
"protocol": "协议",
"serviceCreated": "Service 已创建"
"serviceCreated": "Service 已创建",
"servicePortLabel": "Service 端口",
"selectorAutoDetect": "selector (自动检测):",
"svcLinked": "{{count}} 个关联",
"ingressAutoHighlight": "backend 指向关联 Service 的 Ingress 自动高亮",
"noSvcInNs": "当前命名空间暂无关联 Service",
"noIngInNs": "当前命名空间暂无 Ingress",
"ingressesLabel": "Ingresses (应用路由)"
},
"editStorage": {
"volumes": "数据卷",
@@ -3420,7 +3439,8 @@
"commonExamples": "常见:",
"accessModeRWO": "ReadWriteOnce (单节点读写)",
"accessModeROX": "ReadOnlyMany (多节点只读)",
"accessModeRWX": "ReadWriteMany (多节点读写)"
"accessModeRWX": "ReadWriteMany (多节点读写)",
"yamlEditBtn": "YAML 编辑"
},
"scheduling": {
"mode": {
@@ -3689,7 +3709,11 @@
"download": "下载",
"copied": "已复制",
"fetchFailed": "获取YAML失败"
}
},
"kubectlTerminalDesc": "Kubernetes 集群命令行终端",
"podLevel": "Pod 级别",
"podNameLabel": "Pod 名称",
"podManagePolicy": "Pod 管理策略"
},
"monitor": {
"acknowledge": "确认告警",
@@ -5294,7 +5318,14 @@
"nextPage": "下一页"
},
"zookeeper": "ZooKeeper",
"deleteRuleConfirmDesc": "删除「{{name}}」?"
"deleteRuleConfirmDesc": "删除「{{name}}」?",
"deleteRulesConfirmDesc": "确定删除选中的 {{count}} 条告警规则吗?此操作不可撤销。",
"deleteDatasourceConfirmDesc": "确定删除数据源「{{name}}」吗?此操作不可撤销。",
"deleteLogDsConfirmDesc": "确认删除「{{name}}」?",
"durationMinutes": "{{count}}分钟",
"queryHistory": {
"count": "{{count}} 条"
}
},
"task": {
"cronJob": {
@@ -5372,7 +5403,8 @@
"batchDeleteConfirm": "确定删除选中的 {{count}} 个任务吗?此操作不可恢复。",
"confirmDelete": "确定删除「{{name}}」吗?此操作不可恢复。",
"execDuration": "耗时 {{ms}}ms"
}
},
"runCount": "{{count}} 次"
},
"cronJobCol": {
"task": "任务",
@@ -7763,7 +7795,17 @@
"liveMonitor": {
"exitFullscreen": "退出全屏",
"fullscreen": "全屏"
}
},
"rdpLiveAudit": "RDP 实时审计",
"rdpHistoryReplay": "RDP 历史回放",
"rdpAuditDesc": "Windows RDP 图形会话审计查看",
"sshTerminalDesc": "SSH 终端连接",
"sftpFileDesc": "SFTP 文件管理 · 上传 · 下载 · 删除",
"sftpFileLabel": "· SFTP 文件管理",
"deleteUserConfirmDesc": "确认删除用户「{{name}}」吗?",
"batchDeleteUsersConfirmDesc": "确定删除选中的 {{count}} 个用户吗?此操作不可恢复。",
"deleteCredConfirmDesc": "确定删除「{{name}}」吗?删除后无法恢复,关联的服务器将无法使用此凭据连接。",
"deleteTermSessionsConfirmDesc": "确认删除选中的 {{count}} 条终端会话记录?"
},
"aiops": {
"activeCount": "{{count}} 个活跃",
@@ -7971,7 +8013,15 @@
"resCpu": "服务器CPU算力",
"resMemory": "服务器内存",
"resDisk": "存储磁盘空间",
"summary": "- {{resource}}:当前 {{current}}% → 7天后预测 {{predicted}}%(阈值 {{threshold}}%),{{risk}}"
"summary": "- {{resource}}:当前 {{current}}% → 7天后预测 {{predicted}}%(阈值 {{threshold}}%),{{risk}}",
"aiInsight": "AI 深度解读",
"urgency": "紧急",
"warning": "警告",
"sevenDayForecast": "7天使用率预测",
"expectedToReach": "预计",
"days": "天",
"afterReachThreshold": "后达到阈值",
"aiSuggestion": "AI建议"
},
"capacityPlanPrompt": "根据以下主机资源使用数据,提供成本优化和容量规划建议(识别闲置/过载主机,给出缩容/扩容建议)",
"capacityPlanning": "容量规划",
@@ -8108,7 +8158,9 @@
"hint": "Shift+回车换行 · 回车发送",
"stop": "停止",
"execute": "执行"
}
},
"confirmHighRiskTitle": "⚠️ 确认执行高危操作",
"confirmHighRiskDesc": "工具:{{tool}}\n风险:{{risk}}\n命令:{{command}}"
},
"cloudService": "云服务",
"codingPlan": "编码套餐 Coding Plan",
@@ -8474,7 +8526,10 @@
"zhipuGeneral": "智谱 GLM (通用)",
"zhipuGetKey": "注册智谱账号并开通模型服务后获取 API Key",
"zhipuOpenPlatform": "智谱开放平台",
"reachable": "可达"
"reachable": "可达",
"cost": {
"aiInsight": "AI 深度解读"
}
},
"breadcrumb": {
"aiAlertAnalyzer": "告警分析",