Is it Evil to Ask For Payment?

$First, remember that we're all friends and we all share the same goal. What I'm going to ask is how to best get there. If you think I'm flat-out wrong, please say so.

Drupal core is extremely powerful, but without all those contributed modules, it wouldn't be as successful as it is today.

Our problem is "how to make module development sustainable?"

Most contributed modules were created because someone needed something that wasn't there. Then, they added the module to Drupal's repository, so that others can use it and improve it.

However, the heavy lifting remains the responsibility of the author. While community members help enormously with bug reports, patches and ideas, most of the work remains with the author. As modules mature and become more popular, ongoing support and maintenance becomes a significant task.

And now that Drupal 7 is out, this work basically doubles, as D6 and D7 are very different beasts.

My Theory - Paying for Modules will Drastically Improve Them

For the last year, we've been working on the Translation Management module. It's a complex project that powers some of the larger multilingual Drupal sites around. The folks using it save thousands of dollars every month on management of translation work.

Our little dilemma is how much time we allocate to handling user issues and how much time we dedicate to building our own translation system.

Right now, all of our Drupal translation clients are running smooth without any technical or workflow problems. It's taken months to get there. However, there are quite a few others who are using our module without our translation service.

We do our best to support everyone and make our TM module play nice with every possible Drupal configuration and with other major modules. The problem is time. When we debug complex problems for others, we practically neglect our paying clients - the ones who make all this work possible for us.

Asking money per support issues is a bit like running a beg-ware business. You find yourself in endless negotiations whether someone found a bug and you should be paying them or whether they should be paying you for support. It doesn't work.

If we could charge a small fee from everyone using out module, we would be able to spend far more time into making it more robust, perform faster and more compatible with other modules.

GPL Means Free as in Freedom, but not Free as in Beer

Just because modules come with a GPL license it doesn't mean payment is a bad idea. You can think about it anyway you like and give it any name. The end result is the same - you're sponsoring the tools that you use for your business and help them get better.

When you pay for something, you also get something in return. The promise of a for-pay module is support. If you could pay for a module, you would deserve reliable support.

This means that when you run into a problem or you need help, there's an address and there's commitment. When you create an issue, you know that there's a maximal time until it's handled and that time is measured in hours, not in weeks.

What do you think? Would you be willing to pay for using modules that you depend on?

Translation Management for D7

We're happy to release the first beta of Translation Management for D7.

What's working:

  • Translation Dashboard
  • Translation Jobs
  • Translation Editor
  • Translation Service from ICanLocalize
  • Translator Management
  • Node translation
  • Menu translation

What's not working:

  • Block translation (requires i18n support)
  • Taxonomy translation (new field translation not included yet)

D7 Translation Management screehshots

D7 translation dashboard

Translation Dashboard on Drupal 7

D7 translation dashboard

Translators management on Drupal 7

The module is ready for beta testing but not for any production sites.

Where next?

In order to provide a fully working multilingual Drupal 7 environment, we'll also need to complete the i18n module. We are working together with Jose Reyero and hope to have it all working by the next DrupalCon in Chicago.

i18n development is now running on Github:

You can see the project progress and who's doing what here:

More Compatibility, Better Performance and New Features for Translation Management

Translation Management 6.x-1.21 is out with some long awaited bug fixes and improvements.

First, a very big thanks to everyone who reposted issues and contributed patches. Most of this update is due to you!

List of changes in this release

  1. Add compatibility with the nodecomment module.
  2. Add check_plain when showing title link after translations. This means the module will correctly encode the title when using non English characters.
  3. Fix fatal error OHT module. People who want to get translation services from OneHourTranslation can do that without suffering from bugs on the way.
  4. Fix Arabic flag. Arabic and Argentina are different things ;-)
  5. Added indexes to the translation tables. This will dramatically speed up page loading and translation update for large sites.
  6. Fix PHP warning on cron job. Even though these were warnings, they could have hidden other serious problems.
  7. Added a quote wizard that allows calculating the cost for translation by ICanLocalize.
  8. Delete relavent job data when deleting nodes. This makes sure that there are no left-overs in the DB when content is deleted.

Quote wizard - 3 clicks for an instant quote

The most frequent question we hear is "how much is translation going to cost?".

The good news is that now it takes just a few clicks to get an answer.

Go to Admin->Translation Management->Translation Dashboard.

Under Translation Services, find ICanLocalize and under that, click on Get Quote.

get quote button

Next, choose which languages to translate between.

quote wizard step 1

Then, choose which content types to include in the quote.

quote wizard step 2

The summary screen shows you what you've selected and prepares the quote.

quote wizard step 3

When you click on produce quote you get to ICanLocalize, where we check the rates between the languages you've selected and produce your quote.

quote wizard step 4

If you're taking translation services from ICanLocalize, that's great. However, you can still work out the cost of translation with any other translation service using this wizard and a calculator.

Drupal 7 teaser

We're almost ready with a Beta version for Translation Management for D7. We hope to release it next week.

Are you interested in testing that together with us?

Multilingual Drupal Jumpstarter Package from ICanLocalize

Multilingual DrupalMany Drupal developers need a hand when it comes to running multilingual sites. Drupal's multilingual system is complex, with different settings spread across a dozen Admin screens.

Adding a layer of translation management requires additional expertise.

ICanLocalize is now offering a Multilingual Drupal Jumpstarter Package. The purpose of this package is to get Drupal sites to run fully multilingual, with everything configured correctly, so that site admins can start building translations.

The Jumpstarter package costs $1800 USD and is intended for end-users and Drupal shops alike.

One of the main objectives is to provide training on correct setup and usage. If you're running or building many Drupal sites, you'll be able to purchase this package once and apply it over and over.

What's Included

The outcome of this package is that your site will be multilingual. You will be able to enter translations and visitors can choose which language to view.

  • Add languages to the site
  • Setup the required modules (i18n, Translation Management, menu translation, etc.)
  • Configure multilingual support and translation workflow for content types
  • Determine which fields need translation
  • Add a basic language switcher to the theme
  • Train and show how to manage translations
  • Study the theme and any special translation workflow needs

Cost: $1800 USD

Contact ICanLocalize for full details and to discuss the special needs of your project.

Together with Gábor on Multilingual D7

Session proposals for DrupalCon Chicago are open. We've submitted a session, together with Gábor Hojtsy on multilingual Drupal 7.

Sessions will be accepted based on the decision of the organizing committee and votes. So, if you want to hear about running multilingual D7 sites, remember to vote for this session.

Our plan (and commitment) is to have everything running by February, so that folks can start build multilingual D7 sites before the next DrupalCon.

Right now, the i18select module is already complete. Next, we're starting on the i18n core. The D7 port for Translation Management is also coming along nicely.

Like we wrote before, a major focus in the D7 multilingual system goes for ease of usability. Instead of balancing between the preferences of developers, admins and translators, we're separating their admin pages. Well, you'll see much more of that when you come to the session ;-)

Full Steam Ahead on i18n for D7

Asking who wants D7 is a little like asking who wants world-peace. It's not the wanting that matters, but the doing.

With Translation Management being stable and enterprise-ready, we can finally shift attention towards i18n and the bigger picture - making Drupal 7 fully multilingual-ready.

Built for Users

Drupal 7 puts a huge focus on usability. The same should guide is when designing the multilingual system.

Principle 1) Separate site admin from content management

There are two distinct roles involved in running a site. Admins configure things and users manage content.

What's trivial and convenient for admins is often misleading for users. The opposite is true too.

To make multilingual content admin nice (rather than painful), we'll split things so that site admins and users don't need to compromise.

Principle 2) Consolidate functionality

Modularity is great - for code maintenance. It's terrible for users.

While we want to make our job easier, we cannot sacrifice usability. If we have a tiny admin page for each tiny feature, we complicate the life of users at all levels. Web developers, site admins and content managers all want to see all relevant settings together.

For D7, the code will still be modular and easy to maintain. However, the GUI will be grouped together, so that admins don't need to look around in 15 different pages, just to discover they forgot one function in a page they didn't remember to visit.

If it was hard for developers, it was even harder for content managers. On D6, translating the entire site means using different mechanisms and entering translations in many different admin pages.

i18n and Translation Management for D7 will consolidate everything, avoiding the need to know what does what and where to translate it.

Drupal 7 Multilingual Readiness

We summarized the key modules and blocks on the multilingual D7 progress page.

You can check it out and see which functions are already completed and which need more work on.

The first module we're migrating to D7 is i18n select. On D7, it's going to look something like this:


The multilingual system in D7 will contain many new features compared to D6. If you're building a D7 site, feel free to contact us. We want to make sure that the features we're building are the right ones.

The Big Picture - Your Site's Translation Report

How much is it going to cost to translate my site?

How long should it take?

How is the translation progressing?

Are we going to meet our schedule?

Right now, even with Translation Management and with any other Drupal module, there's no easy way to answer these basic questions.

Clients inquiring about Drupal translation work always start with these questions and we're left speechless.

The next release of the Translation Management module will include a translation status summary page, which addresses this.

Translation status report

You can see the breakdown of documents per translation language pair and translation status.

Then, you can click on any language pair and see what kind of contents it's made of.

Using this, you can easily work out and see if your translation project is on time, or if a little push is needed to any of the translators.

Have a good weekend there. We're off to our!

Doing SEO? Beware of Google's Recent Instant Searches

Many of us and our clients depend on the web for our livelihood. For quite a while now, we also depend on Google to drive us traffic and generate business.

This is why, responding to major changes in search algorithms is so important. Very recently, Google introduced "Instant" - a harmless change that saves clicking Enter.

Is this the only thing it does? Apparently not!

Case Study - How to Vanish from Google Search Over Night

In your travels, did you ever need to renew your passport, and needed to take new passport photos?

There are online services that compete over saving you the trip to the walgreens and getting ripped for printing a set of passport photos. Obviously, these folks rely heavily on Google to send them traffic.

Last week, when you searched for a passport photo, you saw this:

Old search results for Passport Photo

For reference, the first entry is a web service for cropping and sending to printing shops and the 4th entry is program for printing passport photos. No frills.

Fast forward to the present. I'm going to repeat this search with Chrome, a browser that supports Google's Instant searches. For this, a video clip would have been better, but we'll have to do with this screenshot:

New search results for Passport Photo

Both these searches are for the term "passport photo". Can you spot any differences?

  1. Search results are considerably different.
  2. The search-suggestion box is open.
  3. Hey, we're actually looking for something else now!

Look closely at the search box. You can see me typing "passport photo", but am I actually seeing search results for that?

No, I'm seeing the search results for a similar term - "passport photos"!

Google is kind enough to guess what I might be interested in and it's not going to wait for me. It goes ahead and shows me the results for this search term. This is just a wild speculation here, but I would assume that 99% (if not 100%) of the searches will end at this point.

That very same item, passport photo which used to be on place 4, now jumps down to place 13, because we're looking for something else than we intended.

Reacting to Google Instant Changes

There's no stopping Google, so we might as well adapt to the new changes.

What I'm going to do right away is go to the US version of Google (, turn on Instant and search for phrases that I care about.

Don't hit enter! Wait for Google to auto-complete the search and see what it would assume people are looking for.

Now, start optimizing your site for those searches (the Google auto-completes). If you've done a great job optimizing for what you want to serve, but Google is going to suggest slightly different phrases, I would go with the later ones. Those are what your prospective clients are going to see anyway.

Translation Management 1.3 Makes it Easier to Manage Translators

We're happy to announce a new version of Translation Management.

This version puts a big emphasis on usability, helping both new and experienced users manage their team of translators easier.

less documentation is goodBetter Usability - Less Documentation

When you see that half of the screen goes for documentation and how-to instructions, you should suspect that you have a usability issue. This was the case with managing translators in Translation Management.

Managing the translators team wasn't very clear (to say the least). It was spread over 4 different pages without any intuitive flow. To compensate, we wrote long explanations on where to click and where to go next (kinda, the "Drupal way"). Since we're doing the exact same work on Multilingual WordPress, we figured it's not going to fly.

One Screen to Manage All Translators

The new translators management screen now lists all your translators. This includes in-house translators and any translation services you're using.

To add new translators, click on the Add translators » button, choose the translation languages and where you're getting the translators from.

Manage translators

Easy, right? Well, it wasn't quite like that until just now ;-)

When you're working with your own translators, you add them and that's it.

However, when working with a translation service, there are often hidden steps along the way. For example, you may need to wait for translators to be assigned to your site.

The module now shows feedback and progress.

ICanLocalize translators status

When translators are ready for your site, you'll also get a reminder, saying that you can go ahead and send contents for translation.

Then, you'll also see the newly-assigned translators in the list. From that list, you can communicate directly with the translators and manage their enabled translation languages.

What do You Think?

We were pretty sure that we nailed all usability issues before, just like we're sure now and we'll feel again after the next release.

Developers always have a blind-spot for their own usability pits. Do you see any major usability issue that we've (again) overlooked?

Crisis Management - Meeting Translation Deadlines

The most frequent problem we're seeing is being able to manage translation deadlines.

Everyone wants to complete the translation on time, but there's little information about the overall amount of translation work and how it's progressing.

This is the scenario:

  1. The project has a deadline, but contents are not yet finalized.
  2. Content starts flowing in.
  3. Translators start working, but don't pay attention to the overall status.
  4. Finish deadline approaches and everyone goes into panic mode.

How can we prevent this?

Translation Management has all the information it needs in order to become your "project manager". It knows how much text you're going to translate and how it's progressing.

We're thinking about adding some progress tracking to the module, which will allow you to get a quick snapshot of where you are right now and how it compares to where you should be.

What do you think? What would you like to see in a basic project-management utility in Translation Management?

Syndicate content