Persian Soft Keyboard and Applications for Android

Update (July 25, 2010): Please read this before posting a comment, sending me an e-mail, or giving the software a rating on the Android Market. Also, note that the remarks below pertain to Android 2.2 and below, and may become obsolete in the future.

About the keyboard:

  • The app is a keyboard. Please do not say that “it doesn’t work” because “I see only squares”. A keyboard does not help you to render fonts or shape glyphs. This software is meant only for people who can already display Persian on their phones, but have no means of input. With that being said, I understand that many people who are looking for an input method for Persian are also looking for a way to display it. Just don’t confuse the two functionalities. (For information on how to display Persian, read on to the next section below.)
  • There is nothing sinister about the warning that the software may see sensitive information such as passwords and credit card numbers. It can see anything you type when it is the active keyboard — and so can every other soft keyboard. It does not do anything with this information except to use it to guess what you’re typing. If you don’t want your password or credit card number to be read by the app, just switch to the default Android keyboard when you need to type something secret. (Unless, of course, your password is actually in Persian.)
  • On most devices, you have to enable an input method after it’s installed by going into Settings, and to switch input methods you hold the trackball or long-tap with your finger in a text input field. These depend on the operating system, and are not things that I can change.

On installing a font and rooting your phone:

  • To display Persian on Android, it is not sufficient just to install a font. You also need to get the system to join the glyphs and to display them in right-to-left order.
  • To install a font, you will need to root your phone. Instructions can be found by using a search engine.
  • If you are unable to follow the instructions yourself, or cannot find someone who is physically present to take you through the steps, it is unlikely that anyone can help you online. It’s not a trivial task in most cases, and nobody wants to be responsible for accidentally bricking your phone. I will try to help, but please understand that your request is non-trivial. Furthermore, please see the remark above about it not being sufficient just to install a font. Even after a font is installed, there is still a lot of work to do to display Persian on Android. If you do not understand how to root a phone yourself, you will very likely not understand how to go through the rest of the process either.

About displaying Persian on your phone:

  • FarsiTel has just announced a Persianised version of Android. If you have a newer Android (2.1 and up) and want a completely Persian ROM, start your investigations there. Note that this solution includes a keyboard also (and it is a different one from mine).
  • You can also try Arabic Android for displaying Persian. Yes, it’s designed for Arabic, but it works for Persian also. You may have to pay to obtain right-to-left functionality. Look for the “Arabic Android” app in the market once you have the appropriate image from the site installed.
  • There is an app on the Android Market called “Persian Browser” that will enable font-shaping in the web browser only. If your browser displays Perso-Arabic glyphs but don’t join them or display them right-to-left, you can download this app to fix the problem.
  • To use these ROMs/apps, you may need to root your phone and/or install fonts. See the section above.
  • Disclaimer: I am not involved with these projects, and (to my knowledge) neither is my employer.

And, finally, I cannot make any comments about the state of official support for Persian on Android due to the terms of my employment. This is my personal web site, and is unaffiliated with my employer. Anything I write here about Persian support on Android reflects my personal opinion only.

The original post (from Nov. 16, 2009) follows.


I recently got a new smart phone — an Android-powered HTC Dream. As I wrote in a previous post, one of the first applications that I always look for is a multilingual dictionary, or at the very least a way to enter input in languages other than English.

It took me almost no time to write up a Persian Soft Keyboard, which I have put on the Android Market. (If you’re viewing this page on an Android device, you can download the application directly by clicking this link.)

Because Android is open source, it was remarkably easy to learn how to use the SDK. Unfortunately, despite this, there are a number of design decisions which make it difficult to enable Android devices for the Persian language (or many other languages). For one thing, it is impossible for the average user to install a new font, and the default fonts that ship with most Android phones don’t cover character sets outside of the Latin-based alphabets. For another, built-in support for complex text layout is very incomplete, and that includes the bidirectional text display and glyph-shaping which are essential for properly rendering Persian text.

I can understand the decision to leave these features out, since space is limited on most Android devices. However, this means that users who use languages other than English end up having to go to a lot of trouble to get these languages to work, such as downloading versions of applications capable of handling their specific language. It would have been much simpler if the base Android system had been packaged with a font that covered the Unicode characters for the most common languages in the world and applications that were aware of how to lay out their writing systems.

As things are, even with a Persian font installed, most applications still don’t display Persian text properly because of directionality and glyph-shaping problems. I’ve included an option for the Persian Soft Keyboard to output Unicode presentation forms, i.e., glyphs which are already shaped and joined. Even though this option does not comply with the Unicode standard, it allows readable Persian text to be entered into and sent through the default SMS application, for example. (Whether the recipient will be able to read the message at the other end is another issue.)

Currently, I’m bundling a simple note pad and a translator application with the Persian Soft Keyboard package. At the moment, the available note pad applications can’t handle right-to-left text, and the available translators don’t do glyph-shaping correctly. I hope that more Android software authors make their applications aware of languages other than English, because I don’t really want to support or maintain applications which are redundant.

– davinci 11843

100 Responses to “Persian Soft Keyboard and Applications for Android”


  • hi dear davinci ,

    i am amin bahiraei and java developer ,i need soft key source for my program ,and develop it ,for example one of the important problem in this version isnot compatible with tablets (i have GalaxyTab)

    tnx for your kindness

Leave a Reply