-
-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9b824da
commit 004bde1
Showing
1 changed file
with
178 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,184 @@ | ||
# chisa | ||
<p align="center"> | ||
<img src="https://github.com/lrorpilla/jidoujisho/blob/main/assets/icon/icon.png" width="250" height="250"> | ||
</p> | ||
|
||
A new Flutter project. | ||
<h3 align="center">jidoujisho</h3> | ||
<p align="center">A highly versatile and modular framework enabling language-agnostic immersion learning on mobile.</p> | ||
|
||
## Getting Started | ||
<p align="center" style="margin:0"><b>Latest GitHub Release:<br> | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/1.0.0">1.0.0</a> 🇨🇳 🇯🇵 🇰🇷</b><br> | ||
</p> | ||
|
||
This project is a starting point for a Flutter application. | ||
<p align="center" style="margin:0"><b>Release Archive:<br> | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.3.0-beta">0.3</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.4-beta">0.4</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.5.2-beta">0.5</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.6.1-beta">0.6</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.7.2-beta">0.7</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.8.1-beta">0.8</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.9.3-beta">0.9</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.10.0-beta">0.10</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.11.3-beta">0.11</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.12.4-beta">0.12</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.13.7-beta">0.13</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.14.2-beta">0.14</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.15.8-beta">0.15</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.16.7-beta">0.16</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.17.4-beta">0.17</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.18.1-beta">0.18</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.19.1-beta">0.19</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.20.1-beta">0.20</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.21.2-beta">0.21</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.22.1-beta">0.22</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.23.2-beta">0.23</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.24.5-beta">0.24</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.25.12-beta">0.25</a> · | ||
<a href="https://github.com/lrorpilla/jidoujisho/releases/tag/0.26.3-beta">0.26</a> | ||
</b></p> | ||
|
||
A few resources to get you started if this is your first Flutter project: | ||
# 📚 Uninterrupted language immersion at your fingertips | ||
|
||
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) | ||
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) | ||
**jidoujisho** is an Android video player, reader assistant, image mining workflow and card creation toolkit with features specifically helpful for language learners. | ||
|
||
For help getting started with Flutter, view our | ||
[online documentation](https://flutter.dev/docs), which offers tutorials, | ||
samples, guidance on mobile development, and a full API reference. | ||
- [x] Text selection of subtitles allows for **quick dictionary lookups within the application** | ||
- [x] **Export cards to AnkiDroid**, complete with a snapshot and audio of the current context | ||
- [x] Selecting a word allows export to AnkiDroid with the **sentence, answer, meaning and reading** | ||
- [x] Morphological analysis of subtitles allows either **tap selection** or **drag selection** of subtitles | ||
- [x] **Repeat the current subtitle from the beginning** by flicking horizontally | ||
- [x] Swipe vertically to open the **transcript to jump to time and review subtitles** | ||
- [x] **YouTube playback support** for videos with **Japanese closed captions** | ||
- [x] Use **card creator mode** to quickly **search images and definitions** with imported photos and text | ||
- [x] **Dictionary tab remembers words queried** for review between sessions and **allows resuming back to context** | ||
- [x] Import **Yomichan archive dictionaries** and export cards **with pitch accent information** from Kanjium | ||
- [x] **Frictionless sentence mining workflow for readers** via **ッツ Ebook Reader** | ||
- [x] **Mine manga with an image mining workflow** with optical character recognition powered by **Google ML Kit** | ||
- [x] Use the **built-in browser** to read and mine words on a website on mobile, or even **use your camera** | ||
|
||
# ⚕️ Current state of the project | ||
|
||
**jidoujisho is back in development, and is open to contribution and pull requests. If you are interested in maintaining a language, dictionary format, media source or an enhancement for the application, developer documentation is coming soon.** | ||
|
||
Originally built for the Japanese language learning community, the application is free and open source software, and is <b><a href="https://github.com/lrorpilla/jidoujisho/releases">available to download here on GitHub.</a></b> Current features planned on the roadmap are listed below, but as of now there is no estimate on any updates. | ||
|
||
Please note that the development of the app switches between changes being implemented and being left alone for daily use. Update frequency may depend on the gravity of any issues that arise. **Hiatuses provide practical insight on usage and where development should go next.** | ||
|
||
### 🚅 Next Up | ||
- [x] Fixes for **slow video loading due to scoped storage** and **H.265 video playback** | ||
- [x] **Use of the AnkiDroid API** instead of share intent to streamline card export and Anki output customisation | ||
- [x] **Morphological analysis of subtitles** for better text selection | ||
- [x] Improved **monolingual dictionary support** | ||
- [x] **Various immersion modes** for oral practice | ||
- [x] Include **pitch accent information** in dictionary and exported cards | ||
- [x] **Reader enhancements** for manga and novel sentence mining | ||
- [x] **Instant queries and offline use** via support of Yomichan archive format dictionaries | ||
- [ ] Documentation for developing **custom languages, media sources, enhancements and dictionary formats** | ||
- [ ] **Improve text segmentation** and custom dictionaries query results | ||
- [ ] Dedicated **Android TV experience** with a remote control | ||
- [ ] HTML summary tags for **dual query mode** | ||
|
||
### 🛣️ Stretch Goals | ||
- [x] **Extensive language support with text segmentation** for other languages | ||
- [ ] Tinker around with releasing the app on **other platforms if possible** | ||
|
||
# 🎞️ A glimpse of jidoujisho in action | ||
|
||
<p align="center" style="margin:0"> | ||
<img src="https://i.postimg.cc/jSsWgk5q/Screenshot-20211127-190405.jpg" width="24%"> | ||
<img src="https://i.postimg.cc/kMbtBbzC/Screenshot-20211127-190416.jpg" width="24%"> | ||
<img src="https://i.postimg.cc/L6kYVMm0/Screenshot-20211127-190421.jpg" width="24%"> | ||
<img src="https://i.postimg.cc/ydSWgMfj/Screenshot-20211127-161905.jpg" width="24%"> | ||
</p> | ||
<p align="center" style="margin:0"> | ||
<img src="https://i.postimg.cc/cCwKjpwC/Screenshot-20211127-190626.jpg" width="32%"> | ||
<img src="https://i.postimg.cc/nr4zTvfQ/Screenshot-20211127-162428.jpg" width="32%"> | ||
<img src="https://i.postimg.cc/gjFjvgQW/Screenshot-20211127-162355.jpg" width="32%"> | ||
</p> | ||
<p align="center" style="margin:0"> | ||
<img src="https://i.postimg.cc/RhHChwZD/Screenshot-20211127-191210.jpg" width="24%"> | ||
<img src="https://i.postimg.cc/zXTWPgF7/Screenshot-20211127-191236.jpg" width="24%"> | ||
<img src="https://i.postimg.cc/DwFsVwCT/Screenshot-20211127-192148.jpg" width="24%"> | ||
<img src="https://i.postimg.cc/qgHJ3gtM/Screenshot-20211127-192340.jpg" width="24%"> | ||
</p> | ||
<p align="center" style="margin:0"> | ||
<img src="https://i.postimg.cc/kM0KccKD/Screenshot-20211127-190916.jpg" width="32%"> | ||
<img src="https://i.postimg.cc/432hhbXf/Screenshot-20211127-191023.jpg" width="32%"> | ||
<img src="https://i.postimg.cc/3r42m6yP/Screenshot-20211127-191054.jpg" width="32%"> | ||
</p> | ||
|
||
# 📖 Using the application | ||
|
||
### 🚨 Supported Formats | ||
|
||
jidoujisho will take **video and audio formats as supported by VLC**. Subtitles may be embedded within the video being played and selected during playback. | ||
|
||
If you wish to use external subtitles, they may be in **SRT, ASS or SSA format** and you may import them during playback through the menu. You may switch between different audio and subtitle tracks. Image-based subtitles such as PGS are not currently supported. | ||
|
||
**YouTube closed captions** are taken from TimedText XML, which is only publicly exposed to videos that have user-generated Japanese subtitles. <b><a href="https://www.youtube.com/watch?v=mZ0sJQC8qkE">Here is a fair sample of</a> <a href="https://www.youtube.com/watch?v=X9zw0QF12Kc">YouTube videos with such subtitles</a> <a href="https://www.youtube.com/watch?v=t1yXDcuwzpY">showcasing some very practical application use cases.</a></b> | ||
|
||
Manga or comics can be viewed by selecting a folder containing chapter subfolders containing images. | ||
|
||
### ☝️ Important Links | ||
|
||
The following links below may contain outdated information and pursuits, but remain for documentation purposes. | ||
* <b><a href="https://github.com/lrorpilla/jidoujisho/blob/main/TEMPLATE.md">jidoujisho Anki Template</a></b> | ||
* <b><a href="https://reddit.com/r/LearnJapanese/comments/lcf9wi/jidoujisho_a_mobile_video_player_tailored_for/">Debut Reddit discussion thread</a></b> | ||
* <b><a href="https://old.reddit.com/r/LearnJapanese/comments/mp75r3/jidoujisho_09_development_update/">Dev update (0.9) Reddit discussion thread</a></b> | ||
|
||
### 🚀 Getting Started | ||
|
||
A primer on the basics of the application is as follows. | ||
|
||
* 📲 <a href="https://github.com/lrorpilla/jidoujisho/releases/"/>**Download and install the latest beta**</a> onto your Android device | ||
* ⏯️ Watch a video with the *Player* selecting from your **local media library** or **picking a YouTube video** | ||
* 📚 Start a novel with the *Reader* to launch ッツ Ebook Reader to read an **EPUB** or **HTMLZ** file | ||
* 🖼 Read manga by selecting the *Viewer* and selecting a folder containing chapter subfolders containing images | ||
* 📋 Select text with **tap to select** or **drag to select** | ||
* 📔 When the **dictionary definition** for the text shows up, the text is the **current context** | ||
* 🗑️ Closing the dictionary prompt will **clear the clipboard** | ||
* 🌐 Switch between dictionaries by **holding on the headword** or **swiping vertically** in the pop-up dictionary | ||
* ↕️ You may **swipe vertically to open the transcript** in the player, and pick a time or read subtitles | ||
* ↔️ **Swipe horizontally** in the player to repeat the current subtitle audio | ||
* ➕ **Swipe left or right on dictionary results** to scroll through multiple definitions | ||
* 👁️🗨️ In the *Viewer*, **users can use optical character recognition** to get text from an image | ||
|
||
### 📲 Exporting to AnkiDroid | ||
|
||
* 📤 You may also export the current context to an **AnkiDroid card, including the current frame and audio** | ||
* 🔤 Having a word in the clipboard **will include the sentence, word, meaning and reading** in the export | ||
* 📝 **You may edit the sentence, word, meaning and reading text fields** before exporting to AnkiDroid | ||
* 🃏 The **front of the card** will include only the **sentence** | ||
* 🎴 The **back of the card** will include the **audio, image, reading, word and meaning** | ||
* 📑 You may apply **text formatting to the card with the AnkiDroid editor once exported** | ||
* ⚛️ **Customisation of the Anki export** is possible by changing the default template in AnkiDroid | ||
|
||
### 🙌 Advanced User Tips | ||
|
||
* 🇯🇵 Can't find Japanese subtitles for your media? Try finding what you need at <b><a href="https://kitsunekko.net">kitsunekko</a></b> | ||
* 📚 Users may import their own <b><a href="https://foosoft.net/projects/yomichan/">Yomichan</a></b> custom dictionaries for offline use and instant lookups, <b><a href="https://foosoft.net/projects/yomichan/">some can be found here</a></b> | ||
* 🤚 **Hold onto the headword or swipe vertically** in the pop-up dictionary to **quickly switch between dictionaries** | ||
* 📑 **External subtitles with the same name as the selected video file** will be loaded by default | ||
* ⏲️ If your subtitles are off, you can **set the delay** or **pad the exported audio time with an allowance** | ||
* ▶️ A **resume button** is at the top of the main menu, and **returns to last video or book** | ||
* ⌛ Users may select *Context* from a dictionary result to go back to the **exact duration in video** or **scroll position in book** | ||
* ⛓️ Channels may also be added by **pasting a link of any video by the channel** in *List new channel* | ||
* 🏢 You may also watch videos from your **Plex server** or a direct network stream link | ||
* ✊ **Export a range of multiple subtitles** by holding onto a subtitle aside from the current one in the transcript | ||
* ⚠️ **If AnkiDroid is not running in the background**, tap on the export message to open it | ||
* 🗃 **The AnkiDroid deck you last export to will be remembered** for your next export | ||
* 📹 The quality closest to the **last selected quality** will be selected by default for YouTube videos | ||
* 📢 **Automatic captions** are more excellent in **podcasts and news programs** with clear speakers | ||
* ✂️ **Crop manga panels before exporting them** within the *Creator* to have better context for your cards | ||
|
||
# 👥 Contribution and attribution | ||
|
||
jidoujisho is written in <b><a href="https://dart.dev/">Dart</a></b> and powered by <b><a href="https://flutter.dev/">Flutter</a></b>. Reader WebView linked to <b><a href="https://ttu-ebook.web.app">ッツ Ebook Reader</b></a>. Video streaming via <b><a href="https://youtube.com/">YouTube</a></b>. Image search via <b><a href="https://bing.com//">Bing</a></b>. | ||
|
||
Natural language processing tools include <b><a href="https://github.com/fxsjy/jieba">jieba</a></b> for Chinese, <b><a href="https://github.com/Kimtaro/ve">Ve</a></b> and <b><a href="https://pub.dev/packages/mecab_dart">MeCab</a></b> for Japanese and <a href="https://github.com/shirakaba/mecab-ko"><b>MeCab</a></b> for Korean. Japanese pitch accent patterns are sourced from <b><a href="https://github.com/mifunetoshiro/kanjium">Kanjium</a></b>. Optical character recognition powered by <b><a href="https://developers.google.com/ml-kit">Google ML Kit</b></a>. | ||
|
||
If you like what I've done so far, you can help me out by testing the application on various devices so that I can gauge the compatibility of the application with different versions of Android, <b><a href="https://www.buymeacoffee.com/lrorpilla">making a donation</a></b> or collaborating with me on further improvements. | ||
|
||
The logo of the application is both by <b><a href="https://88suzysuzy.carrd.co/">suzy</b></a> and <b><a href="https://www.buymeacoffee.com/marblesaa">Aaron Marbella</a></b>, support their awesome work if you can! | ||
|
||
# ⚖️ Licensing | ||
|
||
<a href="https://github.com/mifunetoshiro/kanjium"><b>Kanjium</b></a>: The pitch accent notation, verb particle data, phonetics, homonyms and other additions or modifications to EDICT, KANJIDIC or KRADFILE were provided by Uros O. through his free database. |