> If you do something like that, it will be easy to keep the multilingualism stuff somehow separated from the core logic.

My main problem with this is the following: excluding the splash page special case, the difference between serving up the index on a non-multilingual blog and a multilingual blog is purely the way that the list of posts is compiled. You're basically copying out the DoWithIndex call twice. Assuming that multilingualism isn't considered a core feature, it will wind up broken unless undue care is paid attention to it.

The thing is, should the Multilingual config boolean determine whether a multilingual splash page is shown at / (as opposed to a listing of all posts at / )? Or should all posts be shown at / regardless of the language setting if multilingual is off? I assumed the latter which is why the boolean is necessary -- you can get a listing of only posts of one language with Multilingualism set to false otherwise.

I think separating the language select handling code out into its own function may be a good idea to make it more cleanly separated from the index handling code and for symmetry with the templating code. My main concern is that it looks rather small to be its own function. That may be the point though?