Transliteration and Amharic
The options for typing Amharic on most operating systems are pretty complex. It's not that it's difficult to install fonts or something (it just requires another Unicode-compliant font, after all), it's installing the input mechanism that's tricky.
As far as I know, the Gnome desktop is the only one that comes with Amharic support by default; neither OSX nor XP do. So what's an aspiring Amharic blogger to do if they don't have a lot of technical background?
The most common (and disappointing) answer seems to be "well, just hang in there, support will show up in main stream operating systems sooner or later..."
That's not good enough.
So, what about typing through the browser? The idea is nothing new, I myself have blogged about it before . I just never tackled a system as complex as Amharic's.
With the help of my friend Ephrem Menji, I've done just that, and I'd like to explain how the Amharic writing system works, and how our system handles keyboarding it through the browser. It's definitely not complete, but I think it's a pretty good start.

The Fidel
Amharic is written with the characters of a script called the "Fidel" by Ethipians. Roughly speaking, each character represents a syllable.
These syllables are arranged into rows according to the consonant that begins the syllables in that row. For instance, here are two out of the many rows of the Fidel (You can see the whole table and then some at Ge'ez alphabet):
| æ | u | i | a | e | ə | o | wa | |
|---|---|---|---|---|---|---|---|---|
| b | በ | ቡ | ቢ | ባ | ቤ | ብ | ቦ | ቧ |
| s | ሰ | ሱ | ሲ | ሳ | ሴ | ስ | ሶ | ሷ |
Looks pretty simple so far. Suppose I wish to figure out how to write the name of the capital of Ethiopia, Addis Ababa. Wikipedia's article begins:
Addis Ababa (sometimes spelled Addis Abeba; Amharic አዲስ አበባ, "new flower")...
Well that's a good start right there. We can already find a few of those characters in our little sample phrase:
| አ | ዲ | ስ | አ | በ | ባ |
Take the last character, for instance, ባ. That represents the syllable "ba." If we look in the b row, under a, well, voila. So we have a lookup mechanism, right? We just have to code up this table somehow. In point of fact there are three characters from this phrase in our table:
| æ | u | i | a | e | ə | o | wa | |
|---|---|---|---|---|---|---|---|---|
| b | በ | ቡ | ቢ | ባ | ቤ | ብ | ቦ | ቧ |
| s | ሰ | ሱ | ሲ | ሳ | ሴ | ስ | ሶ | ሷ |
(አ and ዲ happen to be in different rows.)
And for that matter, why do the two final as in "Ababa" end up getting treated in different ways? And what's up with the æ?
Time to back up
Here's a chart that represents all the vowels (one of which is a diphthong) in Amharic in a graphical way (if you've never seen one of these, it sort of corresponds to where the vowel is articulated in the mouth... sort of.):

But the vowels could just as easily be transcribed another way:

Now we can begin to see why "Abeba" or "Ababa" are alternate transcriptions for the same Amharic word -- if you're going to use the Latin alphabet to transcribe Amharic, and you want to represent each vowel with a single vowel letter... well, you run out. We only have 5 letters traditionally used to represent vowels in the Latin alphabet, a, e, i, o, and u, of course.
So you can either suffer a bit of information loss by writing Ababa, or you can complicate things by using accent marks -- û, î, â, æ, whatever, as long as you have one symbol per vowel.
(Linguists have a rather regrettable tradition of trying come up with orthographies that are littered with accent marks. Many American Indian languages have been burdened with orthographies like that because of well-meaning but overly zealous linguists... erm, I digress.)
So let's try to code up this subset of the table in Javascript. They way