Yomitan
访问 Yomitan Wiki 了解更多!
:wave: Yomitan 是 Yomichan 的继任者 (迁移指南),Yomichan 于 2023 年 2 月 26 日被其所有者终止。我们进行了一些基础性的改变,以确保项目能够继续存在,适用于最新的浏览器版本,并易于贡献。
📢 欢迎新的贡献者!
📢 有兴趣为 Yomitan 添加新语言吗?请查看这里获取详细文档!
Yomitan 是什么?
Yomitan 将你的网页浏览器转变为一个语言学习工具,帮助你阅读原本难以理解的各种支持语言的文本。
Yomitan 提供了其他基于浏览器的词典所没有的强大功能:
- 💬 用于显示搜索结果的交互式弹出定义窗口。
- 🔊 内置原生发音音频,并能添加你自己的自定义音频源。
- ✍️ 只需点击一下即可查看汉字笔顺图。
- 📝 通过 AnkiConnect 插件为 Anki 闪卡程序自动创建闪卡。
- 🔍 自定义搜索页面,方便执行自定义搜索查询。
- 📖 支持多种词典格式,包括通过 Yomitan Import 工具支持 EPWING 格式。
- ✨ 清晰、现代的代码使开发者能够轻松贡献新功能和语言。
有用信息
- ✨ 从 Yomichan(旧版)迁移
- 词典
- 📚 推荐词典
- 🗂️ 导入和导出词典
- 🛠️ 制作 Yomitan 词典
- Anki 集成
- 高级功能
- ⌨️ 键盘快捷键
- 🔍 高级选项,包括 MeCab
- 🔊 添加自定义音频源
- 故障排除
- 🔒 浏览器权限
- 🌎 支持的语言
安装
Yomitan 有两个版本:稳定版_和_测试版。新的变更首先会在_测试版_中引入,经过一段时间确保相对无bug后,它们会被提升到_稳定版_。如果你有技术能力并且不介意在 GitHub 上提交问题,可以尝试_测试版_;否则,_稳定版_将是你的最佳选择。查看贡献以获取更多关于如何帮助的信息。
※ 与 Chrome 不同,Firefox 不允许在应用商店中托管用于测试的扩展。你需要下载所需版本并自行侧载。你只需执行一次这个操作,之后就会自动获得更新。
基本使用
-
点击浏览器栏中的 Yomitan 按钮打开快速操作弹出窗口。
- _齿轮_按钮将打开设置页面。
- _放大镜_按钮将打开搜索页面。
- _问号_按钮将打开信息页面。
- _配置文件_按钮将在存在多个配置文件时出现,允许快速更改当前配置文件。
-
导入你希望用于术语和汉字搜索的词典;请查看词典文档进行设置!如果你没有安装或启用任何词典,Yomitan 将通过在其图标上显示橙色感叹号来警告你它尚未准备好使用。一旦你安装并启用了至少一个词典,这个感叹号就会消失。
-
通过按住修饰键(默认为 Shift)并移动光标可以扫描网页文本。如果在光标位置找到定义,将会打开一个包含术语定义的弹出窗口。点击窗口外的任何位置即可关闭此窗口。
-
点击扬声器按钮,可以听到由母语者发音的术语。如果没有可用的音频样本,你会听到一个短促的咔嗒声。更多选项请参见音频配置。
-
在术语定义结果中点击单个汉字,可以查看这些字符的额外信息,包括笔顺图、读音、含义以及其他有用的数据。
为了进一步提升您的Yomitan体验,建议与Anki集成,这是一个间隔重复的闪卡程序,可以帮助巩固你遇到的单词。
变更
虽然我们做了一些重大改变,但扩展程序的大部分功能要归功于FooSoft和其他许多杰出的开源贡献者从2016年到2023年的辛勤工作。
主要变更:
- 🌐 增加了多语言支持!
- 💪 完成了从Manifest V2到V3的过渡,点击这里了解原因。
- ⚡ 切换到使用ECMAScript模块和npm来源的依赖。
- 🔧 实现了端到端的CI/CD流程。
- 🧪 切换到标准测试框架,使用vitest和playwrights。
此外,我们还进行了重要的bug修复和小型改进:
- ⚡ 将字典导入速度提高了2到10倍。
- 📚 增加了导入/导出多个字典的功能,实现了跨设备的可移植性。
- ✨ 以及更多改进。
由于原作者要求分支使用独特的名称,我们选择了一个新名字,Yomitan("-tan"是用于拟人化萌系角色的敬语)。
贡献
🚀 通过查看带有good-first-issue标签的问题,开始你的贡献之旅。
由于这是一个分布式的努力,我们非常欢迎新的贡献者!请随意浏览问题追踪器,并阅读我们的贡献指南。
以下是任何人都可以提供帮助的方式:
- 尝试使用Yomitan开发版。你不仅可以体验到最新功能,还能帮助发现bug并尽早向开发者提供反馈。
- 在Github Issues中记录任何UI/UX方面的问题。我们希望让Yomitan对非技术用户更加友好。
- 所有超过2个月的
area/bug
类别的问题都需要帮助复现。如果有任何问题引起你的兴趣,请尝试复现并报告你的结果。我们很难判断这些问题是否是一次性的,是否已经解决,或者是否不再相关。
Yomitan的当前活跃维护者花费了大量时间进行调试和问题分类。当有人提交bug报告时,我们需要评估bug的频率和严重程度。如果我们能得到多个人报告遇到同一个bug,或者有人能为现有的bug报告提供额外细节,这将非常有帮助。
如果你想编写代码,请在提交Pull Request之前让我们知道你计划做什么。这让核心维护者有机会在你深入之前提供早期反馈。你可以通过开启一个Github Issue来提出建议。
我们始终感激的一些贡献包括:
- 涵盖不同功能的优质测试。这包括playwright测试、基准测试和单元测试。
- 增加我们的类型覆盖率。
- 更多更好的文档!
关于如何设置和构建代码库的信息可以在这里找到。
如果你想添加或改进对某种语言的支持,请阅读语言功能的文档。
欢迎加入我们的TheMoeWay Discord 🐇,在#yomitan-development频道交流。
第三方库
Yomitan使用了几个第三方库来实现功能。
名称 | 安装版本 | 许可类型 | 链接 |
---|---|---|---|
@zip.js/zip.js | 2.7.32 | BSD-3-Clause | git+https://github.com/gildas-lormeau/zip.js.git |
dexie | 3.2.4 | Apache-2.0 | git+https://github.com/dfahlander/Dexie.js.git |
dexie-export-import | 4.0.7 | Apache-2.0 | git+https://github.com/dexie/Dexie.js.git |
yomitan-handlebars | 1.0.0 | MIT | n/a |
parse5 | 7.1.2 | MIT | git://github.com/inikulin/parse5.git |
wanakana | 5.3.1 | MIT | git+ssh://git@github.com/WaniKani/WanaKana.git |
hangul.js | 0.2.6 | MIT | git+https://github.com/e-/Hangul.js.git |