Thaana on Android: Font Installer update

Early last year, I posted a font installer for Android that replaces the default fallback font with the free FreeSerif font that includes Thaana glyphs. That installer should still work on most older devices.

Here is a repackaged version of that installer which should work on most of the new devices with more recent versions of Android. This version has been tested on a Samsung Galaxy Note running Android 2.3.6 and a Samsung Galaxy S2 running the recently released Android 4.0 Ice Cream Sandwich.

Steps


1. As before, the device needs to be rooted. You can easily root your device using SuperOneClick (free/donationware).

2. Put the update zip file (see below) somewhere on your device. You could do this by downloading the file straight from the web on to the SD card of your device.

3. Power off your phone and boot into recovery mode. The specifics of how you do this depends on which recovery tool was installed during rooting of your phone. Try VolumeUp+Center Button+Power. If that doesn't work, use Google. If you have the CWM app installed, then you could just flash the zip through that.

4. Select the update from Zip option in your recovery tool and select the update_thaanafont_v2_jaa.zip file from the list and OK it.

5. The update should progress and will ask you to reboot once completed.

6. Congratulations you have a Thaana font installed. Thaana text on the Facebook, Twitter and other apps should appear OK now!


- Download update_thaanafont_v2_jaa.zip

Do drop me a message, here or on Twitter, if it works and if there are issues. Enjoy!

Thaana on Android: Font installation

I have owned a Google Nexus One device since it came out early this year and I love it for the great hardware specifications of the phone and the customizability of Android. As usual, one of the first things I did when I got it was to explore Thaana usage on the Android OS. I have been meaning to do a write up since, so after almost a year here it is finally! This post addresses getting Thaana to display by installing a Thaana font.

Overview


With a healthy ecosystem of phones and tablets running Android now available, the free and open-source Android mobile operating system seem to be getting more and more popular across the world and in Maldives. Its official app-store hosts a large number of applications, a lot of which are free, and there are a number of third-party app-stores with more relaxed rules around as well. There is a healthy and growing developer community that's taking advantage of the open code to add new features and hack in interesting modifications - like the Nexus One does not officially have a FM radio or support HD video but developers have added code hacks for both into a custom ROM!

As awesome as Android is, unfortunately, all versions of the official Android OS (including the latest version 2.2 (Froyo) release) has limited support for international scripts, which is bad news for Thaana. Android can display Thaana characters as it supports Unicode fonts but it looks all jumbled up when diplayed as Android lacks support for bi-directional text rendering, both in the OS and the included web browser. The lack of BiDi support means Thaana input is also impossible as Thaana is a right-to-left script.

The next version of Android, version 2.3 (Gingerbread), is scheduled to have BiDi support and better support for international scripts, so hopefully that fixes things although it still wouldn't officially support Thaana.

The only easy way currently, as far as I am aware of, of viewing Thaana on Android correctly is by using Opera Mobile browser with Thaana fonts installed in Android. Now, none of the Android-based devices on the market seem to ship with a Thaana-supporting Unicode font preinstalled and Android does not currently provide a mechanism for user installation of fonts which means the process of installing a Thaana font is a little bit convoluted.

Installing Thaana fonts


Next, you need to install the Thaana font. Chopey has already posted a guide on how to do it manually and Gaanagaa has posted a Windows-based software to do automatically for you. I favour a different approach which relies on using a special Zip file to update your Android with the Thaana fonts in a manner similar to how Android devices update themselves with new releases. This method is, in my opinion, a lot easier and you do not need anything other than a rooted phone and the zip file I have prepared to do it. I have packaged the free FreeSerif font which includes beautiful Thaana glyphs as well as a large number of other characters from other writing systems.

Using my Thaana fonts update for Android
1. Make sure your device is rooted. You will need a rooted device to install any font via any method, including this one. There are a number of guides and free software available on the web for various Android phones (try xda-developers.com or modaco.com or samdroid.net) to help you do just that.

2. Put update_thaanafonts(jaa)_signed.zip to the root of the SD card in your device. You can do this by downloading the file straight from the web on to the SD card of your device OR download the file to your computer first and copy it to your device using a cable or Bluetooth.

3. Power off your phone and boot into recovery mode. The specifics of how you do this depends on which recovery tool was installed during rooting of your phone but involves pressing some combination of keys at the same time to start your device in recovery mode. Try the methods listed here if you aren't sure.

4. Select the update from Zip option in your recovery tool and select the update_thaanafonts(jaa)_signed.zip file from the list and OK it.

5. The update should progress and will ask you to reboot once completed.

6. Congratulations you now have a Thaana font installed! To make any practical use of it, you will need to install the Opera Mobile browser application available for free on the Android Market.



Enjoy :-)

Thaana Common Fonts Research

Thaana Common Fonts Research (CFR) is a Thaana related research project I launched late last month and has been running since. Today, I finally got around to writing down some introductory information on the project, so here it is.

Introduction

This project will conduct some basic research into the prevalence and distribution of Thaana fonts.

Purpose

The investigation is aimed at obtaining:
- An understanding of the prevalence of individual Thaana fonts
- An understanding of the co-occurrence dynamics of Thaana fonts
- The distribution of Thaana Unicode and non-Unicode Thaana fonts
- The OS dependence of the fonts

Significance

This study will help us to:
- Get a first look into the distribution of Thaana fonts
- Develop recommendations for the use of fonts on the web
- Develop recommendations for the use of fonts in software and in documents
- Formulate plans for improving the reach of Thaana (and hence, Dhivehi)

Method

The research is conducted via the World Wide Web by sampling the fonts installed on the devices used by Maldivian web users.

The process goes like as follows:
1) A small, invisible Flash-based data collector is embedded into websites.
2) When a user visits a participating website, the data collector automatically compiles a list of the fonts installed on the system. This is done once per user device.
3) The font names and the operating system of the user is sent to my server where the data is logged for later analysis.

It is intended that data sample collection will be carried out until the end of this month (June 2009).

Participate

Webmasters and website owners can participate and contribute to this research by embedding the Flash-based data collector using the HTML code shown below into their website. Please change the DOMAINHERE bit to the domain name of your site so that I know who to chase if there are issues. The field is also used to note your contribution and participation in the project.
<object data="http://labs.jawish.org/cfr/cfr.swf" height="1" width="1" type="application/x-shockwave-flash">
	<param name="flashvars" value="site=DOMAINHERE" />
	<param name="movie" value="http://labs.jawish.org/cfr/cfr.swf" />
</object>


If you operate a high traffic Thaana-based website, I urge you to consider participating and help make this project a success. My thanks in advance!

Statistics

As of writing this post, 2293 data samples has been collected and 269 Thaana fonts have been identified and is being tracked.

You can see LIVE stats on the CFR project home.

Firefox 3 Thaana display bug: review and fixes

Maldivians who use Firefox would be aware that certain Dhivehi websites, such as Miadhu Online, no longer display the Thaana fonts correctly when they switched to the recently released version 3 of the popular browser. I would like to review the issue for the benefit of Maldivian web developers and put forward some solutions that could be used. Further, I would also like to make available a fix that ordinary web users can themselves use until website owners (or the Firefox developers) fix the issue.

Problem description

Firefox 3.x series (and the 2.x series as well, to a lesser extent) fails in correctly displaying Thaana in web pages when certain non-Unicode Thaana fonts are applied to the elements using CSS. The same pages, however, render correctly without issue with Internet Explorer, Safari and Opera.

DOCTYPE - One contributing factor seems to be the DOCTYPE of the page. My guess is that this issue may have something to do with quirksmode rendering or standards compliance. The lack of a DOCTYPE in the markup gives correct rendering of the Thaana fonts on the page. However, omission of the DOCTYPE cannot and should not be considered a solution as DOCTYPE is required for most page markup and browsers need the correct DOCTYPE specification to correctly render modern pages.

Font - Another factor seems to be the font file used. The Thaana characters fail to be rendered correctly when almost all of the commonly used Thaana fonts, such as A_Faseyha, A_Waheed and A_Randhoo, are used. However, some fonts do work without issue - A_Ilham for example.

Here are some demo pages to highlight the issues. Each of the pages has three lines of Thaana - first of which is Thaana text enclosed in a font tag specifying a (problematic) Thaana font, the second is a H3 headline which has the font family set to a (problematic) Thaana font using CSS alone, the third is again a H3 headline which has the font family is set to a (problematic) Thaana font using CSS but has the text placed inside a font tag and finally the fourth line has a H3 headline whose font family is set to a (working) Thaana font using CSS alone.
View Thaana on page with: no DOCTYPE, HTML 4.01 DOCTYPE and XHTML 1.0 DOCTYPE.

Developer's fix

There are two definite solutions that can be easily applied by web developers.

Solution 1: Add HTML Font tags around any and all text that is to be displayed in Thaana. Specify the font to be used within the "face" attribute of the Font tags as usual. The flip-side of this method is that it results in a significant increase in page size. Haveeru News seems to have addressed the problem using this method. Here's a example:
bwlimIhunc aufulunc 

should be transformed into 

bwlimIhunc aufulunc

Solution 2: Change font used in the CSS definition to "A_Ilham". It is, perhaps, not as clean and pretty as "A_Faseyha" but until there is a fix to Firefox it will have to do.

A further alternative solution would be for the site owners and developers to take this occasion to shift to Unicode Thaana. It is much more reliable and is the currently recommended method of displaying Thaana on the web. Jazeera Daily, Haama Daily and MvHeadlines, to name a few, are all using Unicode for text display and entry. You can utilize the PHP-based Thaana Conversions class I released to convert the existing non-Unicode Thaana text to Unicode - and you can do such conversion on-the-fly on page requests.

User's fix

I wrote a quick bookmarklet-based solution several weeks ago for my use after getting annoyed with having to open Internet Explorer to view pages from sites affected by this bug. This solution will, or rather should, work on any affected site and on any computer.

Simply right click on this link - Jaa's Thaana Fix - and select "Bookmark this link" from the drop-down menu. Alternatively, you can drag and drop the link onto your bookmarks toolbar. When you are on a page that is messed up by the bug, such as Miadhu Online, Vaikaradhoo Live or Kavaasaa, click the "Thaana fix" link on your Bookmarks menu or toolbar. You will need to do this for each page you view.

Happy reading :-)