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 eitght 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
simplicity of graphical user interface design and the 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 users to type many national characters on any Latin-based
The highest credit should go to
the lead developer Cường 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 to technical details. Học contributed an elegant composition algorithm that
was extremely fast and very compact in size. A number of people
contributed to 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 designing
hundreds of VISCII fonts 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.
graduated and accepted a position at HongKong
university in 1993, the project was passed 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 releases 2.x, 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.
Ðì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 push WinVNKey to another level of
performance and features by porting the MacVNKey
engine to WinVNKey and extending its capabilities
and adding features to support multilingual characters. His efforts
transformed the WinVNKey engine into a
multilingual product that can support all character sets currently
available in the world, including Unicode.
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 design allows users to add additional
character sets without modifying the executable. It also provides a
user-friendly typing method to entering multilingual characters on a US
keyboard. In addition, this WinVNKey version
provides a unique method to typing Hán Nôm characters for users who know Latin-based
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 a dialog.
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 a major release.
5.x, 32-bit (2005-2010): Hoc 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 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 characters to
- 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
- 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, etc.
- Supports autoguessing
the character set of 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 character sets.
- Supports conversion of
character case or character set for selected text in an 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.
thanks go to our many beta testers, especially these people (in
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.
like to acknowledge unselfish contributions 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.
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.
to version 4.x:
- Hoc Dinh
Ngo (Winvnkeyfirstname.lastname@example.org, email@example.com): lead developer.
- David Le (firstname.lastname@example.org):
- Thomas Menath
(email@example.com): German localization and active beta
- Bình Anson (firstname.lastname@example.org):
Pali-Sankscrit macros and active beta
3.x (1999-2000): Thu Nguyen (email@example.com) -- supports Win9X/ME,
NT3.51/4 with some Unicode in certain applications.
2.x (1995-1998): Vuong Doan Nguyen
(firstname.lastname@example.org) -- supports Win9X, NT3.51/4 (no Unicode).
- Version 1.x (1992-1994): Cuong Tan Nguyen
(email@example.com) & Chau Vu (firstname.lastname@example.org) -- supports
COMPOSITION AND CONVERSION
1.x & 4.x, 5.x - Học Ðình Ngô
TECHNICAL DISCUSSION WITH
1.x - Cương
Minh Bùi (email@example.com).
1.x - Tom T. Trương
(Tiến Vietnamese Software).
Joint effort by many people -- too
numerous to acknowledge properly. Thank you all.