Fucking Drupal Internationalization “Magic”

This post is gonna be a rant I warn you. I am talking about Drupal 6 right now - the imminent release of version 7 will probably fix some of the %^$* mentioned below though I do not have too much faith in it.

I am working on a webpage right now which should not be too difficult (link provided later) - and my client decided to go with Drupal. I would say that I have intermediate experience with Drupal (v.6) and know my way around “it” despite its (quite a few) idiosyncrasies. It is an OK content management system. It can be used by lots of people for lots of different purposes - in some ways it’s like a fucking kitchen sink :)

Now that I have sinked some time into learning its theme layer I like it a bit more than before but some things are just NOT RIGHT with this thing. OK it’s free. OK it’s open-source - so I can fix what I don’t like - in fact I have looked at its source code for hours on end now and usually find what I am looking for.

But anyway, despite that it’s flexible, relatively small and fast, has lots of options for expanding its functionality 99.9% of them are free (just have a look at the modules section of their site.)

Let’s forget about its crazy admin interface (it’s usable but needs a serious redesign which will happen/is happening right now when drupal  is released. v.7’s admin GUI will be much smoother and resolves some of the issues that I have with it - based on the first alpha code of it). And also let’s forget about its crazy nomenclature  -”nodes”, “blocks” “taxonomies”, etc. - they all can be understood, but not by someone who is your client and just wants to get around with its admin interface. No, not without training and some serious explanation…

My main problem with this thing is it’s fucking retarded way of handling multilingual content. It is just freaking crazy. First of all: They have “some” support built into the “core” system. This is like a slap on the face - you can add multiple languages to your site, and maybe (just maybe I am not sure at this point if it works w/o i18n) assign a language to a piece of content. You cannot translate a menu item, and if you succeed with it - it’s just making it worse.

OK now you install the i18n module, and enable its core, menu, string, block, profile, etc. translation modules. You also might install the languageicons and the (consistent) languageinterface modules for consistency. After some configuring, maybe enabling multilingual content for some content types, and adding menu links you realize that menu translation works differently for “primary/secondary” menus and the rest of them. You also realize that you have several (all wrong!) options for enabling multilingual menus.

You can define a new menu for each language, or have one with all the menus available (that means if you have 5 languages on your site, you will have 5 ‘about us’ pages in your menu, however only one of them will be shown for a visitor, but on the admin page, all is shown at once…) Or you can install a module called language sections and then play with that, disable multilingual content for content types, and somehow translate the menus - using the translation table module. Now the page title and the menu link title are not the same :) You need to solve that too (I just did that - if someone is interested, code can be put online I basically used the menu link titles for page titles before I got crazy).

Then you want to translate a block because you’re really crazy (a block is  a small piece of content usually shown on the side of a page). Again 2 ways to do it: Whether have separate blocks for each language (not a good way), or define the block as “language neutral” and then rely on drupal’s “built-in” translation (the t() function) which can be used for such purposes as well.

All in all you have to really know your way around drupal’s built in shit and there is just no way someone who just wants to get things done will devote the necessary amount of time to figure all this shit out and fiddle around with the different settings, read and search for hacks (so called “solutions”), whatever.

It is a really fucking frustrating experience to get anything done with this thing if we’re talking about multilingual sites. My final verdict is that drupal’s multilingual capabilities are real crap and at most can be called “modest”. I will play a bit with Silverstripe soon because I have my faith with those guys and hoping that they really have managed to tackle this problem - as they wrote.

Drupal can be recommended for a lot of sites as a base to build upon because it works well and has lots of building blocks for you and a good history. But its multilingual “capabilities” make it really difficult to recommend it for a multilingual site. Unless you are knee-deep in drupal code, and you will be the one who maintains the site. It’s just too tricky - not user friendly at all. Not at all.

Enough said. If you are someone who thinks differently *and* has the experience to tell me otherwise - please let me know in the comments below.


One Response to “Fucking Drupal Internationalization “Magic””

  • Michael Says:

    Hi there!

    But Drupal is very good in terms of SEO (much better than Typo3 or Joomla) with many many many free (SEO) plugins. For our small site we think it is the right choice - not knowing the #%^$* about the multilanguage module. We have seen it implemented in some other sites not knowing that it is such a mess.

    Let’s hope Drupal 7 will solve at least some of the hassles and make life easier for web developers.

    Thanks anyway for working your way through all that mess. What I have seen so far from our new site you are doing for us, looks really promising!

    Thanks and best regards,
    Michael

Leave a Reply