Android keyboard for bilinguals/lt

This page is a translated version of the page Android keyboard for bilinguals and the translation is 8% complete.

This page describes the proposed work of YuviPanda in building an open source Android keyboard targeted at bilingual users. It would contain a port of the IME produced by Project Milkshake (based on Extension:Narayam ) and autocorrect/autosuggest dictionaries. The entire project is to be GPL licensed.


Plenty of English speaking people are inherently bilingual - fluent in both English and their native tongue. Communication for them is inherently bilingual - seamlessly switching between languages. However, currently this isn't easy on mobile devices for two reasons:

  1. Not enough well-developed and maintained keyboards for native languages that are optimized for mobile use (think Swiftkey and Swype).
  2. Switching between languages is too cumbersome (Switch keyboard, wait for it to load up, familiarize self with new layout, etc.)

This project aims to fix these things by extending the default Android keyboard with support for two languages at a time (quickly switched with a single tap), and by providing transliteration engines for all languages supported by Narayam, along with autocorrect/autosuggest facilities to enable faster, more accurate mobile input.


  1. Port of transliteration engine from Project Milkshake/Narayam to Java
  2. Tool to allow conversion of Project Milkshake/Narayam keymaps to a format suitable for use from Java
  3. Bindings to allow tests from Project Milkshake/Narayam to run unmodified
  4. Tool to run through a large corpus of text in a target language and extract potential dictionary entries - and convert them to a format suitable for autocorrect/autosuggest use.
  5. Android IME (derived from built in Android Jellybean keyboard) with support for fast switching between languages, and autocorrect/autosuggest support for languages with dictionaries present.

If time permits,

  1. Tool to build crowdsourced custom dictionaries for use in the keyboard.

Work to build off of

  1. Will base entire project off of Android's LatinIME, which is the default stock Keyboard. Also has a word prediction / correction algorithm that could be adapted for our use.
  2. Project Milkshake / Narayam has the JS transliteration engine + language keymaps + tests that will be ported to Java to form the core of the keyboard.