MultiType/NLS Multilingual Tool
This project — National Languages Support Tool for MS DOS and early versions of MS Windows — is probably of only an archeological interest now. But by the end of 80-th and in the beginning of 90-th it was an actual one. That time Microsoft operating systems did not support most of the languages of the former Soviet Union, Eastern Europe and the Third World. Creating special drivers to support national languages was a task not only difficult but affordable only for professionals. And it was very time consuming as well, as it included low-level programming on assembler language and designing lots of fonts for various types of devices. The system developed by us enabled one to perform such a task without any programming involved. An accurate user, say school teacher, might easily accomplish it. This is especially important for national minorities.

The principal ability to create universal multilingual software is based on the independence between programs and data. All the information reflecting the national specificity is a set of tables, font files, keyboard templates, regional setting parameters. The drivers did not depend on the contents of this information. With the help of a handy dialog utility program it was possible to load any tables, fonts, templates into the drivers changing the language environment on-the-fly.

The system consisted of more than 100 driver programs for different types of printers and videoadapters. Instrumental tools — compilers, convertors — were developed to assist in preparing the control tables and font files. Finally, libraries of fonts were created.

Each alphabet based on Roman or Cyrillic script commonly includes the main set of letters and several specific lettres/diacritics. So each font (character set) includes for the most part the same symbols and several different ones. The project counted more than 400 extended raster fonts of different sizes and typefaces for various types of devices. Each extended font concluded more than 600 symbols including about 250 Roman letters and 200 Cyrillic letters. It was possible to arrange a font for practically any language which is based on the Roman or Cyrillic script selecting symbols from the extended set.

Development timespan:
 Project metric Lines of sourcecode: 77,000
Size of sourcecode: 2.2Mb
 Target platformMS DOS, MS Windows 3.11
 Software typeSystem drivers/utilities
 Tools usedAssembler, C
Keywords: system sotware, national language support.
Supported languages:
Cyrillic script: Abazin, Abkhasian, Adighe, Altaic (Oirot), Avar, Azerbaijani, Balkar, Bashkir, Bulgarian, Buryat, Byelorussian, Chechen, Chukcha (Luoravetlan), Chuvash, Dargwa, Dungan, Eskimo (Yuit), Even (Lamut), Evenki (Tungus), Gagauzi, Ingush, Kabardian (Circassian), Kalmyck, Kara-kalpak, Karachai, Karaim, Kazakh, Khakass, Khanty (Kazym), Khanty (Shuryshkar), Khanty (Surgut), Khanty (Vakh), Kirghiz, Komi (Zyryan, Permian), Koryak (Nymlyan), Kumyk, Kurdish, Lak, Lesghin, Macedonian, Mansi (Vogul), Mari (High, Low, Cheremiss), Mongolian, Mordvin-erzya, Mordvin-moksha, Nanai (Gold), Nenets (Samoyed, Yurak), Nivkh (Gilyak), Nogay, Ossetic, Russian, Selkup (Ostyak-samoyed), Serbo-croatian, Shor, Tabassaran, Tajik, Tatar (Baraba), Tatar (Crimea), Tatar, Touvinian (Soyot, Uryankhai), Turkmen, Udmurt (Votyak), Uigur, Ukrainian, Uzbek, Yakut (Sakha).   Roman script: Afrikaans, Albanian, Aymara, Basque, Breton, Bugotu, Bui, Catalan, Choctaw, Chuana, Cree, Czech, Danish, Delaware, Dutch, English, Eskimo (Inuit), Esperanto, Estonian, Ewe, Faroeish, Fiji, Finnish, Flemish, French, Frisian, Fulbe, Ganda, German, Guarani, Hausa, Hawaiian, Hungarian, Icelandic, Indonesian, Interlingua, Irish, Italian, Javanese, Juang, Kasubian, Kongo, Kurdish (in Iraq), Kurdish (in Syria), Lahuli, Latin, Lettish, Lingala, Lithuanian, Luba, Madura, Malagash, Malay, Maori, Minankabaw, Mohawk, Moldavian, Nahuatl, Navaho, Norvegian, Occidental, Ojibway, Polish, Portuguese, Provencal, Quechua, Rhaeto-Romanic, Rumanian, Samoan, Seneca, Serbo-Croatian, Sioux, Slovak, Slovene, Spanish, Sundanese, Suto, Swahili, Swedish, Tagalog, Tahitian, Tinpo, Turkish, Uolio, Visaya, Volapuk, Welsh, Wendish, Wolof, Yoruba, Zapotec, Zulu.