Posted this here as it is sort of related. As some might know Gingerbread android keyboard dictionaries are not compatible with ICS LatinIME. Here is a quick guide how to make ICS main.dict.
1. First you need a wordlist balanced on how often different words appear. Save it as wordlist.xml for example. It should look something like below.
<wordlist> <w f="255">this</w> <w f="255">is</w> <w f="128">sample</w> <w f="1">wordlist</w> </wordlist>
2. Then you need makedict. Compile makedict from AOSP/CM9 source.
. build/envsetup.sh lunch (e.g. cm_blade-userdebug) make makedict
You'll have makedict.jar on your out directory. I attached prebuilt version below (compiled for x86, should work under windows too, rename .zip -> .jar).
makedict.zip 29.91KB 26 downloads
3. Make new dictionary. Copy your wordlist.xml and makedict.jar into same directory.
java -jar makedict.jar -s wordlist.xml -d main.dict
4. Copy your main.dict into your AOSP/CM9 source tree. In case of CM9 it would go to vendor/cm/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw-xx/main.dict (where xx is your language code). Compile LatinIME or copy your main.dict into prebuilt LatinIME.apk.
Here is good info on making wordlists etc.
Here is a trimmed CM9 LatinIME.apk with English, Swedish and Finnish dictionaries (rename .zip -> .apk). I was lucky to find balanced finnish wordlist here:
LatinIME.zip 2.81MB 35 downloads