Bản tiếng Việt

Site in Vietnamese

Vietnamese & multilingual Keyboard Driver for Windows


WinVNKey’s History


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 keyboard.


WinVNKey 1.x


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 , 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 Society (VPS).


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.


WinVNKey 2.x


After Cường 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.


WinVNKey 4


Meanwhile, 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 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 Vietnamese letters.


WinVNKey 5


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.






- Version 5.x, 32-bit (2005-2010): Hoc Dinh Ngo (hoc96@yahoo.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 features:


  • 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 compound words.
  • 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 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, 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.


Many thanks go to our many beta testers, especially these people (in alphabetical order):

Trần Bình, Nguyễn Văn Danh, Bùi Khương Duy, 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, 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 from 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, 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 4.x:

  • Hoc Dinh Ngo (Winvnkey-users@lists.sf.net, hoc96@yahoo.com): lead developer.
  • David Le (dle95035@yahoo.com): installation packaging.
  • Thomas Menath (tmenath@infonegocio.com): German localization and active beta testing.
  • Bình Anson (budsas@arach.net.au): Pali-Sankscrit macros and active beta testing.


- Version 3.x (1999-2000): Thu Nguyen (thu@vietpage.com) -- supports Win9X/ME, NT3.51/4 with some Unicode in certain applications.


- Version 2.x (1995-1998): Vuong Doan Nguyen (levan@hotmail.com) -- supports Win9X, NT3.51/4 (no Unicode).


- Version 1.x (1992-1994): Cuong Tan Nguyen (ctn@alumni.stanford.org) & Chau Vu (chauv@microsoft.com) -- supports Windows 3.x.

1.x & 4.x, 5.x - Học Ðình Ngô (hoc96@yahoo.com, trichlor@trichlor.org).


1.x - Cương Minh Bùi (cuong_bui@yahoo.com).

1.x - Tom T. Trương (Tiến Vietnamese Software).



Coordinator: Hùng Phước Hồ (phuochung@yahoo.com)

Joint effort by many people -- too numerous to acknowledge properly. Thank you all.






- Author: Hoc Dinh Ngo

- Web design: TuBinh Tran