Releases: arianneorpilla/jidoujisho
0.25.12-beta
This release implements term and definition tags present in Yomichan format dictionaries and greatly improves the sorting of custom dictionary search results.
Users will need to reimport their dictionaries or clear their application data in order to effectively see changes in the application. This release doesn't quite cover frequency and pitch accent dictionaries that use Yomichan's term bank meta schema just yet, further support for other non-dictionaries of Yomichan dictionaries will be covered later.
Developer Note: Custom dictionary support may require more rigorous testing against a broad variety of Yomichan format dictionaries. If there any issues related to import and how the results are parsed or displayed, let me know.
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 6 and above.
Features that are enabled by text segmentation are available on Android devices with a version greater or equal to Android 7 (thanks to howalon for testing). Use of custom dictionaries requires Android 7 or above. If the installation fails, try clearing enough storage space. Please note that a significant amount of internal storage space may be taken up by the dictionary database for indexing in order to optimize query speed and performance.
0.25-beta
- (New Feature) Yomichan Dictionary Tag Support - Imported Yomichan dictionaries will now show their tags all across the application, and can be tapped for tag details
- Custom dictionary definitions with merged results will now separately also show individual definitions and tags
- Priority of search results has been drastically improved by taking advantage of term and definition tag counts and popularity parameters
- Improved reliability of tap to select of off-by-one/two text segmentation failures with no search results by omitting last character as a last resort only when using custom dictionaries
- Searching in any custom dictionary will allow users to see improvements, term tags are shared across all definitions and tags allowing users to take advantage of popular tags from a single imported dictionary
- Dictionary history and database will be cleared in this version to ensure compatibility with new features, users will need to reimport their dictionaries
- Vertical swiping on the player or reader pop-up dictionary is now a quick gesture for switching between dictionaries (feature request by Saku)
- Addressed the critical ballooning of the application's install package and halved its file size
- The dictionary name is now included among the tags of results to appropriately communicate to the user the source of the result or the current dictionary
- Various user interface color scheme changes have been made across the application
- Fixed a layout related issue where if the search term was too long the search result details at the bottom of a dictionary entry would not elegantly wrap and newline
- Changed import progress messages to indicate number of tags and also to properly give time to communicate to the user that an import has failed
- (Hotfix) Fixed an issue (#26) where dictionaries with double values for popularity such as JMdict V2 could not be imported as an integer was used (thanks to Feripe-a for the report)
0.25.1-beta
- Implemented database indexing for dictionary entries and tags in order to significantly improve query speed when multiple dictionaries are installed, existing users may need to start from a fresh installation
- Fixed an oversight where the entry number at the bottom of the pop-up dictionary did not change for the pop-up dialog on the dictionary menu
- (Hotfix) Fixed a long standing issue (#4) with the VLC player where muxing individual YouTube audio and video streams could have issues when seeking, as a best effort for compatibility only AVC1 codec streams will be parsed (thanks to sp3ctum for the report)
- (Hotfix) Fixed an oversight where the no search results found message would have reversed swipe controls for next and previous dictionary
0.25.2-beta
- To allow for partial results when the text selection is greater than expanded as per (#28), the first word found in text segmentation will now be used as a fallback search term if no exact matches are found (feature request by ttu-ttu)
- Addressed an inconsistency where export message did not show for exporting sentences from the reader and fixed export message to be consistent with the rest of the UI
- Fixed an issue where backlashes would sometimes appear for newlines in YouTube closed captions
- Fixed an oversight where
Latin Filter Mode
did not function and added some additional characters to the filter - Fixed some layout issues involving some scrollbars not having the appropriate color
0.25.3-beta
- As per (#27), subtitles will now show when pausing in
Listening Comprehension Mode
(feature request by T1CkShot) - The player menus will now be scrolled at the bottom by default in order to ensure that users with very short device widths are always able to access commonly used options at the bottom quickly
- Fixed some text widget inconsistencies in the casting menu
- (Hotfix) Fixed an issue where shadowing mode was enabled when starting up a video
- (Hotfix) Fixed UI inconsistencies involving text edit field prefix icon color
0.25.4-beta
- Fixed a critical issue where some subtitles would not import due to regular expression used to parse SRT
0.25.5-beta
- Added an option for a regular expression filter under
Subtitle Timing and Appearance
to allow users to hide Furigana from displays as per (#32) and the Yomichan solution to this similar issue - To possibly address (#31), changed the player widget so that it would not be reactive to the current screen size
- Applied some optimizations to the subtitle widget to address frame drops, this may require more investigation
- Fixed a UI inconsistency with the sentence text field having a red suffix icon on hover
0.25.6-beta
- Videos that have been watched to 90% progress will now save progress at duration zero to allow users to replay easier
- Tapping and selecting in the reader will result to the search term being copied to clipboard
- Improved the search responsiveness of tap to select in the player
- Fixed an issue where the regular expression result was not trimmed on screen and on export after filtering and an inconsistency where the transcript still showed the unfiltered text
- Fixed an issue where copying text from the creator will result to a search when returning to the reader
0.25.7-beta
- Fixed an issue where a grey screen may appear when the tap to select subtitles widget would overflow and become too long
0.25.8-beta
- Fixed an oversight where clicking on a YouTube search suggestion did not hide the keyboard
- Addressing (#34), fixed an issue where embedded subtitles indexed 10 or above could not be switched to and extraction was not performed (thanks to vladz0r for the report)
- Fixed an issue where external subtitles were included as an option among listed embedded subtitles
- A
.nomedia
file is now added to thestorage/emulated/0/DCIM/jidoujisho
directory where exported image and audio files are stored before Anki export to prevent Google Drive users from finding the exported files uploaded to the cloud (thanks to MaybeMayoi for the report)
0.25.9-beta
- Fixed a critical issue where YouTube playback failed due to a YouTube-sided change breaking youtube_explode_dart
- Users may find issues playing age-restricted videos at the moment
0.25.10-beta
- Resolving (#39), fixed an issue where in some videos, audio tracks did not change according to their proper index (thanks to DanTan3Machi for the report)
- Fixed an issue where forced auto-rotation would result to some devices with gesture navigation to be unable to exit or use the back button after leaving the player
- Users that preferred landscape right over left will now need to toggle auto-rotate in their quick settings when using the player
0.25.11-beta
- Added
min
parameter supplied by ッツ Ebook Reader in order to hide unnecessary UI elements (thanks to ッツ) - Users that have existing books will see the min parameter applied on the second time they revisit the book
- Updated
youtube_explode_dart
to latest commit - (Hotfix) Fixed an issue where bookmarking wo...
0.24.5-beta
This release implements offline functionality by reintroducing custom dictionary support with Yomichan archive format dictionaries. Using custom dictionaries in the application enables instant look-ups and use of broadly available community dictionaries.
The online dictionary APIs will continue to be available for use in the application alongside custom dictionaries for newcomers to have something to play with. In order to import dictionaries, simply use the new Manage dictionaries
option in the main menu.
Developer Note: Custom dictionary support may require more rigorous testing against a broad variety of Yomichan format dictionaries. If there any issues related to import and how the results are parsed or displayed, let me know. I am also aware that the install size of the application has significantly increased and may address it in the future.
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 6 and above. Features that are enabled by text segmentation are available on Android devices with a version greater or equal to Android 7 (thanks to howalon for testing). Use of custom dictionaries requires Android 7 or above. If the installation fails, try clearing enough storage space.
0.24-beta
- (New Feature) Yomichan Dictionary Support (#24) - Users may now use Yomichan archive dictionaries in the application by importing them in the new
Manage dictionaries
option in the main menu (feature request by ttu-ttu) - Buttons and shortcuts for switching dictionary modes have now been switched to open the new dictionary selection menu
- Text is now selectable in the player and reader regardless of which dictionary is being used
- Fixed a critical issue related to the subtitle wrapper widget not parsing and displaying files with subtitles with more than two lines of text (#23)
- Fixed an issue where the subtitle widget was constantly rebuilding and consuming resources in tap to select mode, performance has been improved but some more investigation may be needed
- Fixed an issue where search terms containing only Japanese punctuation were not trivially filtered in search as intended and included in the reader merge into main.
- Fixed an oversight where the on-device subtitle widget did not show when casting to a display device
- (Hotfix) Fixed a critical oversight where search in the creator did not open the result selection menu
0.24.1-beta
- Refined the search results from custom dictionaries, exact matches will show if found, otherwise close matches will be shown, prioritizing headword matches before reading matches
- Improved the parsing of definition text in imported Yomichan dictionaries, outer brackets will no longer be present and arrayed objects will be appropriately bullet pointed, existing users will need to reimport
- Definitions in the
Dictionary
tab are now limited to 10 lines to account for custom dictionaries with extremely long definitions - Overflowed text in the dictionary tab will be truncated with ellipsis, users may enter the creator or hold on the entry to read the full definition should they need to
- Improved UI performance when importing a custom dictionary, by tasking work to a separate isolate and renamed progress messages
- Animated jumping dots animation has been reinstated in the main menu where they were replaced with ellipsis due to performance issues mentioned and addressed below
- Fixed a performance issue related to the
Trending
tab andChannels
screen where the main isolate would block and UI would stutter due to the channels query, this workload has been tasked to a separate isolate - Fixed a critical issue where font size did not update after setting it in the player
- (Hotfix) Fixed an oversight where the subscribed channels would show over the
Trending
tab instead of the trending channels - (Hotfix) Adjusted custom dictionary database querying to try search term before parsed term to improve search accuracy
0.24.2-beta
- Custom dictionary import and query operations are now performed in a separate isolate, significantly improving UI performance and eliminating stutter
- Refined custom dictionary search results of exclusively Romaji results to match Kana results
- Refined custom dictionary search results of exclusively Hiragana and Katakana, making them match each other
- Fixed a critical oversight where devices running Android 6 were unable to start the application
0.24.3-beta
- Improved accurate use of Yomichan imported custom dictionaries by making use of the popularity number field to sort search results and changed order of priority of fallback deconjugated search terms
- Users need to reimport their dictionaries as the database import did not include this parameter
- Dropped the number of maximum search result count in the
Dictionary
tab from 100 to 50 - (Hotfix) Reverted a change to the subtitle widget which caused listening comprehension mode and latin filter mode to malfunction
0.24.4-beta
- Entries with the same meaning and reading are now merged and reduced into one entry in the search results
- Entries that have duplicate entries are now prioritized on top of popularity in order to improve the accuracy of search results
- The layout of imported dictionaries has slightly changed (arrayed definitions are now separated with semicolons instead of bullet point and newline) users are advised to reimport their dictionaries
- Since 0.23.2, users may have noticed having
.null
filename extensions for their media exports to AnkiDroid (#25), this behavior is cosmetic and harmless
0.24.5-beta
- Vertical swiping on the player or reader pop-up dictionary is now a quick gesture for switching between dictionaries (feature request by Saku)
- This gesture still works if no matches are found, if the definition is too long and becomes a scrollable field, swipe anywhere outside this area on the pop-up
Reintroducing Yomichan dictionary support for jidoujisho
Developer Note: Like the White Cliffs of Dover and a great many things, nothing is built to last.
When I set out to make my application, I knew that at some point that the packages I'm using and the framework I may be betting on may become deprecated and retired. I used online dictionary APIs, committed into providing YouTube support for the application at the cost of having to play catch-up whenever YouTube decides to change something internally. At some point in time, this will all break. But that doesn't mean we can't try to have them last or that there isn't a point in building stuff.
I first implemented custom dictionary support in 0.4, but it was extremely slow and didn't use a database, I didn't quite have any idea what I was doing at the present and I did not have the tools and functions that I have at my disposal now that makes implementing the feature so trivial. For a persistent data store, I use ObjectBox and I even used some of the old legacy custom dictionary code. For a long time developing this, it seemed at a lot of points that it was amounting to nothing, until finally I made the first query and it all came together.
I believe this feature may solidify the lifespan of the application heavens forbid the day comes that I can't work on this project like I do at the present, and I hope that it may serve users that will continue to use it as time keeps ticking on. But enough of that, I need to immerse more.
Which file should I download?
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.
0.23.2-beta
This release merges reader assistant preview functionality into the main branch, and significantly overhauls the main menu in order to tie the reading experience into feature parity with the rest of the application experience.
Web reader functionality is enabled by ッツ Ebook Reader, from which users may upload an EPUB file of their choice and start reading (thanks to 忘我).
Developer Note: Reader functionality may still benefit from rigorous testing against a wide variety of book formats. If there are any issues related to text selection or Furigana persisting in search or export results, please contact me and let me know.
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 6 and above. Features that are enabled by text segmentation are available on Android devices with a version greater or equal to Android 7 (thanks to howalon for testing). If the installation fails, try clearing enough storage space.
0.23-beta
- (New Feature) Reader Assistant - The reader assistant preview branch has been merged into this main release. For a full list of features included, see the release notes here.
- (New Feature) Dedicated Reader Tab - The
Reader
tab now allows the user to pick and launch the reader into any books they have uploaded to ッツ and will now show the name, progress and cover of books (feature request by Lion Hamster) - (New Feature) Reader Return to Context - Definitions from books now have the
Context
option which launches the reader to the exact scroll position where the word was found - Users can now set the subtitle font size under the former
Subtitle Delay
andAudio Allowance
(#22) - Extended legacy support for Android 6 allowing users wishing to use the app without text segmentation, unsupported features will be omitted from view (thanks to howalon for testing)
- The application will now launch to the last used tab to allow the user to pick up where they left off
- The
Library
has now been renamed asPlayer
to reduce confusion with the newReader
tab - The upper-right resume button is now media type agnostic and will now return the user to the last video or book they have used
Trending
andChannels
have been unified to further encourage use of both tab features, intended as an improved gateway for newcomers to test and experiment- The
Trending
tab is now cached and will invalidate at three hours old, greatly increasing startup speed and fluidity - Addressed a redundancy where users could select
Channel
to go to the user's channel when already in the mentioned channel screen - Fixed an issue with the reader parsing where paragraph starts had an illegal character that prevented text segmentation
- Fixed an issue with the reader parsing where
\n
would not be replaced and properly encoded when selecting text or exporting them to the creator - Fixed an issue where a portrait aspect ratio video would overflow past its own box in the menus and did not have an opaque background
- Fixed an issue on low-end devices where the dictionary may not be ready to show when the pitch accent definitions have not been initialized, the widget will now rebuild appropriately when ready
- Fixed an issue where the
Share YouTube Video Link
option was visible for all videos including local videos and network streams - Fixed a rare issue where history persistent variables are not properly saved and will result to the
History
screen being blocked when a video is quit too early - (Hotfix) Fixed an oversight where notification bars were not returned after exiting from the reader
0.23.1-beta
- Replaced jumping dots animation with ellipsis to some empty screen messages to address possible stutter frustration when menu is initialising
- Fixed an issue where the resume button did not have the same behavior as the
Continue Reading
button and would browse to the last book added to ッツ Ebook Reader rather than the last book read - Fixed an oversight where the
Trending
tab did not conform to other tab behavior and did not scroll to top when re-selecting the tab when already shown - Fixed an oversight where the
Reader
tab did not conform to other tab behavior had a fixed button header rather than one that scrolled with the grid view - Fixed an oversight where book titles faded when not fitting the widget rather than having ellipsis and set a maximum line length of two, the name box size has also been adjusted
- Fixed an oversight where the user could start the player with a blank URL field in the
Enter network stream URL
option - (Hotfix) Addressed a critical issue where a user could have a blank reader screen with
Continue Watching
, unable to open the reader until app data is cleared
0.23.2-beta
- Addressed a critical issue where some users were unable to use AnkiDroid scoped storage directories on internal storage and external SD cards as their directory when exporting to the media collection
- The app can now export to the AnkiDroid media collection when the directory is set to the SD card directory, i.e.
/storage/XXXX-XXXX/Android/data/com.ichi2.anki/AnkiDroid
- Users no longer have to
Check Media
before syncing their media to AnkiWeb (#6) - Deprecated the
Set AnkiDroid directory
option, the user no longer needs to set it and the app will know the current AnkiDroid directory - Fixed some remaining jumping dots animation not being changed into ellipsis in the menu
A unified language immersion experience for mobile
Developer Note: This is a release that I thought I could delay a bit so I could rest but I just couldn't resist. I've pondered for a while if it would be better to maintain separate player and reader versions of the application and serve whichever version to whomever interested, but I am so much more satisfied with this.
A lot of time was spent rethinking how the app would look after the merge. I didn't want to clutter the app with more tabs, and I did not want to cut any features either. So, I had to move a lot of stuff around while making sure that whatever is already possible to do quickly can still be done in the same speed after the makeover. For example, I am certain that many users don't really think much of the Channels
tab and probably update from version to version leaving it blank. Yet, I still have a motivation to maintain those features while making room for more.
The preview branch and this merge has vastly increased the scope and complexity of the application, and I hope to maintain the scale and quality of things as I keep moving forward with development. A huge thanks again to ッツ for allowing me to use their reader. I truly couldn't have done much without it.
Which file should I download?
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.
0.16.8-beta-kren
This pre-release introduces experimental Korean to English bilingual and monolingual dictionary support into jidoujisho as a separate application. The definitions are sourced from the Basic Korean Dictionary hosted by the National Institute of Korean Language. On-device text segmentation is done through Mecab Korean dictionaries.
This is a fully functional but experimental build. The query times are longer than desirable and the implementation is very simplistic. Extensions for the future include performing more operations on-device in order to improve and cut down the query time. Regardless, the application is ready for use and any feedback on this version would be highly appreciated. This pre-release is mostly in feature parity with the Japanese version of jidoujisho. Video playback, subtitles and automatic captioning and other YouTube supported features are functional and the card creator can be used, albeit with patience.
Developer Note: Please be aware that I am not a Korean language learner -- I have no awareness of what is a more or less correct definition other than that the results match from the site to the application. If the Korean language learning community could point me in the right direction of how to further improve the language support in this pre-release, I would be happy to do so. This pre-release serves merely as a demonstration of how jidoujisho language support can very easily be extended in a brief amount of time should any developer set their mind to it. Better support will come further down the line.
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).
0.16-beta-kren
- (New Feature) Korean-English support - Users can now install this version of the application and use it to query Korean-English dictionary definitions
- Changed UI labels and theme to be appropriate to the language
- Changed 'About this app' to have the appropriate attributions
0.16.3-beta-kren hotfix 1
- Changed the Android package name to allow installation of Korean version alongside Japanese version
- Slightly improved query speed
- Fixed an issue where search did not work out of playback when the last mode used was tap to select
0.16.3-beta-kren hotfix 2
- Implemented on-device text segmentation with Mecab Korean dictionaries, tap and drag modes should now have the same query speed
- The application package file size has significantly increased to include Mecab Korean dictionaries
- Bilingual search results are now text selectable in the pop-up dictionary, should a word come up with a verb conjugation result, one can copy the search result suggestion to search and get to the root word
- Drastically improved the parsing of Korean text, disregarding spaces for word parsing
- The tapped text will now show when searching in tap to select mode and on error
- Bilingual and monolingual search results are now cached, so queries that have been made won't need to be queried again
- Changed 'About this app' screen to change attribution details
0.16.5-beta-kren
- Fixed a critical issue where YouTube playback failed due to a YouTube-sided change breaking youtube_explode_dart
- Feature parity with Japanese 0.16.6 (added 0.16.4 Japanese features)
0.16.6-beta-kren
- Fixed an issue where accent colors were mismatching for some player menu elements
0.16.7-beta-kren
- Changed the smart resume conditions on export and on opening the transcript menu
- Exporting with no subtitles will now export the current duration with respect to bi-directional audio allowance
- Shadowing mode now works with no subtitles and will work with respect to bi-directional audio allowance
0.16.8-beta-kren
- Fixed a critical issue where YouTube playback failed due to a YouTube-sided change breaking youtube_explode_dart
A glimpse of jidoujisho's Korean dictionary queries
Developer Note: My primary motivation for making this version even though I'm quite busy is to encourage more of my friends to engage in this same hobby that I've found my passion in, so this release is a shout out and dedication to Franc Stephen Gloton, who I hope greatly benefits from this application. It's time to get immersing.
Which file should I download?
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.
0.23.5-beta-readerpreview
This experimental release debuts a dedicated reader assistant workflow for jidoujisho as a separate standalone application. Depending on the reception of this branch, reader functionality may be merged onto the main application.
Only two menu tabs are present in this preview, Dictionary and Reader. The new Reader tab launches an in-app WebView accessing Ttu-Ebook, from which users may upload an EPUB file of their choice and start reading (thanks to 忘我). Selected text will have bilingual or monolingual lookup options, with an option to open the creator.
Developer Note: This release may require more rigorous testing with a wide variety of book formats. If there are any issues related to text selection or Furigana persisting in search or export results, please contact me and let me know.
System Requirements: This preview release has been tested by myself and other users to work on a variety of real-world devices and emulators running Android 7 and above. If the installation fails, try clearing enough storage space.
0.23-beta-readerpreview
- (Preview Feature) Reader Assistant - Users may use the application as a dedicated assistant which allows easy lookup and card creation while reading (feature request by coredump and Rainbowsaur)
- This preview release is minimal and some features from the main branch have been cut to focus on the preview features
0.23.1-beta-readerpreview
- (Preview Feature) Tap to Select for Reading - Tapping on a word will now query the selected text and index for text segmentation (feature request by coredump)
- The tap to select script encapsulates and affects the entire reader area, and consequently images cannot be tapped to be unblurred, users can circumvent this for now by manually unblurring them in the site options
0.23.2-beta-readerpreview
- Fixed an issue where swipe end would count as a tap action and change the word
- Fixed an issue where images could not be clicked on to be unblurred
0.23.3-beta-readerpreview
- Added a filter so that searching for punctuation would not perform redundant dictionary search queries
- Added padding at the bottom of the pop-up dictionary so that the word count could still neatly be seen below
- Fixed an issue where newlines in selected text were not properly encoded and were present as
\n
in thefound for
text and when passed to the creator - Fixed an issue where clicking on the spoiler text
ネタバレ
in the web reader would result to searching for that word - Fixed an issue where having copied something in the creator would result to a search for that word when returning to the web reader
- Fixed an issue where monolingual search results would not return spaces in the headword
- Fixed an issue where redundant blank garbage results would return with monolingual results
0.23.4-beta-readerpreview
- Fixed a critical issue where Furigana was improperly included in both tap and drag to select results, resulting to kana appearing after each individual kanji in the search and export term (thanks to Lion Hamster for the report).
- The solution has been tested with several books, but may require further tracking as Furigana syntax may vary between EPUBs
0.23.5-beta-readerpreview
- Fixed an issue where some books in Kobo format with span-encapsulated paragraph text did not work with tap to select (thanks to Sena for the report)
- Fixed an issue where Furigana persisted in span-encapsulated paragraph text in manual drag selection
- Tightened the condition for bypassing search when clicking on the text
ネタバレ
in the web reader
A dedicated in-application workflow for readers
Developer Note: This is one of the most requested features I've had, and it seems very simple on paper but it was very hard to realize. To start with, extracting content from an EPUB file can be a huge undertaking given all the necessary formatting and how to handle things like Furigana. Existing libraries would not allow the text to be both selectable and well formatted. More than that, there is no easy way to render Flutter text in a vertical orientation, right-to-left scrolling and lazily rendering those individual paragraphs is not a pretty sight in Flutter. One can render it all as RichText spans with a package that takes EPUB converted HTML and renders it as a widget on the Flutter canvas, which is an entirely other rabbit hole of Flutter SDK issues.
At this point, I had given up and instead made several releases towards making it really easy to share text from any source, but it wasn't exactly a dedicated in-app reading experience. I had my eyes set on Ttu-Ebook, which is my favorite reader to use. It has most of the basics set up to start reading in Japanese. I couldn't initially get it to work due to an issue with flutter_inappwebview which couldn't let me import a file, but thanks to a recent pull request I am now finally able to work on this. I also had to learn a bit of JavaScript to allow the WebView to render the context menu when selecting text properly with horizontal scrolling, as it was overlooked in that package.
This has been quite the adventure, and I am now very satisfied to finally fulfill this feature request. Any and all feedback is much appreciated. Read, read, read.
Which file should I download?
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.
0.22.1-beta
This release introduces a significant number of quality of life and stability improvements, improving existing features as a general health update to the application.
Major changes include much faster monolingual dictionary querying through the Sora dictionary API, time tracking and resume to duration for all videos in history and easier channel visiting and listing. See the update log below an extensive list of the changes.
Template Updates: There were template updates in the last major versions. Instructions on how to update the template can be reviewed here.
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 6 and above (thanks to howalon). If the installation fails, try clearing enough storage space.
0.22-beta
- Migrated from using Goo.ne.jp as a monolingual dictionary source to Sora dictionary API, significantly decreasing query speed and increasing the accuracy and number of returned results (massive thanks to sp3ctum)
- The History screen will now include the video duration of recently played videos
- Resuming for playback will now work for all videos in history, consistent with a new progress bar
- The Channel action when holding onto any selected video in the menu will now redirect directly to the channel to encourage exploration and viewing related content
- Implemented persistent caching for closed captioning which reduces the redundancy of queries upon restarting the application
- Added a star button as a List or Unlist button beside the channel when viewing a channel to encourage users to add channels easier
- Added a new error message to inform the user that loading YouTube videos fail and advises the user to report the issue to replace the grey screen, with an option to try again
- Changed the width of the video thumbnails to be adaptively proportional to two-fifths of the user device width
- Changed the definition output of the monolingual dictionary results to increase readability and for more consistency with bilingual dictionary results
- Removed blink behavior of images searched in the card creator by pre-caching images upon search
- Removed the option for the term bank directory and deprecated legacy monolingual dictionary functionality (if this significantly affects your workflow, please report it to the tracker)
- Fixed an issue where cancelling the file picker when using the Library button would result in a permanent black screen
- Fixed an issue where sharing when the app was not launched did not open the card creator at times
- Fixed an issue where changing from YouTube subtitles from no subtitles did not work due to an oversight
- Fixed a critical issue where YouTube playback failed due to a YouTube-sided change breaking youtube_explode_dart (thanks to GenericUsername for the report)
0.22.1-beta
- Improved the recursive queries made to Jisho.org, resulting to inflection searches of terms such as
できない
and教えて
to properly return the proper deinflection - Fixed an oversight where audio option was not highlighted until selected in the subtitle/audio menu for YouTube videos
- Fixed an oversight where menu was not refreshed after returning from video
- For Android 6, the app now forces drag to select mode and hides the option to change to tap mode as text segmentation does not seem to work consistently under SDK 24 (thanks to howalon for the report)
A general health update for jidoujisho
Developer Note: I've been working tirelessly on major feature after feature, so I've taken the recent opportunity finally having some free time to fix a lengthy list of bugs that I've had my eye on for a while now. Later on, I want to do a refactor of the entire codebase and improve the referential transparency of many aspects of the application.
Which file should I download?
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.
0.21.2-beta
This release introduces Plex external player support and non-YouTube network streams support to the application, allowing users to stream content from their local area network or Plex library onto their device (feature request by cademcniven).
Please note that while the application can change through embedded audio tracks, embedded subtitles do not work over network streams. This is due to how the subtitles are muxed across the entire file which would require reading of the entire file over the network stream, as opposed to streaming the audio track on-demand or extracting only a small portion of the video or audio file.
Users are advised to bank all of their external subtitles onto their device should they desire to make use of this feature.
Developer Note: Users may face a known Plex issue where the player will be unable to start a stream from their mobile device, particularly using an external player. This is not a jidoujisho issue, as other external players will also not function and refuse to start playback from the network URL. If faced with this issue, users may disable secure server connections as described in the Plex documentation.
Template Updates: There were template updates in the last major versions. Instructions on how to update the template can be reviewed here.
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. If the installation fails, try clearing enough storage space.
0.21-beta
- (New Feature) Plex External Player Support (#21) - Users are now able to select
jidoujisho
as an external player for the Plex for Android application and stream from a Plex library - The
Enter YouTube URL
option in the main menu has now been changed toEnter network stream URL
, allowing non-YouTube network streams to be played in the application - The application will now show as a video player option system-wide, i.e. when selecting files from a file picker and may be set as a default app
- Slightly improved the loading speed of the player upon file playback
- Cache is now managed by the application after playing a file from scoped storage in order to save space and reduce file redundancy
- Fixed an issue where an imported video or non-image file would open the creator
0.21.1-beta
- Fixed critical player mode issues which prevented player from playing back
- As a quality of life feature, if the sentence field is not empty, a reader card will be exported, otherwise a creator card will be used, the export button will communicate this distinction
- Fixed an issue where playing a video from share or view intent and returning did not terminate or pop the app appropriately in some cases
- Fixed an issue where network streams changed last played path and duration, as it should not affect resume function
- Fixed some overflow issues in the main menu which led to clips for the closed captioning row and the version tag
0.21.2-beta
- (New Feature) Blur Widget - A new option in the audio/subtitles menu will allow users to blur over hard-coded subtitles, particularly useful over network streams
- How the widget is positioned and sized will persist in between sessions, as well as blurriness and color, and the position can be reset if ever the widget goes out of bounds
Introducing Plex support to jidoujisho
Developer Note: I'm a Plex user myself, so I've desired to implement this feature myself for a while, and I couldn't quite figure out how to do it. Between a lack of documentation of how Plex streaming works and which Android intents were required to get the application to show up on the list of external players, as well as figuring out where to draw the line as ffmpeg
could not pull the embedded subtitles in a timely manner, I am happy to have found stability in this feature very quickly and am happy to release it.
In my development process, I am happy to always put an effort in to eliminate the small extra efforts that users need to make which add up to a sum fatigue, and for myself and many others, I am sure that getting video and managing file storage on your mobile device is a hassle to be unmissed.
Which file should I download?
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.
0.20.1-beta
This release implements a Romaji filter that can be enabled in the audio/subtitles menu, which strips and hides away subtitle lines that have Latin characters or English punctuation characters. This feature is useful for practicing reading comprehension for videos that include Romaji subtitles alongside Japanese subtitles or preventing accidental viewing of English subtitles.
If a line has exclusively Latin characters or English punctuation characters, the line will be hidden overall. Otherwise, if the Latin characters co-exist in a line beside Japanese characters, the characters will be replaced by maru (○) to indicate use of Latin characters.
Developer Note: The filter has been tested on a variety of Japanese and English subtitles. Should any significant special character artifacts exist in your subtitles when using the filter, please feel free to report it to the issue tracker so that I may improve the filter. I will need to know in particular which Unicode characters are involved.
Template Updates: The default templates have been updated with 0.20.1. Instructions on how to update the template can be reviewed here.
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. If the installation fails, try clearing enough storage space.
0.20-beta
- (New Feature) Filter Latin Characters - Users are now able to select a new option in the audio/subtitles player menu which will censor out most characters used in English to improve reading comprehension experience for subtitles that contain non-target language text
- Typography used in the app has changed, fixing a critical issue where Han unification characters were shown in the app rather than using Japanese characters
- The creator will now not automatically search a photo when opened via a share context (as a quality of life experiment for users who intend to use the app for novel and manga mining), if this significantly affects your workflow, please make an issue
- If the image search term field is empty when the search button is pressed, the word will now be used as the search term as a quality of life improvement
- Added a warning to inform a user when they watch a video from scoped storage rather than direct play
- Fixed a significant player performance issue where the tap subtitle widget would constantly rebuild during playback
- Fixed an issue where video history would not update once the maximum of 20 videos has been reached
- (Hotfix) - Added tilde (~) to allowed characters to check only for line striping
0.20.1-beta
- The default templates have been slightly changed. Instructions on how to update the template can be reviewed here.
- A new reader template is used for shared text on the edge case that users desire to have a picture in the front for manga cards and in the back for novel sentence cards
- The export button will now indicate if the standard creator or reader template is used
- Reverted a change where a picture was not automatically searched for when sharing text into the app, and selecting a word will now also search a picture once again
- Doubled the thickness of the pitch accent diagrams in the default templates
Notes on making a supposedly fairly functional filter
Developer Note: Every little effort to focus oneself to consuming more target language content rather than native language content is a significant improvement, so I desired to work on this feature. It was an interesting thing to implement, and it reminded me of the Scunthrope problem.
At first, I got rid of all the English relevant ASCII characters, which left me with a problem for non-English subtitles. I was fortunate to have some Spanish and French subtitles to test at hand. I then had to take an extended alphabet into account to include diacritics and accents. I then realized that punctuation was hit or miss - and sometimes that Japanese subtitles would sometimes use Western punctuation marks. I had to make it so that the punctuation marks only get censored if the rest of the subtitles were mostly those filtered Latin characters.
Then, I had to decide when to strip away the line completely, and when to just keep a partially censored line around. What I've decided is that if Latin characters existed alongside Japanese, maru or ○ would be shown instead to inform the user that there is censored text that may or may not be of interest to them. They may then turn the filter on or off to their own content.
It's a very complicated issue, and what results is a filter that I am mostly happy with and probably tailored to perfectly censor what videos I have tested with, but I am sure that some edge cases exist for some videos that simply do not conform to the standards I have observed in subtitles.
Which file should I download?
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.
0.19.1-beta
This release introduces Chromecast support to the application, allowing for a second screen experience for sentence mining while casting on wireless displays. Users are now able to start casting with the new Cast to Display Device
option in the player menu.
Casting functionality was tested on a Google Chromecast with Google TV (2020) device, and presumably works with an assortment of Android TV devices. Please note that subtitles do not cast to the selected display device (this is an Android TV limitation), and thus this new feature is only recommended for use to learners that may do without them. The font is larger and centered when casting in order to alleviate this drawback.
Casting experience may vary based on network performance and the supported formats of the selected display device. In particular, only seek-friendly streams work for casting YouTube videos (the player will switch to the best seek-friendly quality when casting), and videos with AAC are not compatible with the 2020 model that was tested on.
Template Updates: A reminder that there are template updates from the last two major versions. Instructions on how to update the template can be reviewed here.
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. If the installation fails, try clearing enough storage space.
0.19-beta
- (New Feature) Wireless Casting - Users are now able to select
Cast to Display Device
in the player menu in order to start streaming to a wireless display. - The text is centered on screen and 1.75x larger than normal during casting in order to enhance the second screen experience.
- When no subtitles are present, rewinding and shadowing will now use the audio allowance.
- As a quality of life improvement when no subtitles are available, if no audio allowance is set, rewinding, shadowing and audio export will now cover the 10 seconds around the current player position.
0.19.1-beta
- Fixed an issue where VLC scan could result to null and critical crashes, this issue may need further monitoring
A second screen experience for language learning
Developer Note: This is definitely a very niche feature, given the Venn diagram of users that are dedicated Japanese immersion learners and Google Chromecast owners. So why implement this feature? Because we can. Also, I just got a Chromecast lately, so might as well.
Which file should I download?
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.
0.18.1-beta
This release introduces significant improvements to the application's share features, enhancing the workflow for readers. Users are now able to select a word much more quickly from an imported sentence and many changes have been made to accelerate use of the app alongside a reader application.
Developer Note: My first proposition for this kind of update was that I would fork the application into an EPUB reader, and I tried a great number of things to try and make one with Flutter. There were many SDK roadblocks that slowed me down, with no proper selectable text support for EPUB to HTML widgets, no out-of-the-box way to implement vertical text for Japanese without heavy modification of dependencies, no in-line furigana and so on.
I have decided to go with this route instead, greatly enhancing and making the share workflow much more straightforward and succinct. Rather than reinvent the wheel, I have decided that this application should complement the many readers that users may choose with the unique features that my application has, instead of attempting to replicate what already exists elsewhere.
Template Updates: There are significant changes to the default creator Anki template. In particular, these include putting the sentence in the front of the card and doing away with the word in the front. This encourages the default template for use by both manga and novel readers straight out of the box. The full template with instructions on how to edit the template can be reviewed here.
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. If the installation fails, try clearing enough storage space.
0.18-beta
(New Feature) Process Text Action - Users may now select(Scrapped in 0.18.1: Too high maintenance and has varying compatibility for different apps and devices, share text action is more compatible for the same functionality)jidoujisho
system-wide from selected text in order to import a sentence from any reader application, the share option remains the same- (New Feature) Creator Sentence Segmentation - A new option is available under
Sentence
in the Creator, allowing users to quickly select a word from an imported sentence - When sharing text into the app, if the shared text is a word, it will go to the word field, otherwise it will now go to the sentence field
- Changed the behavior of the hardware and in-app back button to minimize the application when sharing into the app
- The app will now minimize after card export after sharing and exporting with the app
- The bottom navigation bar and upper-right menu actions are now hidden when using the Creator, giving focus and space to other widgets
- Changed the icon of the image search option and the positioning of the fields in the Creator
- Fixed an issue where after sharing reopening the app would result to the Creator showing again
- Fixed an issue where cards would sometimes not export when the word field was left blank
- Fixed an issue where using the back button from the main menu would result to the application being closed, the app will now be minimized
0.18.1-beta
- Removed the system-wide Process Text Action in favor and promotion of the more stable and simpler Share Text Action (Thanks to coredump for a quick report).
A release for motivated readers
Developer Note: Slowly, I'm getting faster and faster when reading manga, and lately I've started and picked up novels. It's becoming more and more apparent to me just how much I gain from pleasure reading. It's an amazing way to learn new vocabulary, seeing words that stump you in the beginning show up in later chapters completely leaves spaced repetition systems in the dust. I wish the obvious was branded onto my brain from the very beginning -- the only way to improve reading skill is to read. This update is not only for me, but for my fellow users who are eager to keep learning Japanese through pleasure reading. Read, read, read.
Which file should I download?
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.