WinVNKey stands for Windows-based Vietnamese Keyboard
driver, a piece of Windows system software that extends the operating
system capability to support typing Vietnamese letters, and recently,
typing Han Nom characters as well as other international characters.
It was first developed in 1992 by the TriChlor Software
Group in an effort to demonstrate that it was possible to design an eight-bit
character set for Vietnamese that worked across platforms.
Windows 3.1 was released just a year before,
namely in 1991. Vietnamese software developed for Windows 3.1 was very
scarce because Windows development was then very difficult. WinVNKey 1.x, released into the public domain in 1992,
quickly captured a large number of users all over the world for its simple graphical
user interface design and an intuitive typing method called VIQR. WinVNKey has since evolved into a multilingual keyboard
driver. The latest release is version 5.0, which attracts a large number of
non-Vietnamese users for its ability to allow them to type many national
characters on any Latin-based keyboard.
The highest credit should go to the lead
Tấn Nguyễn. He was
then a graduate student in Electrical Engineering at Stanford University, California.
Other active contributors were Châu Vũ, Cương Minh Bùi, Học Ðình
Ngô, Tom T. Trương. Châu, working at Microsoft, provided help with
programming efforts. Cương and Tom contributed
technical details. Dr. Học contributed an elegant
composition algorithm that was extremely fast and very compact in size.
A number of people participated in
designing VISCII fonts. Of the seven basic VISCII fonts originally released
for WinVNKey 1.x , five True Type fonts (Minh Quân, Hoàng Yến, Phương Thảo, Tha Hương,
U Hoài) were designed by Cương
Bùi, one True Type font (Heo
May) by Cường Nguyễn,
and one system font (System VISCII 1.1) by Học, Cường, and members of the Vietnamese Professional
Shortly after release 1.1, Hùng
Phước Hồ led a massive
effort over the Internet to design hundreds of VISCII fonts that were named
mostly after flowers and prefixed with the first two initials of VISCII
(e.g., VI Thien Ly, VI Anh
Dao, etc). These fonts helped publicize WinVNKey
and the VISCII character set to Vietnamese users all over the world.
After Cường graduated
and accepted a position at HongKong
University in 1993, the project
was passed on to Vượng Doãn
Nguyễn, a passionate Windows software programmer
in the Silicon Valley. Vượng
made significant contributions in improving the user interface, adding new
features such as hỏi/ngã (hook-above/tilde)
lookup, Vietnamese codepage conversion, and Vietnamese screen viewer. Under
his tenure WinVNKey went through a number of 2.x releases,
which supported both 16-bit and 32-bit platforms like Windows 3.1, Windows
95, Windows NT 3.5x/4.
WinVNKey 3 & 2000
TriChlor was reinforced in 1997 with Thư Nguyễn, another energetic Windows software engineer. He
soon became responsible for the redesign of the WinVNKey
user interface and support for Unicode. The cooperation between Thư and Vượng culminated in WinVNKey 3 and WinVNKey 2000,
which was able to support Unicode in a limited number of applications.
Meanwhile, Dr. Học
Ðình Ngô has been
working on Unicode support for Unix/Linux-based network attached storage
devices at Quantum corporation since 2001. Having developed a
public-domain Vietnamese keyboard driver for the Macintosh (MacVNKey) in 1995 that supported a variety of flexible
typing methods, he decided to take over WinVNKey development to push it to another level of
performance and features. He ported
the MacVNKey engine to WinVNKey,
redesigned the GUI and the engine to support Unicode character typing in
both legacy and new Windows applications.
Then he reworked the engine into a framework to support not only
VISCII but also other character sets. His big efforts transformed WinVNKey into a multilingual product that could support
all character sets currently available in the world, including Unicode and
all legacy Vietnamese character sets.
The first multilingual release is WinVNKey 4.0 beta1 in August 2002 after a year of
development. It supports over 30 Vietnamese and 45 international character sets initially, but its flexible framework allows
users to add additional character sets without modifying the executable.
It also provides a user-friendly typing method for entering
multilingual characters on a US keyboard. In addition, this WinVNKey version provides a unique method for entry of Hán Nôm characters by typing
their Vietnamese pronunciations directly in any Windows application without
the need for an IME.
The January 2005 release features smart Vietnamese
typing methods and smart macros that know when to combine or uncombine an accent mark depending on what the user
wants: correct letter spelling, correct syllable spelling, correct word
spelling, or correct pronunciation. These smart features are made
possible by a compact and extremely fast internal spell-check engine. This
also enables WinVNKey to support character set
guessing for plain text and fast retrieval of Han Nom characters based on
Vietnamese Latin-based words.
This release also supports RTF file conversion
based on font names, not character sets. Each font name is associated
with a conversion file in plain text. Users can edit files or create new
ones to support conversion of new fonts. They can do this manually or
via a set of dialogs.
In addition, WinVNKey
supports keyboards that have dead keys. Users can turn all dead keys
into normal keys so that accent marks can be typed after base vowels.
Han Nom support has been enhanced. The
database has been split into Han and Nom separately. The raw database files
are provided in plain text so that they can be edited directly to correct, or
delete errors, or add new entries. WinVNkey
provides an option to rebuild the raw database into binary for final use.
Users can set up their system registry to support surrogate characters via
This release was initially planned as the final
release of WinVNKey 4.0 because all the previous
releases were labeled as beta. But the changes in the UI design and
features are so extensive that it is better to package it as WinVNKey 5.0 to reflect a major release.
A number of minor version
of WinVNKey 5.x have been released that enhanced
the product significantly. Its macro engine is now very smart and sophisticated.
Users can configure macros to expand only when the resulting words are
Vietnamese. In addition, the
resulting words can change their character cases intelligently based on the
context. WinVNKey also supplies a number of lazy
syllable macros and lazy word macros that can speed up Vietnamese typing
significantly. In addition, the spell checking engine has been enhanced to
allow for multiple word correction.
- Version 5.x, 32-bit
Dinh Ngo (email@example.com) -- This version is dedicated to NT-based
platforms such as NT 3.x/4, 2000, XP, 2003, and Vista,
2008, etc. The focus of version 5.x is to support smart Vietnamese typing
- Supports Vietnamese typing in almost all
Windows applications: MS Office, Internet Explorer, Wordpad, Notepad, pidgin, gaim,
firefox, thunderbird, etc.
- Supports smart placement of Vietnamese
diacritics on mono-syllable words (e.g. Hùng
Vương) or multi-syllable words (e.g. Inđônêxia), allowing users to type the diacritics
anywhere in the syllable, correcting spelling for single words or
- Supports many types of macros, especially
lazy syllables and lazy words. These two smart macros will expand if
and only if the resulting word is a legal Vietnamese word (e.g. Hùng) or an intermediate form of a legal
Vietnamese word (e.g. Vưong is the
intermediate form of Vương).
- Supports spelling correction for multiple
words on the fly
- Supports entry of Hán
or Nôm characters by typing their
pronunciations in Vietnamese or Pinyin. Users can type multi
Vietnamese or Pinyin words without spaces in between (e.g. anhhùng) to reduce the number of Hán/Nôm characters to choose.
- Supports entry of Hán
or Nôm characters by the four corner index
method or Canjie.
- Has large databases of Hán/Nôm
characters (in plain text), including Hán
characters used in Bhuddist literature.
- Allows users to update Hán/Nôm
databases with new characters.
- Supports Hán Nôm surrogate characters, providing GUI to allow
users to configure Unicode surrogates in registry easily.
- Supports entry of Katakana and Hiragana,
- Supports auto-guessing the character set of the
source plain text, hence, can convert plain text where the source
character set is unknown.
- Supports converting plain text to RTF, which
is useful for converting plain text in legacy Vietnamese character
sets to RTF to preserve data integrity.
- Supports smart conversion of RTF files based
on font names. Users do not have to specify the character set of the
source file; all they need to do is specify which source font name
will be changed to which destination font name. WinVNKey
will determine the character sets based on the font names imbedded in
the file. This method allows the source file to contain multiple
- Supports conversion of character case or
character set for selected text in any Windows application. All users
need to do is use the mouse to select the text, then press and release
a CTRL key, and finally right click the mouse to choose an appropriate
conversion menu to perform the conversion. The output text will
replace the selected text in the application.
- Supports hot keys, dead keys, invisible
spaces, special key sequences, etc.
- Supports customization of WinVNKey settings for individual applications:
keyboard mode, output method, fixing macro bugs.
Many thanks go to our
many beta testers, especially these people (in alphabetical order):
Trần Tư Bình,
Nguyễn Văn Danh, Bùi Khương
Duy, Lê Hưng, Thái Jasper, Nguyễn Khải, Thanh Không (Ko Masaki), Phạm Kim Long, Trần Tiến Ngọc,
Xương Rồng, Lê Sơn Thanh,
Nguyễn Văn Thành, Lương Ngọc Thi, Trần
Timothy, Nguyễn Ngọc Tiến, Nguyễn Tony, Nguyễn Đức Trọng, and many other people.
We would like to
acknowledge unselfish contributions in the Hán Nôm area from Lê Sơn Thanh (Hán Nôm expert), Đặng Thế Kiệt
(co-author of online Thiều Chửu
Hán Việt dictionary),
and Nguyễn Ngọc Tiến, Lê Hưng.
- Version 4.x, 32-bit
(2001-2004): First version to provide multilingual support, including full
Unicode and all Vietnamese character sets known so far, for all versions of
Windows NT 3.x, 4, 2000, XP, 9X/ME.
Contributors to version
- Hoc Dinh Ngo (firstname.lastname@example.org):
- David Le (email@example.com): installation
- Thomas Menath
(firstname.lastname@example.org): German localization and active beta testing
- Bình Anson (email@example.com): Pali-Sanskrit macros and active beta testing
- Version 3.x
(1999-2000): Thu Nguyen (firstname.lastname@example.org) -- supports Win9X/ME, NT3.51/4
with some Unicode in certain applications
- Version 2.x
(1995-1998): Vuong Doan Nguyen
(email@example.com) -- supports Win9X, NT3.51/4 (no Unicode)
1.x (1992-1994): Cuong Tan
Nguyen (firstname.lastname@example.org) & Chau Vu (email@example.com) --
supports Windows 3.x
AND CONVERSION ALGORITHM
1.x & 4.x, 5.x - Học
Ðình Ngô (firstname.lastname@example.org)
1.x - Cương Minh Bùi (email@example.com)
1.x - Tom T. Trương (Tiến Vietnamese Software)
Coordinator: Hùng Phước Hồ
Joint effort by many people -- too numerous to
acknowledge properly. Thank you all.