Designing Swalekh – Our Multilingual Keyboard For 22 Indian Languages

Share this article

This AI generated Text-to-Speech widget generated by Reverie Vachak.

Now a days, there are many multilingual keyboards available on Google Play Store. Most of them are available with good UIs, adjustable font sizes, color ranges, themes and other personalization options to choose from. All of them serve the basic typing need for Indian languages, are generally free and easy to use. Then why use Swalekh?

We have broken down the not so noticeable features of our keypad to reveal the thought process behind its designing, optimizations which are done keeping in mind the mobile environment and most importantly; the typing needs of an Indian user.

I. India’s typing habits & dynamic nature of Swalekh

Available in 3 modes to generate content; English, phonetic and native, users can generate Indic content in two different ways: phonetic and native. While phonetic mode transliterates words when they are typed on QWERTY layout, native mode allows content creation purely by typing out Indian language characters.

So, if the chosen language is Hindi, typing “main” in phonetic layout, will suggest मैं, में and other phonetic combinations. Similarly, if the chosen language is Tamil, typing “oli” which means sound will convert into ஒலி. In the native mode, Swalekh’s layout changes from QWERTY to display the chosen language’s characters.

This native mode is layered and dynamic in nature.

Unlike English, Indian languages do not end at 26 letters and hence to accommodate the vowels, consonants, maatra characters, joiners and viram in the same space as QWERTY, the layouts are layered.

When a character is typed, the layouts change to expose the next grammatically correct set of characters. The dynamic nature of Swalekh’s native mode is designed as per the grammar rules of Indian languages. For example: no word in any of the Indian languages begins with dependent characters like maatra or joiners and hence until a vowel or consonant is typed, the native layouts won’t expose them.

II. Grammar rules at the keypad design level

So, why did we care to follow grammar rules at keypad design level? What happens if we input inaccurate sets of characters?

A badly designed input tool for Indian languages can generate two types of errors:

a) Junk Inputs:

Indian languages are non-linear in nature. This non-linearity dictates that given a character is typed, position of the next grammatically correct character can be either of the four cardinal directions – before, after, below and above a character.

Input tools control the entry of characters whereas the “drawing” of characters on the display unit is processed by the rendering engine seated in the device. Since most of the devices, during the rendering process do not follow grammar rules of syllable construction properly, an input tool, if not designed carefully will enable a user to generate illegal combinations of characters.

These junk inputs are not only invalid, but they also make it nearly impossible to accurately search and sort and therefore, destroy Indic computing. In fact, some junk characters are also be created to resemble valid characters.

Any website with Indic junk Indic content needs to be normalized for optimal search or sort.

b) Inclusion of unnecessary characters:

Unicode encoding assigns a unique value to every character from a particular script. There are 2 problems with Unicode:

  1. Alien characters: Few characters are not identified in any of the languages which follow the script and have borrowed nomenclature from valid characters. Such characters are also included in the encoding system.
  2. Archaic characters: Few characters which are not in current use, still hold Unicode encoding.


Script           Unicode Character
Devanagari 095F
Odia 0B35

Swalekh doesn’t include archaic/alien characters or allow the users to make junk inputs.

Complexity of Indian languages doesn’t end here. Conjuncts which are formed from basic characters can be represented in three ways.

  1. Constituent characters are retained and joined: क्ट, ग्घ
  2. Constituent characters are replaced by resulting character: क्ष, त्र, ज्ञ
  3. Constituent characters are retained with explicit halanth: E.g. Word “bathroom” when transliterated in Hindi should be बाथ्‌रूम not बाथ्रूम. In such cases an explicit halanth must be present for the correct word formations.

Swalekh lets users to choose on how they want to represent the conjunct. Along with halanth key, we have introduced a “plus within a circle” key to produce different conjunct representations.

Explicit halanth can be created using halanth key whereas using the plus within a circle key displays the connected form or resulting characters as applicable. Users can choose to write क्य or क्‌य.

Furthermore, usage or “ra” forms like क्र and र्क is also simplified and made accessible by long press of “ra” (र) key. Long press of the characters in the first layer gives the shift layer characters or nuktacharacters. E.g. Devanagari क़ is accessible in the long press of क.

III.  Android architecture for keypads

Android users can have more than one keypad installed in their devices. However, to use one particular keypad, they have to navigate to language and input settings, enable the keypad one intends to use and set it as default. This process is long and confusing for someone who is not used to switching keypads.

Swalekh installation is easy, guided and reduces the number of times user has to go to and fro to get a default keypad.

In addition to that, Swalekh application is around 5 MB in size saving both storage space and data usage. It is designed keeping in mind the compact text area on most of the mobile screens. Where some keypads take up almost 70% of screen space, Swalekh’s layered approach gives user an optimum keypad space thereby not obstructing typing.

A comparison of text area occupancy on 3 keypads – which one lets you see more of your underlying app?

IV. Personalization

In most of the applications including keypads, general settings option takes the user to another window where options are listed out. In Swalekh, users can “Flip” by pressing the flip key at top left. The Flip-layout has tab like interface making the navigation really easy without actually leaving the keypad interface.

Users can select from a variety of options to suit their requirements. From language preference which is asked during installation, to language switch; the access is easy. Auto correction, predictions, swipe, sound, number lock are nestled under one Flip tab. Likewise, font size and key heights are grouped together for different thumb sizes.

Swalekh also comes with a mood board where users can select from a range of colors that can go with two predefined themes: dark and light. The Flip version also comes with improved prediction and swipe.

V.  Hot-keys

For seamless navigation of cursor in tasks like text-editing, we have introduced a cursor navigator which is accessible on the long press of “123” key. Emoticons are not left out. They are accessible on the long press of “Enter” key.

In native mode, Swalekh takes voice input and transliterates it with different suggestions.

In addition to that, the layout has a dedicated number row which can be enabled in the settings as required. Undo and Redo buttons can be enabled in English and phonetic modes to undo and redo the typing of words.

VI. Android SDK for third-party apps

What if you could integrate the multilingual keypad into your application? The android architecture allows the installation of more than one keypad in devices. However, in order to use a particular keypad, one needs to enable it.

The developers can ensure that a particular keypad is used with their application through keypad integration. Input is an integral part of our Language as a ServiceTM platform and is available through our SDKs. Developers can choose the languages they want their users to input and more.

Use case: Mooshak, a microblogging platform for Devanagri language speakers comes with our keypad integrated into the application.

VII. Solutions vs. Gimmicks

Swalekh is designed keeping in mind the hardware flaws and rendering issues of present-day mobile devices.  It is a solution for complete typing needs of Indian languages, designed and optimized keeping Indic computing in mind where error-free content is a must. There exists harmony in the placement of the correct set of characters across layers of different languages, thereby making typing intuitive.


For a multi-faceted country like India, squads of bilingual or trilingual speakers are not something new. 90% of the population converses only in Indian languages; one or more. An English literate citizen ensures reading and writing knowledge of at least one Indian language.

Swalekh meets the typing need of every Indian.

Share this article
Subscribe to Reverie's Blogs & News

The latest news, events and stories delivered right to your inbox.

You may also like

Reverie Inc Header Logo

Reverie Language Technologies Limited, a leader in Indian language localisation and user engagement technology solutions for over a decade, is working towards a vision to create Language Equality on the Internet.

Reverie’s language practice is dedicated to helping clients future-proof their rapidly expanding content by combining cutting-edge technologies like Artificial Intelligence and Neural Machine Translation (NMT) with best-practice approaches for optimizing content and business processes.

Copyright ©

Reverie Language Technologies Limited All Rights Reserved.

The latest news, events and stories delivered right to your inbox.