Blog: Translation

Using the Localization Server to Push the Spanish Translation of Drupal Forward
Multilingual Engineer

More Localization Servers Coming Online

More Localization Servers Coming Online

So now we have this nice localization server that's still in alpha version but is already quite useful to do translations - particularly community translations. Now instead of using the old issue tracker and cvs method which worked but was not very user friendly, we have a web interface that any user can use to post translation suggestions, and then these suggestions can be approved - or rejected - with a single click and added to the exportable po file.

We at Drupal Hispano just couldn't wait to see it installed on drupal.org, so we've set up our own localization server for the Spanish speaking Drupal community. 

It seems that other local communities have had the same idea, including the Norwegian, French, and Dutch communities (thanks to Jo Wouters at Krimson for telling me about the Dutch translation work that's happening).

We've just started and the site is not mature yet, but it is working for a few projects and releases and gives a glimpse as to what is possible. The localization server, using the local package connector, allows full control over which projects and releases are imported. It also allows for translation team management, integration with Organic Groups, and an approval workflow in which some users may post translation suggestions and others may review and approve them.

So the next time I come across a translation I can fix or add, I can now just go to the translation site and post my suggestion. Or if I have a better translation already exported in a file, I can post the file to the site and then it can be imported and stored as a translation suggestion for later review.

Crowd Sourcing Drupal Translations: Meet the New Localization Server
Multilingual Engineer

Improving UI Translations Means Greater Usability

Improving UI Translations Means Greater Usability

Lately we’ve been spending a lot of time on improving the usability of our tools by designing more straightforward user interfaces, building more intuitive workflows, and making sure we’re displaying all the right messages in the right places. But this only gets you so far. When a tool is in a language the user doesn’t speak, all of these usability improvements won’t make up for this barrier. But with recent user interface translation improvements for Drupal, we can improve usability for thousands of websites.

We are well on the way of having these translation problems fixed for Drupal, thanks largely to our great localization guru Gábor Hojtsy who recently released two impressive Drupal modules -  the Localization Client, which provides on-page localization editing, and the Localization Server, which provides a community localization editor.

Here's a look at one of the new tools - the Localization Server:

I’ve spent some good time this month working with them both and wanted to share with you why they are so exciting. But first, let me explain the problem in a little more detail. To have a truly usable interface in different language, you need a high quality translation. And to get that, you need to provide translators with the right tools and an easy to follow workflow so they can get the translations right and be fired up to do the translations in the first place. That’s especially important in the open source software world where we have thousands of translators willing to help but no way for them to easily do so. In Drupal, to translate text in the user interface you have to 1) edit string, 2) export po file, 3) post to the issue tracker, 4) follow up, and 5) have someone else to check and commit it. This inhibits the quantity and quality of the translations in Drupal.  

The two new modules will go a long way towards fixing this problem. 

Localization Client

Gabor's work on translating strings in the right context has produced the LocalizationClient, which allows for “just in time” translation in the same page that the text will appear. Young did some great UI improvements on this while working closely with Gabor and now Drupal sites have this awesome tool. We posted a screencast in the fall if you want to see how the tool works.

On a site-by-site basis, this is a huge improvement. But what if we had better and full translation packages to start with so you almost never had to translate anything? If we can crowd source the translation process and provide the people, even those with no technical knowledge, with an easy way to contribute translations, then we’ll all start off with a bigger translated base of text. The Localization Server helps make this possible. 

Localization Server

Out of the need to streamline the old translation workflow explained above came Localization Server. This module makes it really easy to translate texts and get their contributions into the deliverable language files. This is a great tool for doing community translations and handling different projects and releases.

The goal for this tool is for it to become the future translation interface on drupal.org and integrate with project releases and organic groups, and hopefully that will mean that we'll have a central translation system for every language soon.

Note: Only the l10n server is intended to be used in drupal.org.

Translating Strings in Drupal Just Got Easier
Technology Strategist

It's Time to Say goodbye to the Bulky, Distraction Prone Translation UI

It's Time to Say goodbye to the Bulky, Distraction Prone Translation UI

This past week I was doing some translation work for the United Nations' StandAgainstPoverty.org site and realized just how bloated the process was.  I wasn't actually translating, just entering a few translations, finding missing t functions (the little piece of code you're supposed to put in any text you want translatable in modules you write in Drupal), and adding these t functions around strings. It's a daunting task - not the code part, but the actual process of translating a string on the Drupal user interface.

Take a look at what the translation string process looked like:-- go to the page where the string is and look at it carefully, noting the case of the letters* boring web 1.0 page reload-- go to the locale administration page and search for the text, remember the case sensitivity because the search is case-sensitive, click search.* boring web 1.0 page reload-- click on the matching string* boring web 1.0 page reload-- type in the translation of the string and submit it* boring web 1.0 page reload-- go back to the page with the strings you were translating and repeat. If you are not the translator yourself and are just doing data entry like I was, then you need to reference your translation document on top of all this. That's just a whole lot of juggling. And it just wasn't any fun.

Enter the l10n_client written by Gabor Hojtsy and touched with Young Hahn's magic wand, followed up by a just-in-time backport to Drupal 5 by multilingual expert Jose Reyero.

Watch this video to see just how easy it is. 

This fix makes it a lot easier to translate strings, and it really saved my day by allowing me to get the translation work out of the way and get back to work on actually pushing the site live. It's also so easy to use that it let's our clients' teams do the rest of the translations themselves. 

Here are the new show-notes compared to the list above. There's just one line : ) :-- Visit page where string appears, click, translate, submit, repeat.  No page reloads, no distractions, empowered clients, and more time for launch.  Drupal saves the day.

Immediately this sparked the question, what else can we do with this?  Maybe some people will find it easiest to double-click a string directly on the page and have a lightbox/popup appear to translate the string. There are some ideas floating around, so the next step is to see what can work well to handle this. Then, what about translating nodes?  It's not as bad a process as translating strings, but the workflow could definitely be improved.  It would be nice to just click a flag next to a node title if you have the access permission, and have a lightbox/popup appear to let you translate the parts of the node which are not already covered by the t function/existing l10n_client approach. We should have some more developments soon.

A big thank you to Jason Wojciechowski at the UN Millennium Campaign (and long-time fellow Drupal hacker) for sponsoring the Drupal 5 backport and investing in this tool for your projects.  It was a clear decision for Jason, knowing what string translation is like otherwise.  Thank you Gabor, Young, and Jose for the code and ideas. This tool simply rocks!

Computer Aided Translation and Drupal
Lead Drupal Developer

Linking Translation Tools and Drupal

Linking Translation Tools and Drupal

Gábor Hojtsy is a core Drupal committer, a co-maintainer of Drupal 6 (still to be released), and a lead developer of expanded multilingual support. This is his second time guest blogging for us about multilingual support for open source platforms. You can read his first post here.

Having a great website management system like Drupal that has built-in content translation tools is an achievement in itself. But content is not always born in Drupal, and it’s most certainly not translated in Drupal. This makes it necessary, particularly in the context of multilingual websites, for Drupal to support interfacing so it can link in with external translation tools and their translation workflows.