A full-featured immersion language learning suite for mobile.
GPL-3.0 License
Bot releases are visible (Hide)
Published by lrorpilla over 3 years ago
This release implements monolingual dictionary support for users who desire to use Japanese-to-Japanese dictionary definitions. The dictionary definitions are sourced from Goo.ne.jp. A new option is available in the player menu which will allow users to switch between bilingual and monolingual query modes, between Jisho.org and Goo.ne.jp respectively. The application will use bilingual definitions by default.
To users who were relying on the custom dictionary support implemented from 0.4, the legacy functionality remains intact: Term banks will override the bilingual dictionary mode if there are term bank files present in the term bank directory which can be set in the main menu. Make sure to move term banks to the new default directory to keep using it.
Using the built-in monolingual dictionary query mode is faster, grammar-aware, supports returning multiple definitions, does not stutter the video and does not require setting up term banks to get started. Definitions in the pop-up dictionary are selectable to allow for recursive look-ups.
Milestone: This release also marks 100 stars for the jidoujisho repository. Now, that's just an arbitrary metric, but to someone like me who thought there would not be much demand for this personal tool of mine, it really means a lot! To all users, passersby, lurkers, first-timers and loyal dedicated users - all of you who give feedback, send me private messages just to check in, report issues and reciprocate with my development process, from Reddit, Discord or by e-mail -- Thank you for your support! I'll continue to work hard to make mobile language learning effortless, engaging and foolproof.
System Requirements: This application has been tested by myself and other users to work on a variety of real-world devices and emulators running Android 7 and above (thanks to Hexavall). If the installation fails, try clearing enough storage space (Cheers to kekkonkinenbi for letting me know).
Developer Note: Monolingual dictionary support has been a well requested feature ever since the first release, and this release properly implements it, compared to the experimental placeholder I quickly hacked together in 0.4. I've always been telling myself that sooner or later, I want to undergo a monolingual transition. This should give me the push to go that distance, and I hope that this feature can also help other users to finally take that leap!
The files are split between the different device architectures to save user download bandwidth and storage space. Depending on which device you are using, download the appropriate APK
by expanding the "Assets" drop-down menu below.
Test each APK
available for each architecture. If you're not sure, the arm64
download should be suitable for most mobile devices.
Published by lrorpilla over 3 years ago
This release implements several user suggested enhancements, such as subtitle delay adjustment, export of multiple subtitles and focus mode detailed below (feature requests by coredump, Hexavall and sp3ctum). Users may now hold on a subtitle on the transcript later than the current subtitle in order to export an Anki card with an extended audio timing and concatenated subtitles. Users may now also adjust the subtitle delay for their videos.
These features are an early preview of what I wish to achieve with these features and may change with later minor releases based on user feedback. If exporting a card with multiple subtitles, it may take some time for the card to export the necessary resources.
System Requirements: This application has been tested by myself and other users to work on a variety of real-world devices and emulators running Android 7 and above (thanks to Hexavall). If the installation fails, try clearing enough storage space (Cheers to kekkonkinenbi for letting me know).
* feature request by sp3ctum
The files are split between the different device architectures to save user download bandwidth and storage space. Depending on which device you are using, download the appropriate APK
by expanding the "Assets" drop-down menu below.
Test each APK
available for each architecture. If you're not sure, the arm64
download should be suitable for most mobile devices.
Published by lrorpilla over 3 years ago
Published by lrorpilla over 3 years ago
This release implements support for videos with Japanese automatic captions via youtube-dl (feature request by gimmer123). This new option can be found in the audio/subtitle menu when watching a YouTube video.
When first attempting to request automatic captions, the app will set up the required dependencies. This may require the user to clear some space on their device. Please do not interrupt this one-time initialization. The automatic captions will then play, if available. A message will indicate if automatic captions could not be queried. Please be advised that the automatic captions are YouTube's best effort, and critical inaccuracies are to be expected.
On File Size: Users may notice that the app's binary size has grown quite large. This is due to an increasing number of dependencies packaged in the application. It is my aim to not grow this any further as the project looms towards a stable release candidate.
In the future, I may decide to provide some of the dependencies on-demand as an optional download for users that feel like there are some features they would never really use. For the purposes of this beta and to account for fast iteration, all dependencies and features are included in a single package.
System Requirements: I have tested this application to work on a variety of real-world devices and emulators running Android 8 and above. If the installation fails, try clearing enough storage space (Cheers to kekkonkinenbi for letting me know).
util.dart
into several purposefully named files, global variables emphasised in its own fileDeveloper Note: This brings in a lot of potential for study, since a lot of videos are in Japanese but do not provide proper closed captions. However, please be advised that there may be critical errors in these automatically generated captions. A video having automatic captions available is the farthest thing from a statement of quality or correctness.
The files are split between the different device architectures to save user download bandwidth and storage space. Depending on which device you are using, download the appropriate APK
by expanding the "Assets" drop-down menu below.
Test each APK
available for each architecture. If you're not sure, the arm64
download should be suitable for most mobile devices.
Published by lrorpilla over 3 years ago
This release implements some significant new options to the main menu with channels and search history. Users will be able to add channels they wish to subscribe to within the app in a tab in the new bottom navigation bar. Search history and suggestions are now added when using the search bar. Some minor fixes are also detailed in the release notes below.
To facilitate ease of use and encourage use of this new feature, users may long press on any video in trending or search to list a channel they wish to subscribe to. This release also exists so people can know I know how semantic versioning works lmao.
Android 11 users: The versions between Android 11 and below are no longer separate. I have tested changes on an Android 11 emulator that allow use of the app on Android 11 without any additional steps. For testing purposes, here is the workaround to export files on Android 11. In case issues persist, please let me know as soon as possible.
unofficial_jisho_api_dart
for newer youtube_explode_dart
featuresThe files are split between the different device architectures to save user download bandwidth and storage space. Depending on which device you are using, download the appropriate APK
by expanding the "Assets" drop-down menu below.
Test each APK
available for each architecture. If you're not sure, the arm64
download should be suitable for most mobile devices.
Published by lrorpilla over 3 years ago
This release implements on-device text segmentation with ve_dart, my Dart implementation of the Ve linguistic framework used in Jisho.org. Users will now experience the same latency in both tap and drag text selection modes. A big thanks to Kim Ahlström for pointing me in the right direction!
0.9 introduces many vital user experience improvements necessary to bring this application closer to a stable candidate release! In addition, 0.9.1 adds video quality selection for YouTube videos. More are detailed in the release notes below.
Android 11 users: The versions between Android 11 and below are no longer separate. I have tested changes on an Android 11 emulator that allow use of the app on Android 11 without any additional steps. For testing purposes, here is the workaround to export files on Android 11. In case issues persist, please let me know as soon as possible.
Other Android version users: I have been made aware of a startup issue on Android 6 where the app remains on white screen. I have tested the app on very recent Android versions, but lack the time at present to investigate that the app works with every single device form factor and Android version. If possible, please report what you suspect may be Android version-specific or device specific issues. I highly appreciate everybody's feedback. Thank you very much.
SRT
, ASS
or SSA
formatThe files are split between the different device architectures to save user download bandwidth and storage space. Depending on which device you are using, download the appropriate APK
by expanding the "Assets" drop-down menu below.
Test each APK
available for each architecture. If you're not sure, the arm64
download should be suitable for most mobile devices.
Published by lrorpilla over 3 years ago
This release improves the reliability of dictionary entry results. Tap to search terms are now directly obtained by scraping Jisho.org for text segmentation results. In addition, users may now see alternative dictionary entry results and scroll left or right to choose whichever they want to view and export. Changes to the tap to search subtitle widget and dictionary pop-up are also detailed below.
Android 11 users: A reminder that use of the app on Android 11 and above requires a workaround in regards to storage permission which fixes issues with exporting to AnkiDroid. Please do not forget to read how to set up the required workaround to export files on Android 11.
The files below include those tagged android11
and otherwise. Pick the appropriate file for your Android version.
android11
.android11
.Published by lrorpilla over 3 years ago
This release implements morphological analysis of subtitles with the MeCab text segmentation library, enabling users to tap to select words in the subtitles during video playback.
In the menu, users will find a new option that will allow them to freely toggle between "Tap to Select" and "Drag to Select" text selection modes. The app will always default to the last used text selection mode. More details on the decisions and approaches towards handling text segmentation and selection in this application is detailed below the release notes.
Android 11 users: A reminder that use of the app on Android 11 and above requires a workaround in regards to storage permission which fixes issues with exporting to AnkiDroid. Please do not forget to read how to set up the required workaround to export files on Android 11.
Since the release of this application, I have talked with several users about text segmentation, and they were curious as to why I initially implemented drag to select instead of the tap to select feature debuting with this release. The implementation of this well desired mode has many jagged edges made to look pretty -- it's not some super complex computer science problem, but it took quite a while to figure out how to get it to this point where it works and appear decently enough that I feel compelled to write about it.
With drag to select, two text widgets are overlaid on top of each other and made to be interactive, as you would with a text field, which was very intuitive. With tap to select, the subtitles are first run through the MeCab parser, newlines and spaces replaced with appropriate delimiters and then split into morphemes that make up separate interactive widgets that can be clicked.
The root widget that displays all subtitles is two nested builders, one for the translucent outline and another for the white text, just like the above paragraph. But instead of simple text widgets, it uses a generator to build rows with a list of list of strings, and within each row or line of text is a list of strings for which each element must build a text widget with the appropriate on-click callback. When generating the list of list of strings from the tokens returned from the MeCab parser, each list must be cut once a newline delimiter is found or if it is getting too long and may overflow when rendered.
Luckily, getting the definition is much easier. The entire text selection from the morpheme selected to the end of string is passed to Jisho.org, and I was very thankful that they always return a result relevant to the head of the string I send to their API. It's a very hacky implementation that doesn't involve implementing the Jisho.org parser itself in Dart (which I may plan to do if I ever try to get the app to work independently of Jisho.org when offline, and thanks to a response from Kim from Jisho.org, I may be able to get to that soon), but it works - and was a very fun test of what I can do with Flutter widgets.
Splitting Japanese characters into the individual words with perfect results may still be a problem for machines (and really much of the work is still done by Jisho's Ve parser here), but the end result is very much functional, and many users may decide to go with it. However, in the edge cases, it may cause more frustration than convenience. And as proclaimed time and again by immersion learners, "Language is highly specific in unpredictable ways".
With very informal or so language, a human can know where they should start the text selection and end it to get exactly what they want to query, but with an algorithm deciding the selection, it may lead to frustration. Users can get irritated more than occasionally realising the machine has selected text for them that they don't think was right at all - and that's even before they see the definition output. That's why rather than that, I offer the drag to select option for the user to decide exactly what they want to know -- especially because occasionally even Jisho.org returns blanks for a lot of words that a human would know from intuition. In addition, I am of the belief that intermediate learners must develop the skill of breaking down the words to what they see and work towards to the point of being advanced to pick whatever they want.
In the end, tap to select is faster while drag to select is more precise -- and as a project like this must ideally be unopinionated for any learner to use and pick up, I worked quite hard and enjoyed getting both modes to feature parity. I hope that any and all users enjoy whichever mode they choose, and I hope to further improve the text segmentation of this application. Any feedback on the feature is much appreciated.
The files below include those tagged android11
and otherwise. Pick the appropriate file for your Android version.
android11
.android11
.Published by lrorpilla over 3 years ago
This release deprecates share intent and implements the AnkiDroid API so that users will no longer need to navigate the share menu and then select AnkiDroid when exporting. Users will receive a one-time permission prompt in regards to card export.
In addition, users will now very easily be able to change the Anki output to their desired format as the card fields have been separated from front to back values to image, audio, sentence, word, meaning and reading values. This means that cards can now flexibly be customised with CSS.
Android 11 users: A reminder that use of the app on Android 11 and above requires a workaround in regards to storage permission which fixes issues with exporting to AnkiDroid. Please do not forget to read how to set up the required workaround to export files on Android 11.
white-space: pre-line;
under .card
to allow newlines in the meaning (update the template through this guide or delete the existing card template)The files below include those tagged android11
and otherwise. Pick the appropriate file for your Android version.
android11
.android11
.Published by lrorpilla over 3 years ago
This release migrates the app's video player from ExoPlayer to VLCKit thanks to the flutter_vlc_player plugin, and is a significant fix to issues #2 and #3 which prevented some videos, typically encoded in H.265, from being played.
As a side-effect of the migration, when a video is in playback, the app will force landscape mode for a smooth playback experience. Solutions to get rid of orientation issues are under investigation.
Android 11 users: A reminder that use of the app on Android 11 and above requires a workaround in regards to storage permission which fixes issues with exporting to AnkiDroid. Please do not forget to read how to set up the required workaround required to export files on Android 11.
The files below include those tagged android11
and otherwise. Pick the appropriate file for your Android version.
android11
.android11
.Published by lrorpilla over 3 years ago
これはWeblio.jp英→和辞書サポートを実装した「jidoujisho for English」のデビューリリース候補です。
まだ日本語を勉強、間違えたら教えてください。機能一覧やアプリの使い方はこちらのプロジェクトのメインのREADMEをご覧ください。今のところ英語のみで申し訳ありません。
将来的には、英語→日本語と日本語→英語を一つのアプリに統合する予定です。
jidoujishoは、特に言語学習者のために役立つ機能を備えたAndroidのビデオプレーヤーです。
Published by lrorpilla over 3 years ago
This release introduces an overhaul to the main menu which allows searching of YouTube videos with an added indication for whether or not Japanese closed captioning is available.
In addition, exporting a card to AnkiDroid from a YouTube video should now include the current frame and audio which was not the case in older versions. To play local media in this new version, click on the floating button on the lower right of the main menu.
Android 11 users: A reminder that use of the app on Android 11 and above requires a workaround in regards to storage permission which fixes issues with exporting to AnkiDroid. Please do not forget to read how to set up the required workaround required to export files on Android 11.
Published by lrorpilla over 3 years ago
This release candidate introduces an overhaul to the main menu which allows searching of YouTube videos with an added indication for whether or not Japanese closed captioning is available. The search feature is currently not stable, but works for most terms and should be fixed in a later version. If not, you can still enter a YouTube URL. Later when this version is out of preview, the intention is to have the latest trending videos in Japan shown on app launch.
In addition, exporting a card to AnkiDroid from a YouTube video should now include the current frame and audio which was not the case in older versions. To play local media in this new version, click on the floating button on the lower right of the main menu.
Android 11 users: A reminder that use of the app on Android 11 and above requires a workaround in regards to storage permission which fixes issues with exporting to AnkiDroid. Please do not forget to read how to set up the required workaround required to export files on Android 11.
Published by lrorpilla over 3 years ago
This release introduces ASS and SSA subtitle support and fixes to experimental YouTube support. Problems with some YouTube videos not loading should now be fixed, and ASS and SSA files should now be importable via the "Load External Subtitles" option.
A reminder that 0.4 requires a hotfix in regards to storage permission which fixes issues with users below Android 11 from exporting to AnkiDroid. Also, please do not forget to read how to set up the required workaround required to export files on Android 11.
Published by lrorpilla over 3 years ago
This is a release candidate for 0.4, which introduces custom dictionary support for those compatible with Yomichan. The dictionary tested to function for this build is Shinmeikai. As this is the initial rollout of this feature, please report back and make a GitHub issue if there are any huge inconsistencies (e.g. definition lookups you are unhappy with, glaring issues overlooked) you find with this feature.
0.4.2 includes a hotfix in regards to storage permission which prevented users below Android 11 from exporting to AnkiDroid.
(Android 11 users) Please download the APK specified to you below suffixed android_11
. From now on, Android 10 users and below and Android 11 users will be provided separate downloads. More details on how the changes to scoped storage is affecting the development of this app will be added later onwards. Also, please do not forget to read how to set up the required workaround required to export files on Android 11.
This is very outdated information. Legacy dictionary support is long gone and replaced with the more polished Yomichan dictionary support implemented in 0.24 and with a much more straightforward import option. This guide exists for historical and archival purposes.
term_bank_
JSON files in your dictionary archive and place them in the storage/emulated/0/com.lrorpilla.jidoujisho/files
folder.storage/emulated/0/jidoujisho
by default and can be set in the main menu.Published by lrorpilla over 3 years ago
Until more elegant solutions are available, this is required to use the export feature on Android 11. The app has been tested to function along with AnkiDroid export with this workaround on an Android 11 emulator.
This is a pre-release build of 0.3.2 fixing issue #1 by targeting SDK 30, which should allow Android 11 users to install and use the application. Due to the implementation of scoped storage, using this app in Android 11 requires "All files" storage permission to export cards to AnkiDroid.
Published by lrorpilla over 3 years ago
This is a hotfix that allows users running 5.0 Lollipop to 6.0 Marshmallow to run the app.
Published by lrorpilla over 3 years ago
First public beta release of jidoujisho. Changes for other versions prior to this release are included below for documentation.