Awesome
<p align="center"> <img width="400" src="https://github.com/wtetsu/mouse-dictionary/blob/images/logo.png" alt="Mouse Dictionary logo" /> <br/> </p> <p align="center"> <a href="https://github.com/wtetsu/mouse-dictionary/actions?query=workflow%3ATest"><img src="https://github.com/wtetsu/mouse-dictionary/workflows/Test/badge.svg" alt="Test" /></a> <a href="https://codeclimate.com/github/wtetsu/mouse-dictionary"><img src="https://codeclimate.com/github/wtetsu/mouse-dictionary/badges/gpa.svg" alt="Code Climate" /></a> <a href="https://codecov.io/gh/wtetsu/mouse-dictionary"><img src="https://codecov.io/gh/wtetsu/mouse-dictionary/branch/master/graph/badge.svg" alt="codecov" /></a> </p>Mouse Dictionary is a super fast browser dictionary.
<img src="https://user-images.githubusercontent.com/515948/200157867-400b7090-159c-471a-82b2-c4769df318e4.gif" />Features:
- ⚡ Super quick response time (1/60 second)
- 💡 Smart phrase detection
- 🔍 Automatic word separation (e.g. camelCase -> camel case)
- 📝 Option to add your own data
- 🎨 Customizable view
Available for various documents:
- HTML
- YouTube captions
- Notion
- Evernote (Use with Mouse Dictionary iframe support)
- ...
Install
- For Chrome
- For Firefox
- For Safari (See #53)
See also Getting started
Screenshots
English-Japanese
Japanese-English
German
Want to use for the German language? Take a look these great articles!
How to develop
Preparation
Use Node.js 22+.
npm install
Generate static resources.
npm run res
Build
For Chrome:
npm run build-chrome # Debug build
npm run release-chrome # Release build
For Firefox:
npm run build-firefox # Debug build
npm run release-firefox # Release build
For Safari:
npm run build-safari # Debug build
npm run release-safari # Release build
see package.json for other commands.
Contribution
For the moment, Mouse Dictionary project doesn't have any strict rule about contribution. Feel free to create any issues and pull requests.
Some guides:
- Editor: the main developer uses VSCode
- Before you commit: try running
npm run test
andnpm run lint
Cross-extension messaging
Mouse Dictionary supports receiving cross-extension messages. Mouse Dictionary iframe support is a good example that implements message sending to this extension.
Here is a code example for sending a message to Mouse Dictionary. You can make Mouse Dictionary look up words/expressions from other extensions.
const MD_EXTENSION_ID = "dnclbikcihnpjohihfcmmldgkjnebgnj";
chrome.runtime.sendMessage(MD_EXTENSION_ID, {
type: "text",
text: "rained cats and dogs",
});
Parameters:
name | type | value |
---|---|---|
type | string | must be "text" |
text | string | text you want to look up |
License
Mouse Dictionary is published under the MIT license.
Third-party data
This project includes some third-party data:
Dictionary data
- ejdict-hand (Public Domain)
Images
Built-in PDF viewer
- Mouse Dictionary's built-in PDF viewer is based on PDF.js (Apache-2.0)
Great JavaScript libraries
- See package.json and license.html
See also
Chrome 拡張の高速な英語辞書ツールをつくりました(a Japanese tutorial)