ZWDisplay is a desktop program to assist learners of Mandarin to understand and learn to read Chinese text.

When the user enters Chinese-language text, ZWDisplay will display the text with the pronunciation of each word (in Pinyin) and an English translation.

If the user clicks on any Chinese language text, ZWDisplay will hide the Pinyin and translation ('known words'). Clicking it again will restore them.

ZWDisplay will store the known words in a file. This file can be imported into PlecoDict (in text format) to create flashcards. This enables one to choose vocabulary to learn based on one's reading.

The name ZWDisplay is short for zhongwen [Chinese writing] display.

Screenshot of zwdisplay Iin the dewfault multiline mode)


ZWDisplay contains a number of options, that can be set by the Preferences dialog (accessed by File->Preferences).
Option Explanation
Show grammatical information? Show the part of speech for each word as calculated by AdsoTrans.
Gloss dates? Display pinyin and translation for dates.
Gloss numbers? Display pinyin and translation for numbers.
Leave space between words? Leave a blank space between each word.
Show tones in colour? Display Chinese characters in different colours, depending on the Mandarin tone.
Only gloss words the first time in page? Display pinyin and translation for a word only the first time it appears on the page.
Display on multiple lines? If on (default), display the Chinese characters, pinyin and translation on separate line; if off, display them all on the same line.
Traditional or simplified characters? Display Chinese characters in traditional or simplified. form.
File to save known words Name of the file to store the list of known words.
Display font Font for displaying everything (note: font size is ignored).
Chinese character size How big to display the Chinese characters.
Pinyin size How big to display the pinyin.
Translation size How big to display the translation.


The characters are coloured using the principles in Chinese Through Tone & Color by Nathan Dummitt (author interview, Amazon). That is, the colours represent the tones. (The display is not quite the same: Dummitt displays the Pinyin or not on a character-by-character basis and only displays characters for known words).

My theory in creating the program is that the easiest and most effective way to learn a language is by reading and listening to it. This is of course difficult for beginners who do not have a start on making sense of the text, and this is particularly true for Chinese where the writing system does not have any useful connection to the spoken language. So I am trying the approach of starting off with each word glossed with the pronunciation and English translation. The idea is that as one comes across words that one already knows, one can click on them and get the gloss to disappear. The program remembers which words are 'known' and does not gloss them again (one can always click on them again to restore the gloss). This means that one can then get practice in reading characters by reading precisely the characters that one already knows.

I did not invent this. As I recollect, something similar was used in Teach yourself Greek by F. Kinchin Smith (1947, not to be confused with other books with the same name).


ZWDisplay uses the Adsotrans system to provide the pronunciation and translation.

ZWDisplay is written in C++.

So far, ZWDisplay has been built on a 32-bit Intel platform on Fedora 10 (Linux). As all the code is in principle machine independent, it should build on any platform supported by wxWidgets.

ZWDisplay persists the list of known words in a file zwdisplay.txt in the user's home directory. This file name can be changed using the preferences dialog. There is also a backup file called zwdisplay.bak.

This release includes the source code and a binary for i686 Linux. The binary is very large (about 60 megabytes) as it includes all the AdsoTrans dictionary.

Screenshot of zwdisplay with multiline mode off


ZWDisplay contains a Makefile.

To build ZWDisplay, first download Adsotrans and wxWidgets.


ZWDisplay uses the wxWidgets toolkit, see To build ZWDisplay, it is necessary either to download the wxWidgets libraries, or to download the wxWidgets source and to compile it.

Most Linux distributions should have a pre-compiled wxWidgets library available. The Fedora distribution has a wxWidgets library (wxGTK) available in its 'add/remove software' collection.

If you need to compile wxWidgets yourself, make sure that Unicode is enabled. You will need to run something like ./configure --with-gtk --enable-gtk2 --enable-mimetype=yes --disable-debug --enable-unicode to ensure this.

To build against wxWidgets, it is necessary to run the wx-config utility to determine the correct build options (see the wxWidgets documentation). This is included in the makefile.


For further information and downloads of Adsotrans, see Instructions for building AdsoTrans are included in the AdsoTrans distribution, but are basically
  1. cd source
  2. ./prepare_internal
  3. make
  4. sudo make install


  1. Adjust the makefile. The lines
    CCFLAGS = -I/home/martin/adso/source -O3 -Wall -Wextra
    CCLIBS = -L/home/martin/adso/source -ladso -s
    will need to be adjusted to point to the correct location of the AdsoTrans source.
  2. Type make
  3. Check that zwdisplay runs, by typing ./zwdisplay
  4. If required, type sudo make install


ZWDisplay is released under the GPL version 3; see the file gpl-3.0.txt included in the release.

For further discussion, see the ZWDisplay project on Sourceforge at or email m dot e at acm dot org

Download ZWDisplay files

Project detail and discuss

Get support

About is the world's largest provider of hosting for Open Source software development projects. provides a variety of services to projects, including a download mirror network, collaborative development tools (like CVS and Subversion), and tools to support discussion and support. These services are provided to projects and their end-users free-of-charge.

About Open Source:

Of benefit to users, Open Source software is licensed so you can download and use the software free-of-charge. The source code for this software is made available free-of-charge, you (or a programmer you hire) can make changes to this software to better meet your needs, and you can release your changed code back to the community passing the benefit on to other users.

The exact license terms used by this project on their project summary page and in the licensing documents included in their downloads.


Join this project:

To join this project, please contact the project administrators of this project, as shown on the project summary page.

Get the source code:

Source code for this project is available as downloads

Hosted by Get ZWDisplay at Fast, secure and Free Open Source software downloads