diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 117 |
1 files changed, 64 insertions, 53 deletions
@@ -1,12 +1,21 @@ -# Yomichan +# Yomitan -Yomichan turns your web browser into a tool for building Japanese language literacy by helping you to decipher texts +> :wave: **This project is a community fork of yomichan** (which was [sunset](https://foosoft.net/posts/sunsetting-the-yomichan-project/) by its owner on Feb 26 2023). +> +> The primary goal is to **keep the project alive and working on latest browser versions and doing bugfixes**. (Feature improvements are considered secondary.) +> +> Since the owner requested forks be uniquely named, we have chosen a new name: *yomitan*. (*-tan* is an honorific used for anthropomorphic moe characters.) While we've renamed the codebase and made judicious use of find-and-replace, it is entirely the hard work of foosoft and numerous other open source contributors from 2016-2023 and we do not claim any credit. +> +> Since this is a distributed effort, we highly welcome new contributors! Feel free to browse the issue tracker, and you can find us on [TheMoeWay Discord](https://discord.gg/nhqjydaR8j) at [#colab-tmw-projects](https://discord.com/channels/617136488840429598/1081538711742844980) + + +Yomitan turns your web browser into a tool for building Japanese language literacy by helping you to decipher texts which would be otherwise too difficult tackle. This extension is similar to -[Rikaichamp](https://addons.mozilla.org/en-US/firefox/addon/rikaichamp/) for Firefox and +[10ten Japanese Reader (formerly Rikaichamp)](https://addons.mozilla.org/en-US/firefox/addon/10ten-ja-reader/) for Firefox and [Rikaikun](https://chrome.google.com/webstore/detail/rikaikun/jipdnfibhldikgcjhfnomkfpcebammhp?hl=en) for Chrome, but it stands apart in its goal of being an all-encompassing learning tool as opposed to a mere browser-based dictionary. -Yomichan provides advanced features not available in other browser-based dictionaries: +Yomitan provides advanced features not available in other browser-based dictionaries: * Interactive popup definition window for displaying search results. * On-demand audio playback for select dictionary definitions. @@ -14,7 +23,7 @@ Yomichan provides advanced features not available in other browser-based diction * Custom search page for easily executing custom search queries. * Support for multiple dictionary formats including [EPWING](https://ja.wikipedia.org/wiki/EPWING) via the [Yomichan Import](https://foosoft.net/projects/yomichan-import) tool. * Automatic note creation for the [Anki](https://apps.ankiweb.net/) flashcard program via the [AnkiConnect](https://foosoft.net/projects/anki-connect) plugin. -* Clean, modern code makes it easy for developers to [contribute](https://github.com/FooSoft/yomichan/blob/master/CONTRIBUTING.md) new features. +* Clean, modern code makes it easy for developers to [contribute](https://github.com/themoeway/yomitan/blob/master/CONTRIBUTING.md) new features. [![Term definitions](img/ss-terms-thumb.png)](img/ss-terms.png) [![Kanji information](img/ss-kanji-thumb.png)](img/ss-kanji.png) @@ -37,12 +46,14 @@ Yomichan provides advanced features not available in other browser-based diction ## Installation -Yomichan comes in two flavors: *stable* and *testing*. Over the years, this extension has evolved to contain many +Yomitan comes in two flavors: *stable* and *testing*. Over the years, this extension has evolved to contain many complex features which have become increasingly difficult to test across different browsers, versions, and environments. New changes are initially introduced into the *testing* version, and after some time spent ensuring that they are relatively bug free, they will be promoted to the *stable* version. If you are technically savvy and don't mind submitting issues on GitHub, try the *testing* version; otherwise, the *stable* version will be your best bet. +> :warning: These are releases are not updated yet and still link to yomichan. + * **Google Chrome** ([stable](https://chrome.google.com/webstore/detail/yomichan/ogmnaimimemjmbakcfefmnahgdfhfami) or [testing](https://chrome.google.com/webstore/detail/yomichan-testing/bcknnfebhefllbjhagijobjklocakpdm)) \ [![](img/chrome-web-store.png)](https://chrome.google.com/webstore/detail/yomichan/ogmnaimimemjmbakcfefmnahgdfhfami) @@ -56,41 +67,41 @@ submitting issues on GitHub, try the *testing* version; otherwise, the *stable* ## Dictionaries -There are several free Japanese dictionaries available for Yomichan, with two of them having glossaries available in -different languages. You must download and import the dictionaries you wish to use in order to enable Yomichan +There are several free Japanese dictionaries available for Yomitan, with two of them having glossaries available in +different languages. You must download and import the dictionaries you wish to use in order to enable Yomitan definition lookups. If you have proprietary EPWING dictionaries that you would like to use, check the [Yomichan -Import](https://foosoft.net/projects/yomichan-import) page to learn how to convert and import them into Yomichan. +Import](https://foosoft.net/projects/yomichan-import) page to learn how to convert and import them into Yomitan. Be aware that the non-English dictionaries contain fewer entries than their English counterparts. Even if your primary language is not English, you may consider also importing the English version for better coverage. * **[JMdict](https://www.edrdg.org/jmdict/edict_doc.html)** (Japanese vocabulary) - * [jmdict\_dutch.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_dutch.zip) - * [jmdict\_english.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_english.zip) - * [jmdict\_french.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_french.zip) - * [jmdict\_german.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_german.zip) - * [jmdict\_hungarian.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_hungarian.zip) - * [jmdict\_russian.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_russian.zip) - * [jmdict\_slovenian.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_slovenian.zip) - * [jmdict\_spanish.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_spanish.zip) - * [jmdict\_swedish.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmdict_swedish.zip) + * [jmdict\_dutch.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_dutch.zip) + * [jmdict\_english.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_english.zip) + * [jmdict\_french.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_french.zip) + * [jmdict\_german.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_german.zip) + * [jmdict\_hungarian.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_hungarian.zip) + * [jmdict\_russian.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_russian.zip) + * [jmdict\_slovenian.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_slovenian.zip) + * [jmdict\_spanish.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_spanish.zip) + * [jmdict\_swedish.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmdict_swedish.zip) * **[JMnedict](https://www.edrdg.org/enamdict/enamdict_doc.html)** (Japanese names) - * [jmnedict.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/jmnedict.zip) -* **[KireiCake](https://kireicake.com/rikaicakes/)** (Japanese slang) - * [kireicake.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kireicake.zip) + * [jmnedict.zip](https://github.com/themoeway/yomitan/raw/dictionaries/jmnedict.zip) +* **KireiCake (upstream project dead)** (Japanese slang) + * [kireicake.zip](https://github.com/themoeway/yomitan/raw/dictionaries/kireicake.zip) * **[KANJIDIC](http://nihongo.monash.edu/kanjidic2/index.html)** (Japanese kanji) - * [kanjidic\_english.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kanjidic_english.zip) - * [kanjidic\_french.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kanjidic_french.zip) - * [kanjidic\_portuguese.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kanjidic_portuguese.zip) - * [kanjidic\_spanish.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kanjidic_spanish.zip) + * [kanjidic\_english.zip](https://github.com/themoeway/yomitan/raw/dictionaries/kanjidic_english.zip) + * [kanjidic\_french.zip](https://github.com/themoeway/yomitan/raw/dictionaries/kanjidic_french.zip) + * [kanjidic\_portuguese.zip](https://github.com/themoeway/yomitan/raw/dictionaries/kanjidic_portuguese.zip) + * [kanjidic\_spanish.zip](https://github.com/themoeway/yomitan/raw/dictionaries/kanjidic_spanish.zip) * **[Innocent Corpus](https://web.archive.org/web/20190309073023/https://forum.koohii.com/thread-9459.html#pid168613)** (Term and kanji frequencies across 5000+ novels) - * [innocent\_corpus.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/innocent_corpus.zip) + * [innocent\_corpus.zip](https://github.com/themoeway/yomitan/raw/dictionaries/innocent_corpus.zip) * **[Kanjium](https://github.com/mifunetoshiro/kanjium)** (Pitch dictionary, see [related project page](https://github.com/toasted-nutbread/yomichan-pitch-accent-dictionary) for details) - * [kanjium_pitch_accents.zip](https://github.com/FooSoft/yomichan/raw/dictionaries/kanjium_pitch_accents.zip) + * [kanjium_pitch_accents.zip](https://github.com/themoeway/yomitan/raw/dictionaries/kanjium_pitch_accents.zip) ## Basic Usage -1. Click the <img src="ext/images/yomichan-icon.svg" alt="" width="16" height="16"> _Yomichan_ button in the browser bar to open the quick-actions popup. +1. Click the <img src="ext/images/yomitan-icon.svg" alt="" width="16" height="16"> _Yomitan_ button in the browser bar to open the quick-actions popup. <img src="resources/images/browser-action-popup1.png" alt=""> @@ -100,7 +111,7 @@ language is not English, you may consider also importing the English version for * The <img src="ext/images/profile.svg" alt="" width="16" height="16"> _profile_ button will appear when multiple profiles exist, allowing the current profile to be quickly changed. 2. Import the dictionaries you wish to use for term and kanji searches. If you do not have any dictionaries installed - or enabled, Yomichan will warn you that it is not ready for use by displaying an orange exclamation mark over its + or enabled, Yomitan will warn you that it is not ready for use by displaying an orange exclamation mark over its icon. This exclamation mark will disappear once you have installed and enabled at least one dictionary. <img src="resources/images/settings-dictionaries-popup.png" alt=""> @@ -122,20 +133,20 @@ language is not English, you may consider also importing the English version for ## Custom Dictionaries -Yomichan supports the use of custom dictionaries, including the esoteric but popular +Yomitan supports the use of custom dictionaries, including the esoteric but popular [EPWING](https://ja.wikipedia.org/wiki/EPWING) format. They were often utilized in portable electronic dictionaries similar to the ones pictured below. These dictionaries are often sought after by language learners for their correctness and excellent coverage of the Japanese language. Unfortunately, as most of the dictionaries released in this format are proprietary, they are unable to be bundled with -Yomichan. Instead, you will need to procure these dictionaries yourself and import them using [Yomichan +Yomitan. Instead, you will need to procure these dictionaries yourself and import them using [Yomichan Import](https://foosoft.net/projects/yomichan-import). Check the project page for additional details. ![Pocket EPWING dictionaries](img/epwing-devices.jpg) ## Anki Integration -Yomichan features automatic flashcard creation for [Anki](https://apps.ankiweb.net/), a free application designed to help you +Yomitan features automatic flashcard creation for [Anki](https://apps.ankiweb.net/), a free application designed to help you retain knowledge. This feature requires the prior installation of an Anki plugin called [AnkiConnect](https://foosoft.net/projects/anki-connect). Check the respective project page for more information about how to set up this software. @@ -144,11 +155,11 @@ Check the respective project page for more information about how to set up this Before flashcards can be automatically created, you must configure the templates used to create term and/or kanji notes. If you are unfamiliar with Anki deck and model management, this would be a good time to reference the [Anki Manual](https://docs.ankiweb.net/#/). In short, you must specify what information should be included in the -flashcards that Yomichan creates through AnkiConnect. +flashcards that Yomitan creates through AnkiConnect. Flashcard fields can be configured with the following steps: -1. Open the Yomichan options page and scroll down to the section labeled *Anki Options*. +1. Open the Yomitan options page and scroll down to the section labeled *Anki Options*. 2. Tick the checkbox labeled *Enable Anki integration* (Anki must be running with [AnkiConnect](https://foosoft.net/projects/anki-connect) installed). 3. Select the type of template to configure by clicking on either the *Terms* or *Kanji* tabs. 4. Select the Anki deck and model to use for new creating new flashcards of this type. @@ -163,7 +174,7 @@ Flashcard fields can be configured with the following steps: `{audio}` | Audio sample of a native speaker's pronunciation in MP3 format (if available). `{clipboard-image}` | An image which is stored in the system clipboard, if present. `{clipboard-text}` | Text which is stored in the system clipboard, if present. - `{cloze-body}` | Raw, inflected term as it appeared before being reduced to dictionary form by Yomichan. + `{cloze-body}` | Raw, inflected term as it appeared before being reduced to dictionary form by Yomitan. `{cloze-prefix}` | Fragment of the containing `{sentence}` starting at the beginning of `{sentence}` until the beginning of `{cloze-body}`. `{cloze-suffix}` | Fragment of the containing `{sentence}` starting at the end of `{cloze-body}` until the end of `{sentence}`. `{conjugation}` | Conjugation path from the raw inflected term to the source term. @@ -196,7 +207,7 @@ Flashcard fields can be configured with the following steps: `{character}` | Unicode glyph representing the current kanji. `{clipboard-image}` | An image which is stored in the system clipboard, if present. `{clipboard-text}` | Text which is stored in the system clipboard, if present. - `{cloze-body}` | Raw, inflected parent term as it appeared before being reduced to dictionary form by Yomichan. + `{cloze-body}` | Raw, inflected parent term as it appeared before being reduced to dictionary form by Yomitan. `{cloze-prefix}` | Fragment of the containing `{sentence}` starting at the beginning of `{sentence}` until the beginning of `{cloze-body}`. `{cloze-suffix}` | Fragment of the containing `{sentence}` starting at the end of `{cloze-body}` until the end of `{sentence}`. `{dictionary}` | Name of the dictionary from which the card is being created. @@ -213,7 +224,7 @@ Flashcard fields can be configured with the following steps: `{stroke-count}` | Number of strokes that the kanji character has. `{url}` | Address of the web page in which the kanji appeared in. -When creating your model for Yomichan, *make sure that you pick a unique field to be first*; fields that will +When creating your model for Yomitan, *make sure that you pick a unique field to be first*; fields that will contain `{expression}` or `{character}` are ideal candidates for this. Anki does not allow duplicate flashcards to be added to a deck by default; it uses the first field in the model to check for duplicates. For example, if you have `{reading}` configured to be the first field in your model and <ruby>橋<rt>はし</rt></ruby> is already in your deck, you will not @@ -221,7 +232,7 @@ be able to create a flashcard for <ruby>箸<rt>はし</rt></ruby> because they s ### Flashcard Creation -Once Yomichan is configured, it becomes trivial to create new flashcards with a single click. You will see the following +Once Yomitan is configured, it becomes trivial to create new flashcards with a single click. You will see the following icons next to term definitions: * Clicking ![](img/btn-add-expression.png) adds the current expression as kanji (e.g. 食べる). @@ -263,13 +274,13 @@ Shortcut | Action **I'm having problems importing dictionaries in Firefox, what do I do?** -Yomichan uses the cross-browser IndexedDB system for storing imported dictionary data into your user profile. Although +Yomitan uses the cross-browser IndexedDB system for storing imported dictionary data into your user profile. Although everything "just works" in Chrome, depending on settings, Firefox users can run into problems due to browser bugs. -Yomichan catches errors and tries to offer suggestions about how to work around Firefox issues, but in general at least +Yomitan catches errors and tries to offer suggestions about how to work around Firefox issues, but in general at least one of the following solutions should work for you: * Make sure you have cookies enabled. It appears that disabling them also disables IndexedDB for some reason. You - can still have cookies be disabled on other sites; just make sure to add the Yomichan extension to the whitelist of + can still have cookies be disabled on other sites; just make sure to add the Yomitan extension to the whitelist of whatever tool you are using to restrict cookies. You can get the extension "URL" by looking at the address bar when you have the search page open. * Make sure that you have sufficient disk space available on the drive Firefox uses to store your user profile. @@ -279,39 +290,39 @@ one of the following solutions should work for you: set to "Never remember history", IndexedDB access is once again disabled for an inexplicable reason. * As a last resort, try using the [Refresh Firefox](https://support.mozilla.org/en-US/kb/reset-preferences-fix-problems) feature to reset your user profile. It appears that the Firefox profile system can corrupt itself preventing - IndexedDB from being accessible to Yomichan. + IndexedDB from being accessible to Yomitan. **Will you add support for online dictionaries?** Online dictionaries will not be implemented because it is not possible to support them in a robust way. In order to -perform Japanese deinflection, Yomichan must execute dozens of database queries for every single word. Factoring in +perform Japanese deinflection, Yomitan must execute dozens of database queries for every single word. Factoring in network latency and the fragility of web scraping, it would not be possible to maintain a good and consistent user experience. -**Is it possible to use Yomichan with files saved locally on my computer with Chrome?** +**Is it possible to use Yomitan with files saved locally on my computer with Chrome?** -In order to use Yomichan with local files in Chrome, you must first tick the *Allow access to file URLs* checkbox -for Yomichan on the extensions page. Due to the restrictions placed on browser addons in the WebExtensions model, it -will likely never be possible to use Yomichan with PDF files. +In order to use Yomitan with local files in Chrome, you must first tick the *Allow access to file URLs* checkbox +for Yomitan on the extensions page. Due to the restrictions placed on browser addons in the WebExtensions model, it +will likely never be possible to use Yomitan with PDF files. **Is it possible to delete individual dictionaries without purging the database?** -Yomichan is able to delete individual dictionaries, but keep in mind that this process can be *very* slow and can +Yomitan is able to delete individual dictionaries, but keep in mind that this process can be *very* slow and can cause the browser to become unresponsive. The time it takes to delete a single dictionary can sometimes be roughly the same as the time it originally took to import, which can be significant for certain large dictionaries. -**Why aren't EPWING dictionaries bundled with Yomichan?** +**Why aren't EPWING dictionaries bundled with Yomitan?** The vast majority of EPWING dictionaries are proprietary, so they are unfortunately not able to be included in this extension due to copyright reasons. **When are you going to add support for $MYLANGUAGE?** -Developing Yomichan requires a decent understanding of Japanese sentence structure and grammar, and other languages +Developing Yomitan requires a decent understanding of Japanese sentence structure and grammar, and other languages are likely to have their own unique set of rules for syntax, grammar, inflection, and so on. Supporting additional languages would not only require many additional changes to the codebase, it would also incur significant maintenance overhead and knowledge demands for the developers. Therefore, suggestions and contributions for supporting -new languages will be declined, allowing Yomichan's focus to remain Japanese-centric. +new languages will be declined, allowing Yomitan's focus to remain Japanese-centric. ## Licenses @@ -329,10 +340,10 @@ Required licensing notices for this project follow below: ## Third-Party Libraries -Yomichan uses several third-party libraries to function. Below are links to homepages, snapshots, and licenses of the exact +Yomitan uses several third-party libraries to function. Below are links to homepages, snapshots, and licenses of the exact versions packaged. * Handlebars: [homepage](https://handlebarsjs.com/) - [snapshot](https://s3.amazonaws.com/builds.handlebarsjs.com/handlebars.min-v4.7.7.js) - [license](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.7/LICENSE) * JSZip: [homepage](https://stuk.github.io/jszip/) - [snapshot](https://github.com/Stuk/jszip/blob/v3.9.1/dist/jszip.min.js) - [license](https://github.com/Stuk/jszip/blob/v3.9.1/LICENSE.markdown) * WanaKana: [homepage](https://wanakana.com/) - [snapshot](https://unpkg.com/wanakana@4.0.2/umd/wanakana.min.js) - [license](https://github.com/WaniKani/WanaKana/blob/4.0.2/LICENSE) -* parse5: [homepage](https://github.com/inikulin/parse5) - [snapshot](https://github.com/inikulin/parse5/tree/v7.1.1/packages/parse5) - [license](https://github.com/inikulin/parse5/blob/v7.1.1/LICENSE) _(Only used in MV3 build)_ +* parse5: [homepage](https://github.com/inikulin/parse5) - [snapshot](https://github.com/inikulin/parse5/tree/v7.1.2/packages/parse5) - [license](https://github.com/inikulin/parse5/blob/v7.1.2/LICENSE) _(Only used in MV3 build)_ |