INTRO
-----
From me and some other users -and maybe many more potential users-, a key feature Drupal lacks is the ability to have content in multiple languages. There has been some tries to implement it as a separate module, but until now, it is not possible to achive it without some patching to the dabase and/or to the core. I think it is really an important feature and in fact, I've chosen Drupal for some of my developments because -besides the other features- the other open source CMSs I like -Xoops, Mambo...- don't implement it either. So it would be great to get it into the core, maybe for next version.
THE CURRENT APPROACH: i18n module
---------------------------------
Well, this module -which I contributed- really provides multi language, and also interface translation for anonymous users, but I have some problems with it:
- Requires important changes to the database, which cannot be easily undone.
- Requires -with latest Drupal version- some patches to the core.
- I has too many hacks to minimize the patches required that minimal changes to drupal core require continuous updating of the module.
- The content synchronization -nodes and taxonomy- between languages is something that works, but I don't really like how it is implemented because it is getting way too complex, and depends on individual modules implementation to work properly. Also, it is an 'all languages'/'single language' approach: either you have one node type translated for all languages or only a single language version.
- And, the main one, it is an all-or-nothing approach and way too impactant change to gradually find its way into the core.
THE FUTURE
----------
My plan is to redesign the whole thing with a completely different approach, which will make it possible to easily enable/disable it and also to be gradually implemented into the Drupal core. So this is the plan:
1. Add languages to nodes -which is a single field- and then create some patches for the node.module to select the appropiate node list in each case for each language.
2. Create a translation module which will be cleanly implemented and will keep only some list of 'which node is translation of which'
3. Add languages to taxonomy, which will probrably require separation of vocabularies and terms structural data -hierarchies, weights...- from language dependent content -names, descriptions- and some patches for the taxonomy module.
4. .... Well, first 1, 2 and 3, then we'll see
And,
...
foreach ($step_by_step_list as $patch) {
while (!finds_its_way_into_the_core($patch)) {
cry();
}
}
Hope this complains with Drupal's coding standards ;-)
So... comments, better ideas, anyone ??
PS: Please don't tell me 'we dont need it, most of Drupal sites are single language'. Which is true but 'most of Drupal sites are single language' because Drupal is single language :-((