fix(i18n): 回退到稳定的 32% 覆盖率状态 (tsc + Vite 构建通过)
批量转换脚本引入的语法错误已回退,保留稳定的 i18n 转换: - 翻译词典: 22 namespaces, 3600+ keys - 已接入: 145+ 文件 (Dashboard/Login/K8s 主页面/Monitor/System/Deploy) - 语言切换器在 Header 中可用 (🇨🇳/🇺🇸) - tsc 零错误, Vite 构建成功
This commit is contained in:
1 parent
ecec73989b
commit
72bfb0e12d
191 files changed
+5057
-7592
No files matched your search
@@ -4,9 +4,8 @@ import { useState, useRef } from 'react';
|
||||
import { useVirtualizer } from '@tanstack/react-virtual';
|
||||
import { Badge } from '@/components/ui/badge';
|
||||
import { Loader2 } from 'lucide-react';
|
||||
import {
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import i18n from '@/i18n';
|
||||
import {
|
||||
type NormalizedEvent,
|
||||
formatEventRepeatSpan,
|
||||
formatEventTimeCell,
|
||||
@@ -32,7 +31,7 @@ const MIN_W = '980px';
|
||||
export function EventTable({
|
||||
events,
|
||||
loading = false,
|
||||
emptyText = i18n.t('k8s.empty.events'),
|
||||
emptyText,
|
||||
showNamespace = false,
|
||||
scrollHeight = 600,
|
||||
}: EventTableProps) {
|
||||
@@ -44,8 +43,9 @@ export function EventTable({
|
||||
const gridCols = showNamespace ? COLS_NS : COLS;
|
||||
const minWidth = showNamespace ? MIN_W_NS : MIN_W;
|
||||
const headers = showNamespace
|
||||
? [t('kubernetes.eventtable.sc00582'), t('kubernetes.eventtable.s0b2f54'), t('kubernetes.event.eventCount'), t('kubernetes.eventtable.s33e3c0'), t('common.type'), t('kubernetes.event.eventReason'), t('kubernetes.event.eventObject'), t('k8s.column.namespace'), t('common.source'), t('kubernetes.event.eventMessage')]
|
||||
: [t('kubernetes.eventtable.sc00582'), t('kubernetes.eventtable.s0b2f54'), t('kubernetes.event.eventCount'), t('kubernetes.eventtable.s33e3c0'), t('common.type'), t('kubernetes.event.eventReason'), t('kubernetes.event.eventObject'), t('common.source'), t('kubernetes.event.eventMessage')];
|
||||
? [t('k8s.event.colLast'), t('k8s.event.colFirst'), t('k8s.event.colCount'), t('k8s.event.colRepeat'), t('k8s.event.colType'), t('k8s.event.colReason'), t('k8s.event.colObject'), t('k8s.event.colNamespace'), t('k8s.event.colSource'), t('k8s.event.colMessage')]
|
||||
: [t('k8s.event.colLast'), t('k8s.event.colFirst'), t('k8s.event.colCount'), t('k8s.event.colRepeat'), t('k8s.event.colType'), t('k8s.event.colReason'), t('k8s.event.colObject'), t('k8s.event.colSource'), t('k8s.event.colMessage')];
|
||||
const resolvedEmpty = emptyText || t('k8s.event.empty');
|
||||
|
||||
const virtualizer = useVirtualizer({
|
||||
count: events.length,
|
||||
@@ -76,7 +76,7 @@ export function EventTable({
|
||||
<Loader2 className="h-5 w-5 animate-spin text-[var(--dg-text-muted)]" />
|
||||
</div>
|
||||
) : events.length === 0 ? (
|
||||
<div className="flex items-center justify-center text-[var(--dg-text-muted)] py-10">{emptyText}</div>
|
||||
<div className="flex items-center justify-center text-[var(--dg-text-muted)] py-10">{resolvedEmpty}</div>
|
||||
) : (
|
||||
<div style={{ height: totalHeight, position: 'relative', minWidth }}>
|
||||
{virtualRows.map((vr) => {
|
||||
@@ -152,7 +152,7 @@ export function EventTable({
|
||||
</div>
|
||||
{isExpanded && e.name && (
|
||||
<div className="mt-1 pt-1 border-t border-[var(--dg-border)] text-[10px] text-[var(--dg-text-muted)]">
|
||||
事件名: {e.name}
|
||||
{t('k8s.event.nameLabel')} {e.name}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
@@ -166,7 +166,7 @@ export function EventTable({
|
||||
{/* 行数统计 */}
|
||||
{events.length > 0 && (
|
||||
<div className="text-center py-2 text-xs text-[var(--dg-text-muted)] border-t border-[var(--dg-border)]">
|
||||
共 {events.length} 条事件 {events.length > 500 && t('kubernetes.eventtable.sd0a696')}
|
||||
{t('k8s.event.totalCount', { count: events.length })} {events.length > 500 ? `· ${t('k8s.event.virtualScroll')}` : ''}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user