jidoujisho icon indicating copy to clipboard operation
jidoujisho copied to clipboard

A full-featured immersion language learning suite for mobile.

jidoujisho

A highly versatile and modular framework enabling language-agnostic immersion learning on mobile.

Latest GitHub Release:
1.1 ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ฐ๐Ÿ‡ท

Chisa Releases:
1.0 ยท 1.1

Legacy Releases:
0.3 ยท 0.4 ยท 0.5 ยท 0.6 ยท 0.7 ยท 0.8 ยท 0.9 ยท 0.10 ยท 0.11 ยท 0.12 ยท 0.13 ยท 0.14 ยท 0.15 ยท 0.16 ยท 0.17 ยท 0.18 ยท 0.19 ยท 0.20 ยท 0.21 ยท 0.22 ยท 0.23 ยท 0.24 ยท 0.25 ยท 0.26

๐Ÿ“š Uninterrupted language immersion at your fingertips

jidoujisho is an Android video player, reader assistant, image mining workflow and card creation toolkit with features specifically helpful for language learners.

  • [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 available to download here on GitHub. 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

๐Ÿ“– 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. Here is a fair sample of YouTube videos with such subtitles showcasing some very practical application use cases.

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.

๐Ÿš€ Getting Started

A primer on the basics of the application is as follows.

  • ๐Ÿ“ฒ Download and install the latest beta 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 kitsunekko
  • ๐Ÿ“š Users may import their own Yomichan custom dictionaries for offline use and instant lookups, some can be found here
  • ๐Ÿคš 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
  • โœ‚๏ธ Crop manga panels before exporting them within the Creator to have better context for your cards

๐Ÿ‘ฅ Contribution and attribution

jidoujisho is written in Dart and powered by Flutter. Reader WebView linked to ใƒƒใƒ„ Ebook Reader. Video streaming via YouTube. Image search via Bing. Audio search via Forvo. Example sentences from Massif and Tatoeba.

Natural language processing tools include jieba for Chinese via Chaquopy, Ve and MeCab for Japanese and MeCab for Korean. Japanese pitch accent patterns are sourced from Kanjium. Optical character recognition powered by Google ML Kit.

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, making a donation or collaborating with me on further improvements.

The logo of the application is both by suzy and Aaron Marbella, support their awesome work if you can!

โš–๏ธ Licensing

Chaquopy: jidoujisho makes use of Chaquopy to run Python packages on Android devices, and has been granted a free open-source license to use the SDK. If you wish to build from source and make code changes to the project, inquire for the license key.

Kanjium: 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.