Pleco for Android 3.2.30


Staff member
On beta channel now (go to to sign up), out officially probably Monday.

Full change list:
  • Made our free demo of stroke order diagrams much more generous - it now supports about 500 characters (everything in HSK1+2, traditional and simplified) and lets you see them from their actual entries - and built it into our app (no download needed).
  • Added an option in Settings / External Access to send Screen Reader text directly to Pleco's Clip Reader interface (and add them to your clipboard history) instead of viewing it in floating boxes.
  • Added four Quick Settings Tiles on Android 7; two to toggle the screen reader floating button and clipboard monitor on or off, one to instantly launch Screen Reader and one to instantly launch Screen OCR.
  • Improved Android 7 multitasking support; now we also monitor the clipboard while you're in that state and instantly update the search / clip reader screens with your copied text (as we were already doing on compatible Samsung/LG devices in earlier releases).
  • Improved compatibility with the little-used full system backup feature Google introduced in Android 6; if you have that enabled it should now back up your settings and flashcards and user dictionaries pretty reliably, assuming they're not so large (> 25 MB combined, a level very rarely attained in our experience) that it rejects them for using too much space.
  • Improved compatibility with various badly behaved file storage providers ([cough]SkyDrive[cough]) so that you should no longer experience crashes when attempting to open files from them.
  • Added an alert on Xiaomi devices preemptively explaining their cryptic "Turn on documents in settings > installed apps first" message before trying to open or save a file.
  • Made "Use TTS if no recording" apply to flashcard tests as well.
  • Made OCR motion detection a little bit more reliable; much much (much!) bigger improvement to this coming soon.
  • Adjusted the Google Translate support in the missing word breakdown toolbar to deal with changes to Google Translate's floating interface (basically you now have to copy the translation to the clipboard before we can read + do something with it).
  • Fixed a bug that could cause the back button in Screen Reader / Screen OCR to also trigger a back command in the underlying app.
  • Fixed a bug that made it impossible to select some radicals in radical input.
  • Fixed a bug that made it impossible to tap on the menu button in OCR.
  • Fixed a bug that could cause the keyboard to fail to reappear when tapping on the "Pleco Dict" launcher shortcut on some devices.
  • Fixed a crashing bug when disabling Pleco's access to screen capture for Screen OCR through a Quick Settings Tile or some other non-Pleco interface.
  • Fixed a bug that kept the unknown search breakdown toolbar from showing up on some non-Google devices that lacked text-to-speech or Google Translate support.
  • Fixed a bug that made Pleco erroneously report that the computer-downloaded version of its data files was corrupt + download them again on some devices.
  • Fixed a bug that sometimes made Pleco fail to ask permission to access the camera before taking a photo for Still OCR, causing a crash.
  • Fixed a bug that could sometimes cause the previous / next entry arrows in the popup reader to be dimmed out.
  • Fixed a bug that made hex color codes in our color picker invisible.
  • Fixed a bug that made it impossible to select "Never" for the "use reader if length >" option.
  • Fixed a bug that made "(add new)" in the flashcard category popup list in Screen Reader crash.
  • Fixed a bug that prevented 'characters' from showing up as an option in fill-in-the-blanks tests on some devices with our paid flashcard add-on + free handwriting add-on.
  • Fixed a bug that could make it impossible to hear Cantonese text-to-speech when you had the male Cantonese recordings installed and only those.
  • Fixed a couple of other obscure crashing bugs.
Wonderful work as always Mike, thanks again for making such a wonderful dictionary!

I have two feature requests and one bug fix request I wanted to post here .
The Bug fix request is :
The search field and flashcard pronunciation input don't recognize zhuyin's neutral tone marker '·' as representing the neural tone. This is probably because the rest of the tone markers are used the same way in pinyin, but pinyin doesn't use a marker for the neutral tone. Right now you can get around this issue by using a 5 to signify the neutral tone, but it is especially a drag in the flashcards where whenever a flashcard with a neutral tone comes up you need to switch to the numeral keyboard to enter.

Which brings me to my first feature request. Like you do with pinyin could you consider providing a built in zhuyin keyboard for pronunciation input?
Right now I am using Google's zhuyin keyboard to input pronunciation, but like any ordinary keyboard out there it is primarily meant to input hanzi not zhuyin, which means to actually input the zhuyin character literals I need to long press on each and every character entered.

And finally my final feature request. Currently the Document reader has more feature s on the iPad then on an Android phone. Specifically you can slow down or speed up the ocr reading speed for a text on the iPad, something that you can't do on a android phone. Would it be possible to port that feature to Android? I imagine it wouldn't be that hard as you already have pleco wide ocr speed settings even on the Android.

EDIT: While I am here anyway I might as well post another bug I noticed. In the cross straights dictionary when two pronunciations are shown for a character (one for mainland and one for Taiwan) there is only one audio button shown for the farthest left pronunciation, and no audio button show for the farthest right pronunciation .

EDIT2: And I have just come across another bug. When I am using zhuyin pronunciation and ruby text for everything, the show pronunciation + audio option of the review flashcards do not work for me . Instead of showing me the pronunciation and playing the audio, they just present to me a totally blank card while still playing the audio. I hypothesize that since normally pronunciation is shown with a character as ruby text in my setup , when there isn't a character to depend on it doesn't show at all instead of showing up by itself as it ought to.
Last edited:


Staff member
Thanks for the feedback.

Neutral tones actually should be working already - there's support for them in the code at any rate. Will investigate, probably is indeed a bug. Could you possibly copy (and paste into a post) the exact neutral tone character that's coming out of your Zhuyin keyboard? Perhaps it's using a non-standard code point for the neutral tone.

With Zhuyin input, I believe there are a couple of keyboards that do direct Zhuyin input already available on Google Play. Doing it ourselves would actually be really hard - easy in flashcards but a massive project in the search screen - so we don't think it's a good use of time with an alternative available. But we can investigate trying to do the same thing with Google Zhuyin we currently do with Zhuyin input on iOS, automatically cancelling text input after every character so that it doesn't try to convert it into Hanzi.

We do support TTS speed adjustment on Android, but we do it via a long-press menu; long-press the megaphone icon and you'll see options to adjust the speed. (we use long-press a bit more liberally on Android than on iOS in general, since it's something Google officially supports + Apple doesn't)

The pronunciation + audio bug was actually something we tried to fix in 3.2.32 but then had to roll back because it had some problematic consequences elsewhere (making Cantonese show up where it wasn't supposed to, e.g.) - we'll fix it in our next greater-than-a-bug-fix update. (in general we're trying to do as little as possible with cross-platform engine code like this in bug fix updates right now, because between our legacy iOS / Android versions and our new in development version 4.0 we've got three different versions of it floating around and it's a massive pain to keep them all in sync)
Oh that's awesome, I didn't know that some of the functionality was there and I just hadn't discovered it!

For the neutral tone character issue it seems that's the case. From what I can tell your dictionary uses '˙', otherwise called the 'DOT ABOVE' character or (U+02D9) whereas Google's Zhuyin Keyboard uses '·' otherwise called the 'MIDDLE DOT' or (U+00B7)

For the zhuyin keyboard the flashcards are exactly where I would use it, because there when you have to go through a ton of pronunciation fill in the blanks cards, the extra delay after every keystroke is a massive pain. But I will search the play store again, because if such a keyboard exists there it would certainly solve that issue.

Also, thanks for such a quick and helpful reply!

UPDATE: For anyone in a similar situation as me after a little searching I found the O鍵盤 , which paired with it's Chinese keyboard add-on provides decent zhuyin literal character support, making it perfect for doing flashcard pronunciation sessions.
Last edited:


Staff member
Just put out a 3.2.35 update which is mostly bug fixes but also added a small tweak that dramatically improves the speed of long search result breakdowns; came out of some work we did for 4.0, most of the performance improvements in that (and there are many) are relatively complicated and would be hard to backport but that one happened to be easy so we brought it to the 3.2's.
When one of the characters of the headword of a custom flashcard is also part of the definition, this character is not displayed in the definition during review. I darkly remember that there is a setting to enable the display, but I cannot find it.
Hi, isn't it simply that Flashcards > New Test > More Settings > Display > Filter head in defns needs to be disabled?
When I mark some characters in the reader, Pleco always presents the "+" sign on top of the screen, even if there is no entry in any of the dictionaries displayed. I can tap the + and select a category, but then nothing happens - without further notice Pleco still shows the categories to select from, which is not what I would expect. I would prefer if Pleco would at least ask if I want to create a custom card and then create it with just the headword.


Staff member
That's odd - do you have it configured to prompt for categories when you tap on the + button? Normally after you choose a category it should put up a custom card screen to add a card to that category.
When I tap on the + with a word without dictionary box, the category list is opened and I can select a category, but when I tap on a category, the last category list is shown again and I have to tap on the top left back arrow to come back to the reader. When I tap on the + with a word in any dictionary, the category list is displayed, and if the word exists in the flashcard db, the Duplicate Card screen lets me select what to do with the card, otherwise the card is added and the reader shown.
EDIT: In the dictionary I can enter any word in a custom flashcard screen when I hit the + button, but not in the reader.
Last edited:
Do you have a hint on how I could go even slower than 50% in the Google TTS output? Here are my approaches to make the engine pause a bit:

1. I inserted more comma signs decorated with dashes, like this in the text , - , - , - , - , - , - , the engine simply saw it as ONE comma/colon
2. I read about inserting exclamation marks in a text , someone said it worked, I decided it will not work.
3. I even thought about going as far as to throttle the whole tablet CPU; but have not enough skills in Android

Isn't there a variable I could tweak on a rooted device, I would really like the Google or any other TTS (I don't know else) to make the reading go really sluggish.


Staff member
We don't currently support that because when we haven't found that TTS engines can stretch out syllables any more without the sounds becoming unintelligible. (throttling the CPU wouldn't help, you'd either hear stuttering or it would just wait longer before starting and then still play the whole thing)

My best suggestion would be that you turn on the option for the popup reader to auto-play audio on advance (Settings / Popup Definition), then go through the text word-by-word by highlighting the first character and tapping on the right arrow.
Then, what about a "mouseover" option. I wish I could plug in the whole desktop stuff like a bluetooth mouse, or use RemixOS, and "mouseover" would be enough to select the character/compound/triplet. I once had that when using "ZhongWen" or Perapera addon extension with firefox/chrome browser, before I found out that PLECO was the tool of choice with its multiple dictionaries and under aspects of mobility.
Your solution for tapping the right arrow is in fact great, and I once started to learn like this. But now for my last vote, could there be an option to make it "auto-play on AUTO advance"? I know that is a kind of "double dutch" but making it auto advance, say every second without stretching syllables would be slow enough for me to learn the sentence. Many thanks


Staff member
Mouseover might happen once we see how things shape up with Apple's rumored 'Marzipan' project this summer (letting iOS apps work on Mac) - while that obviously wouldn't affect Android users directly, we'd expect Google to respond to it by devoting more resources / marketing to their current ChromeOS+Android integration (they may even do so preemptively at Google I/O in May)and hopefully bringing it to a point where can justify investing time to support Android users with mice.

Auto word-by-word advance: possible, I guess, but I think once we were doing that it might make more sense to see if we can find a way to get our TTS to just insert really long pauses between words. (not immediately aware of a way to do that but we could probably hack it together ourselves given the time - since it reports the start/end times of words we could probably work out the sync in such a way as to pause audio playback exactly when one word ends, it would just take a good bit of effort to make that work seamlessly)