Update: Preparing a DEP draft for implementation in Drupal 4.8
This is about current status of multilingual features in Drupal, how they play together and some proposed approach to have them fully integrated in Drupal. A complete report on this subject, which I hope will be improved with your feedback and some more discussion, is available here: Drupal: i18n Report [Development Seed]
Currently, we have the 'locale module' -core-, which deals with language management and interface translation and 'i18n module', which provides support for multilingual content, translations, but also some language management, providing a block for the users to select interface language.
This is some mixed approach, that is somehow confusing, causes some overlapping and wouldn't be there if we had some clean off the ground implementation of multilingual features in Drupal. This proposal would be in the line of providing this kind of implementation, with some support in core, and some lightweight modules/APIs managing very specific parts of the whole 'multilingual' system.
Though the Internationalization module will be updated for Drupal 4.7, the long term goal of this module is to provide multilingual support for Drupal in a way that can be later somehow integrated into Drupal core. I don't mean it could be just dropped into the core as it is now. I wouldn't pretend it to be 'core quality' code, and worse, it has an important number of hacks and workarounds just to avoid core patches.
What I mean is that it's proven to be a workable and consistent approach to the problem of managing multilingual content in Drupal. And it's about time at least some part of it can be integrated into the system, thus providing some generic support for multilingual objects which could be available for other modules to take advantage of it.
The main question about any future implementations in order to achieve a truly multilingual Drupal is how much -limited- support should be built in into the core, how much in core modules, and how much can be provided by contrib modules.
My premise here will be *Let's not have in the core things that don't need to be there*. Ideally, as I see it, there should be some limited support in Drupal core, then some functionality that can be enabled as a core module, and then some contrib modules providing specific features, but that don't need to patch the core because we already have some language-oriented pluggable support already built in into Drupal.
While it may seem that any part of the functionality may be implemented either as a core module or as a contrib module indistinctly, the distinction between 'core modules' and 'contrib modules' is actually crucial because of the policy of 'not having specific functions in Drupal core for calling non core modules', which anyway is a good policy IMHO.
Of course, there are some other views on how this can be achieved. So this is only one proposal and one invitation for people to provide feedback on this issue, and open up the discussion about whether the time has come to have a true multilingual Drupal.
So first, let's make it truly multilingual. Then... world dominance ;-)