一个支持音标显示和发音的英汉翻译Chrome插件。
src/
├── manifest.json # 插件配置文件
├── background.js # 后台脚本(翻译API代理)
├── content.js # 内容脚本(主要功能)
├── popup.html # 弹窗界面
├── popup.js # 弹窗逻辑
└── icons/
├── icon-16.png
├── icon-48.png
└── icon-128.png
release/ # 构建产物目录
release.zip # 打包zip
node_modules/ # 依赖目录
tests/ # 测试目录
├── dj_phonetic_convert.test.js # DJ音标自动转换测试
├── translation.test.js # 翻译解析测试
├── benchmark_cn_providers.js # 中国用户翻译提供方基准测试
├── translation_api_config.test.js # 翻译API配置测试
├── refactoring.test.js # 代码重构测试
└── run-tests.js # 测试运行器
build.js # 构建脚本
package.json # 项目配置
README.md # 项目说明
PRIVACY_POLICY.md # 隐私政策
.gitignore # Git忽略文件
cd chromeplugin
npm install
npm test
# 或直接运行
node tests/run-tests.js
插件支持多种翻译API,根据用户地理位置智能选择:
配置说明:中国用户优先使用百度翻译代理(平均396ms),备用MyMemory API(平均502ms);非中国用户使用Google翻译API(平均90ms)。所有API都保持100%成功率,确保翻译服务的稳定性。
BAIDU_PROVIDER_DISABLED
时,该标签页后续请求直接使用MyMemoryTRANSLATION_APIS
配置对象统一管理所有翻译APImakeApiRequest
函数统一处理API请求和错误npm run build:test # 运行测试后构建
npm run build # 仅构建
npm run build:zip # 构建并打包为release.zip
npm run zip # 只打包release目录为zip
npm run clean # 清理发布目录
npm run bench:cn # 运行中国用户翻译提供方基准测试
说明:
- 所有源码和资源文件都在
src/
目录下,图标在src/icons/
。- 构建和打包命令会自动从
src/
复制所需文件到release/
。- manifest.json 及相关路径均为相对
src/
目录。npm run gen:html
可将README.md
和PRIVACY_POLICY.md
转换为 html。
npm test
# 或单独运行
node tests/dj_phonetic_convert.test.js
node tests/translation.test.js
node tests/benchmark_cn_providers.js
node tests/translation_api_config.test.js
node tests/refactoring.test.js
基于实际测试的API性能对比(5个单词,每个运行4次):
API | 平均响应时间 | 成功率 | 性能评级 |
---|---|---|---|
百度翻译代理 | 396ms | 100% | 🟢 优秀 |
MyMemory API | 502ms | 100% | 🟡 良好 |
Google翻译API | 90ms | 100% | 🟢 优秀 |
性能特点:
所有调试信息都包含接口标识,便于追踪:
[百度翻译代理] 发送请求: https://api.yun.info/api/translate?q=hello&from=en&to=zh
[百度翻译代理] 接收响应: {...}
[百度翻译代理] 解析结果: 你好
[Background] 检测到中国用户,优先使用百度翻译代理
npm test
release.zip
包
npm run build:zip
release.zip
内包含所需文件
release.zip
上传到 Chrome Web Storetests/
目录,不会被包含在发布包中MIT License