aa23a263fe
- 移除 react-i18next、i18next 及相关依赖
- 删除旧的 i18n/ 目录和 useLazyTranslation 工具
- 新增 utils/chromeI18n.ts 类型安全 wrapper(useI18n Hook + getMessage)
- 生成 public/_locales/{zh,en}/messages.json(298 个翻译 key)
- 批量更新 39+ 组件文件的导入和翻译调用
- 转换翻译键格式:namespace:key → namespace_key
- 修复 ErrorBoundary/PageErrorBoundary 从 withTranslation HOC 改为直接调用 getMessage
- 更新 vitest.setup.ts mock 加载实际翻译文本
- 修复 11 个测试文件的断言以匹配中文翻译
- TypeScript、ESLint、547 项测试全部通过
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
config/
应用级配置目录,存放功能特性的注册中心。
文件说明
| 文件 | 用途 |
|---|---|
features.tsx |
核心配置文件,定义所有工具功能的注册信息 |
features.tsx
FEATURES 数组是路由和功能元数据的单一事实来源,每个功能定义包含:
key:页面类型标识(PageType)labelKey/descriptionKey:i18n 翻译键themeColorKey:主题色(primary/success/warning/error/secondary/info)icon:lucide-react 图标组件defaultVisible:默认是否可见components:三种渲染模式的懒加载组件(popup、sidepanel、tab)
已注册功能(11 个)
| key | 图标 | 说明 |
|---|---|---|
dashboard |
— | 仪表盘首页 |
timestamp |
Clock | 时间戳转换工具 |
storageCleaner |
Database | 存储清理工具 |
qrCode |
QrCode | 二维码工具 |
textStatistics |
FileText | 文本统计工具 |
jwt |
Key | JWT 解析工具 |
jsonDiff |
GitCompareArrows | JSON 差异比较工具 |
base64Converter |
ArrowLeftRight | Base64 转换器 |
markdownToHtml |
Code | Markdown 转 HTML |
htmlToMarkdown |
File | HTML 转 Markdown |
rightClickRestorer |
MousePointerClick | 右键菜单恢复工具 |
导出函数
getFeatureByKey(key)— 根据 key 获取功能配置getDefaultVisibleFeatureKeys()— 获取默认可见的功能 key 列表getAllFeatureKeys()— 获取所有功能 key 列表getDefaultPageOrder()— 获取默认页面排序(不含 dashboard)getEntryPointType()— 判断当前入口类型(popup/sidepanel/tab)