This is a good idea. There are a few technical challenges though (and i have no idea how hard each would be to tackle!):
Running an automated process *on connection* is hard (I am not sure ActiveSync supports this?) and potentially not what the user wants. I think the restrictions on running code automatically may be to make it harder to build malicious applications (neo-viruses and stuff) that do things like: shut down the file transport and the install mechanisms on connection so that the uninstall can't be done and stuff (that would wind me up no end! I shudder to think how easy ti would be to enforce hard-resets and stuff!).
But this is not a huge challenge because most of us have "patterns" we go through when we sync our phones. Much of our usage pattern is likely similar to: a) Connect,
sync, 3) update, 4) download and 5) install. We may not do all 5 every time, and we may not do these things in that order ... but it can be quite quick to get into habit. So "sync your dictionary" just becomes another click on your desktop/shortcut bar etc ...
To equate that a dictionary is larger with it being "newer" one is not necessarily valid. When you define dictionary size by the number or words ... then it is important to remember that a dictionary with 20 in it may still be smaller than a dictionary with 7 words in it . If the words in the first case are all short ones and the words in the second are long ones then comparing dictionary "size"s on file size alone is unlikely to yield stable results. Remove a 10 letter word from the dictionary and add two new 3 letter words to the dictionary ... the "new" dictionary's file size may be the same or smaller ... which means that comparing size would likely get it wrong. But reading the innards of the dictionary file to compare old vs new would work (would be slower but not so much as the user would ever know!).
I don't think comparing the dictionary's update time/stamp (file date) would help either ... since I think it is likely re-written every time you type a word it doesn't recognise in non-T mode. So checking if the PC copy of the dictionary is newer than the phone one won't help.
Leaving the user to update his dictionary manually and just regularly "apply" it to the phone every time he/she connects is not a very user-friendly attitude, I grant you.
Setting a threshold priority level might be an idea though ...? That is: comparing the two dictionaries and inserting into the PC dictionary (over-writing when necessary) any words in the pc-dictionary with words that have a higher priority on the phone than the threshold - then over-writing the phone dictionary with the PC dictionary ... it might work?
Leaving the user a chance to edit the dicitionary directly as well. This way those little words you never really wanted to add to your dictionary get cleared out whenever you sync&check your dictionary.
Gothi ... any ideas?
The thing is: the process would need to open both the dictionary from the phone and the pc-stored copy to compare the two. And once the comparison is complete (and the PC updated with any IMPORTANT new words), to upload the modified version back onto the phone. I suspect Gothi might have to re-architecture a lot of his code.
... a but a little encouragement there for him: Gothi ... you already know the full internal structure of the file on the phone so you have done all the translation grind-work?
Just my two cents worth.