refactor(i18n): 移除 chrome.i18n 国际化,统一使用中文硬编码

移除 chromeI18n 工具、_locales 翻译文件和 manifest default_locale 配置,
将所有 UI 文案改为直接硬编码中文,并更新相关测试与文档。
This commit is contained in:
雨霖铃
2026-06-18 14:22:14 +00:00
parent 618f3c36f2
commit ec92afa294
68 changed files with 531 additions and 2148 deletions
-35
View File
@@ -1,41 +1,6 @@
import '@testing-library/jest-dom';
import { afterEach, beforeEach, vi } from 'vitest';
import React from 'react';
import zhMessages from './public/_locales/zh_CN/messages.json';
// Type assertion to allow string indexing
const zhMessagesMap = zhMessages as Record<string, { message: string }>;
vi.mock('@/utils/chromeI18n', () => ({
useI18n: (ns?: string | string[]) => ({
t: (key: string) => {
let msgId = key;
// Handle namespace:key format
if (key.includes(':')) {
msgId = key.replace(':', '_').replace(/\./g, '_');
}
// Try direct key first
if (zhMessagesMap[msgId]) return zhMessagesMap[msgId].message;
// Try namespace prefix (using converted msgId)
if (ns) {
const namespaces = Array.isArray(ns) ? ns : [ns];
for (const n of namespaces) {
const candidate = `${n}_${msgId}`;
if (zhMessagesMap[candidate]) return zhMessagesMap[candidate].message;
}
}
return msgId;
},
i18n: {
changeLanguage: vi.fn().mockResolvedValue(undefined),
language: 'zh',
},
isLoaded: true,
}),
getMessage: (msgId: string) => zhMessagesMap[msgId]?.message ?? msgId,
getLanguage: () => 'zh',
preloadNamespaces: vi.fn().mockResolvedValue(undefined),
}));
vi.mock('@/components/CopyButton', () => ({
CopyButton: ({