Sunday, 3 April 2011

How Google's Android language architecture is dead wrong

I love my HTC Desire. I held on to my Sony Ericsson P800 for 5 years, turning from an early adopter into a laggard, sending mobile text-only tweets via WAP up until the early Summer of 2010 - that started to feel awkward at some point

So in August I entered the "always on" world, with a 3.6 mbps Internet connection, the endless Market where there are more apps than uses for them, and that super-shiny screen

But there's one big but: the language architecture

I use the spell-check for writing texts, as I miss the finely-pointed jotter that came with the P800, and am now confined to my own thick fingers. Since I make 1-2 typos per 10 letters on average, the spell-checker is a great solution there, only every so many times I have to really correct a word, when I garbled them so much that not even the spell-checker could make the desired sense of them.
Whenever there is a word that isn't in the dictionary (when I wanted to Tweet about #scrm, Android suggested the alternative #scam in stead), it will simply get added to the user dictionary, and is eligible for spell-checked word from that moment - a well thought-out mechanism.
If it can't find an alternative word, it will just use the one you typed

However, I use more than one language (I tweet in six), and the process there works exactly the same - unfortunately.
Unfortunately, for all these other languages, new words get added to the same user dictionary; there is only one user dictionary. When modeling data relationships, it is important to follow the cardinalities in between them. If for instance a father has a one-to-many relationship with his children (a father can have one or more children), it follows that a child has a many to-one relationship with a father (many children can have the same father)

In Android's case, this is where it goes wrong. A language has a one-to-one relationship with a user dictionary, but many languages apparently have a many-to-one relationship with a user dictionary. With one user dictionary, it has a one-to-many relationship with a language?
I don't think so

The problem with it all is, that words I add to my Dutch or German dictionary, become eligible for valid entries for my English spell-checker. So with adding words from different languages, the user dictionary becomes more and more cluttered over time.
Another problem is me: I regularly switch between using languages, forgetting to switch the keyboard. As my Dutch and English keyboard are the same, this easily goes unnoticed. So while e.g. typing Dutch words, I'll still be using the English and I'll clutter my user dictionary very quickly, because it can't find any alternatives and will just add the Dutch words - typos or not - to the user dictionary

So, at regular intervals, I need to clean my user dictionary - but how? There are German, Dutch, French, English, Spanish and Portuguese words in there, some spelled correctly, and there is no way to tell which don't belong there. So all I can do is remove the obviously misspelled ones, and hope for the best. I have erased my entire user dictionary once already, decided to start anew, but that only leads to a lot of typos in the beginning, and the same situation in the end

Therefor, dear Android, one request: please add separate user dictionaries per language in the next release, okay?Thank you

0 reacties:

Post a Comment

Thank you for sharing your thoughts! Copy your comment before signing in...