views:

441

answers:

5

First, some background information... I'm coming up on a medium-scale website for a non-profit that will require both English and Korean translations. Feature-set includes: CMS for normal content, a blog, some form submission/handling (including CSV/PDF exports), a job posting board, a directory of related businesses and non-profits (that accepts visitor submissions), and a basic (probably blog-driven) newsroom.

I have a fairly strong development background, and I've done some sites using Drupal, built some basic custom CMSes using frameworks like CodeIgniter, and I've recently started getting into Django. These are the primary options that I am exploring, and I would consider using different tools for different portions of the project, but what I'm mainly interested in, is if anyone has any experience to share with regards to localization/internationalization. I haven't yet put together a site that supports multiple languages, so before I get in trouble by underestimating the task, or making poor assumptions, I'd like to get some input to help guide my decision-making process.

Do you have any recommendations for frameworks (Drupal, Django, CodeIgniter) that handle localization/internationalization/translation well for a CMS? I know they all support it, but I'm looking for real-world experience here (or suggestions for modules/plugins given explanations).

Sorry for the longwinded question, but I wanted to be clear as possible. Thanks in advance!

+1  A: 

Zend_Translate is pretty comprehensive. And if you decide to use PHP, I suggest you take a look at it. It provides multiple interfaces (e.g. an Array, CSV, Gettext, etc.) to manage your translations, which makes it IMHO unmatched when it comes to PHP.

I'm not sure how well it plays with Drupal, since Drupal is hardly a framework but more a CMS -- or maybe a CMS framework. I'm pretty sure that Drupal either has a thing build in or that there is a plugin for it.

With CodeIgniter you would start from scratch and Zend_Translate plays well with it.

Till
Thanks for the suggestion; I'll definitely look into Zend_Translate. You're right about Drupal being more of a CMS, but having the CMS part of it prebuilt may be a bonus, if it can manage my translation well and won't be too hard to extend via modules for the other functionality.
bchang
If you're familiar with it, that's great. With a build system you always "buy" their convention and all the bells and whistles you may not need. Drupal's core seems to be pretty stable, so I hope that works out for you.
Till
A: 

I liked Drupal over Joomla. You should also look into DotNetNuke, out of the box it has lot of things that will meet your needs.

CodeToGlory
Of these PHP CMSes, I'm probably only considering Drupal. The client's site is currently using DotNetNuke and they are trying to move away from it.
bchang
+4  A: 

You probably already know that the native i18n support in django is quite good. As for translation, you might try the django-rosetta app which allows you to grant translation rights to a subset of users, who are then able to translate through an admin-like interface.

ozan
I did find django-rosetta in my research and it seemed quite promising. Do you have experience using it for an actual project? If so, it sounds awesome and I will definitely take it into consideration in my decision.
bchang
I haven't, but I intend to use it for an upcoming project so I've looked through the code briefly and it seems quite sound. It also appears to be actively developed, with the last release in February. If you decide to use it, I'd be interested to know how you find it.
ozan
I have used rosetta. It is an awesome app, with included google-suggest translation available so your translators will just have to proof-read
L. De Leo
I've also used rosetta; it's excellent.
Carl Meyer
+3  A: 

There is a distinction between "site" translation and content translation. Django handles the site translation great, out of the box. The content translation, however, requires making some decisions (there's no one right way at this point). This probably makes sense, because of the very nature of Django as a lower level framework (when compared to something like Drupal, which is intended to serve as a complete CMS).

There are applications for Django which are meant to add this functionality (in the form of translations configured at the model level):

Also, I found this question that is related.

The bottom line though, is that this is still being explored in the Django world, and neither approach has been decided upon for the framework. Also, although I haven't used it, Drupal has module support for this in the form of the i18n module.

I will update with more conclusions as I come to them. If you have anything to add about content translation in Django or in Drupal, feel free to add your own answer as well.

bchang
I don't see much chance for this to reach a "resolution" so I am accepting this answer that sums up my conclusions.
bchang
A: 

Checkout django-blocks. Has multi-language Menu, Flatpages and even has a simple Shopping Cart!!

kimus