From 1e169685f4e1dd2c44aed88ae27cc899d7fc3ed3 Mon Sep 17 00:00:00 2001 From: IanShaw027 <131567472+IanShaw027@users.noreply.github.com> Date: Wed, 14 Jan 2026 09:04:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=E6=B7=BB=E5=8A=A0ops=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=E5=9B=BD=E9=99=85=E5=8C=96=E6=96=87?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增告警静默相关的中英文翻译 - 补充错误分类和重试状态的文案 - 完善ops管理界面的提示信息 --- frontend/src/i18n/locales/en.ts | 70 +++++++++++++++++++++++++++++++-- frontend/src/i18n/locales/zh.ts | 70 +++++++++++++++++++++++++++++++-- 2 files changed, 134 insertions(+), 6 deletions(-) diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index bd17a7f1..b9fad5be 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -1941,7 +1941,9 @@ export default { '30m': 'Last 30 minutes', '1h': 'Last 1 hour', '6h': 'Last 6 hours', - '24h': 'Last 24 hours' + '24h': 'Last 24 hours', + '7d': 'Last 7 days', + '30d': 'Last 30 days' }, fullscreen: { enter: 'Enter Fullscreen' @@ -2013,6 +2015,7 @@ export default { // Error Log errorLog: { timeId: 'Time / ID', + type: 'Type', context: 'Context', status: 'Status', message: 'Message', @@ -2028,6 +2031,8 @@ export default { errorDetails: { upstreamErrors: 'Upstream Errors', requestErrors: 'Request Errors', + unresolved: 'Unresolved', + resolved: 'Resolved', total: 'Total:', searchPlaceholder: 'Search request_id / client_request_id / message', accountIdPlaceholder: 'account_id' @@ -2052,6 +2057,8 @@ export default { routing: 'Routing', upstream: 'Upstream', response: 'Response', + classification: 'Classification', + notRetryable: 'Not recommended to retry', retry: 'Retry', retryClient: 'Retry (Client)', retryUpstream: 'Retry (Upstream pinned)', @@ -2072,7 +2079,31 @@ export default { retryNote2: 'If the original request failed due to account issues, pinned retry may still fail', retryNote3: 'Client retry will reselect an account', confirmRetryMessage: 'Confirm retry this request?', - confirmRetryHint: 'Will resend with the same request parameters' + confirmRetryHint: 'Will resend with the same request parameters', + forceRetry: 'I understand and want to force retry', + forceRetryHint: 'This error usually cannot be fixed by retry; check to proceed', + forceRetryNeedAck: 'Please check to force retry', + markResolved: 'Mark resolved', + markUnresolved: 'Mark unresolved', + viewRetries: 'Retry history', + retryHistory: 'Retry History', + tabOverview: 'Overview', + tabRetries: 'Retries', + tabRequest: 'Request', + tabResponse: 'Response', + responseBody: 'Response', + compareA: 'Compare A', + compareB: 'Compare B', + retrySummary: 'Retry Summary', + responseHintSucceeded: 'Showing succeeded retry response_preview (#{id})', + responseHintFallback: 'No succeeded retry found; showing stored error_body', + suggestion: 'Suggestion', + suggestUpstreamResolved: '✓ Upstream error resolved by retry; no action needed', + suggestUpstream: 'Upstream instability: check account status, consider switching accounts, or retry', + suggestRequest: 'Client request error: ask customer to fix request parameters', + suggestAuth: 'Auth failed: verify API key/credentials', + suggestPlatform: 'Platform error: prioritize investigation and fix', + suggestGeneric: 'See details for more context' }, requestDetails: { title: 'Request Details', @@ -2108,13 +2139,46 @@ export default { loading: 'Loading...', empty: 'No alert events', loadFailed: 'Failed to load alert events', + status: { + firing: 'FIRING', + resolved: 'RESOLVED', + manualResolved: 'MANUAL RESOLVED' + }, + detail: { + title: 'Alert Detail', + loading: 'Loading detail...', + empty: 'No detail', + loadFailed: 'Failed to load alert detail', + manualResolve: 'Mark as Resolved', + manualResolvedSuccess: 'Marked as manually resolved', + manualResolvedFailed: 'Failed to mark as manually resolved', + silence: 'Ignore Alert', + silenceSuccess: 'Alert silenced', + silenceFailed: 'Failed to silence alert', + viewRule: 'View Rule', + viewLogs: 'View Logs', + firedAt: 'Fired At', + resolvedAt: 'Resolved At', + ruleId: 'Rule ID', + dimensions: 'Dimensions', + historyTitle: 'History', + historyHint: 'Recent events with same rule + dimensions', + historyLoading: 'Loading history...', + historyEmpty: 'No history' + }, table: { time: 'Time', status: 'Status', severity: 'Severity', + platform: 'Platform', + ruleId: 'Rule ID', title: 'Title', + duration: 'Duration', metric: 'Metric / Threshold', - email: 'Email Sent' + dimensions: 'Dimensions', + email: 'Email Sent', + emailSent: 'Sent', + emailIgnored: 'Ignored' } }, alertRules: { diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts index 9724a55c..57f5e0cc 100644 --- a/frontend/src/i18n/locales/zh.ts +++ b/frontend/src/i18n/locales/zh.ts @@ -2086,7 +2086,9 @@ export default { '30m': '近30分钟', '1h': '近1小时', '6h': '近6小时', - '24h': '近24小时' + '24h': '近24小时', + '7d': '近7天', + '30d': '近30天' }, fullscreen: { enter: '进入全屏' @@ -2158,6 +2160,7 @@ export default { // Error Log errorLog: { timeId: '时间 / ID', + type: '类型', context: '上下文', status: '状态码', message: '消息', @@ -2173,6 +2176,8 @@ export default { errorDetails: { upstreamErrors: '上游错误', requestErrors: '请求错误', + unresolved: '未解决', + resolved: '已解决', total: '总计:', searchPlaceholder: '搜索 request_id / client_request_id / message', accountIdPlaceholder: 'account_id' @@ -2197,6 +2202,8 @@ export default { routing: '路由', upstream: '上游', response: '响应', + classification: '错误分类', + notRetryable: '此错误不建议重试', retry: '重试', retryClient: '重试(客户端)', retryUpstream: '重试(上游固定)', @@ -2217,7 +2224,31 @@ export default { retryNote2: '如果原请求失败是因为账号问题,固定重试可能仍会失败', retryNote3: '客户端重试会重新选择账号', confirmRetryMessage: '确认要重试该请求吗?', - confirmRetryHint: '将使用相同的请求参数重新发送' + confirmRetryHint: '将使用相同的请求参数重新发送', + forceRetry: '我已确认并理解强制重试风险', + forceRetryHint: '此错误类型通常不可通过重试解决;如仍需重试请勾选确认', + forceRetryNeedAck: '请先勾选确认再强制重试', + markResolved: '标记已解决', + markUnresolved: '标记未解决', + viewRetries: '重试历史', + retryHistory: '重试历史', + tabOverview: '概览', + tabRetries: '重试历史', + tabRequest: '请求详情', + tabResponse: '响应详情', + responseBody: '响应详情', + compareA: '对比 A', + compareB: '对比 B', + retrySummary: '重试摘要', + responseHintSucceeded: '展示重试成功的 response_preview(#{id})', + responseHintFallback: '没有成功的重试结果,展示存储的 error_body', + suggestion: '处理建议', + suggestUpstreamResolved: '✓ 上游错误已通过重试解决,无需人工介入', + suggestUpstream: '⚠️ 上游服务不稳定,建议:检查上游账号状态 / 考虑切换账号 / 再次重试', + suggestRequest: '⚠️ 客户端请求错误,建议:联系客户修正请求参数 / 手动标记已解决', + suggestAuth: '⚠️ 认证失败,建议:检查 API Key 是否有效 / 联系客户更新凭证', + suggestPlatform: '🚨 平台错误,建议立即排查修复', + suggestGeneric: '查看详情了解更多信息' }, requestDetails: { title: '请求明细', @@ -2253,13 +2284,46 @@ export default { loading: '加载中...', empty: '暂无告警事件', loadFailed: '加载告警事件失败', + status: { + firing: '告警中', + resolved: '已恢复', + manualResolved: '手动已解决' + }, + detail: { + title: '告警详情', + loading: '加载详情中...', + empty: '暂无详情', + loadFailed: '加载告警详情失败', + manualResolve: '标记为已解决', + manualResolvedSuccess: '已标记为手动解决', + manualResolvedFailed: '标记为手动解决失败', + silence: '忽略此告警', + silenceSuccess: '已静默该告警', + silenceFailed: '静默失败', + viewRule: '查看规则', + viewLogs: '查看相关日志', + firedAt: '触发时间', + resolvedAt: '解决时间', + ruleId: '规则 ID', + dimensions: '维度信息', + historyTitle: '历史记录', + historyHint: '同一规则 + 相同维度的最近事件', + historyLoading: '加载历史中...', + historyEmpty: '暂无历史记录' + }, table: { time: '时间', status: '状态', severity: '级别', + platform: '平台', + ruleId: '规则ID', title: '标题', + duration: '持续时间', metric: '指标 / 阈值', - email: '邮件已发送' + dimensions: '维度', + email: '邮件已发送', + emailSent: '已发送', + emailIgnored: '已忽略' } }, alertRules: {