I did quite a bit of thinking on what you posted here, and some of it quite fabulous. I still have a few questions:
- If you had to rename every message in MediaWiki, would you have enforced a definite naming convention? Namespaced them?
Grammatical transformations for agglutinative languages came a bit earlier. I implemented them for Finnish, when I was told that it was absolutely necessary if we wished to make our language files site-independent, i.e. to remove the Wikipedia references. In Finnish, "about Wikipedia" becomes "Tietoja Wikipediasta" and "you can upload it to Wikipedia" becomes "Voit tallentaa tiedoston Wikipediaan". Suffixes are added depending on how the word is used, plus minor modifications to the base. There is a long list of exceptions, but since we only needed to translate a few words, such as the site name, we didn't need to include it.
We now have grammatical transformation functions for 18 languages. Some of these are just dictionaries for Wikimedia site names, but many have proper algorithms.
If they're just dictionaries, I wonder whether or not you couldn't have had wfMsg("sitename-$form"), just like the nominative/genitive distinction for month names? The current setup makes it difficult to add your own name to the dictionaries without editing PHP files (not that, I imagine, anyone would care).
There's also the MessageCache class, which handles input of text via the MediaWiki namespace.
The MediaWiki namespace is quite an innovation on your part, and extremely convenient. However, that's out of the scope for my purposes.
Once again, thanks!