Continuous localization

In a lot of development (especially outside the US), localization is a must.  You can have people 100 km away that don’t speak the same language.  Unfortunately localization is often a significant hindrance in agile development and continuous deployment.

In this post, I’ll describe how at Wellmo we set up a system where translation is a short, relatively easy step a bit before deployment.

Not all translation services are created equal

At its worst, I’ve worked in a project where all texts had to be finalized and sent for translation 6 weeks before deployment.  At Wellmo, we want to keep the development phase short — design only when necessary, deploy as soon as a feature is ready.

We’ve used three different translation services, each of which has its merits.


Lionbridge is one of the biggies and oldies.  My impression of them is that of a traditional translation house:  You send them your material, they provide a quote, you accept it, they do preprocessing on your material, translate it, postprocess it, and send it back.

They are a large organization, and can cater to specialized needs and translate pretty much any material.  However they do not seem to be on the agile bandwagon yet.

They have released Lionbridge onDemand, which provides an API for automating translations.  However, they have a minimum charge for orders (500 words when we were evaluating).  We often have only a couple of lines of text changing at a time, so the price premium due to the minimum charge would be prohibitive for us.

It’s possible that the extra rigidity translates into higher quality, but based on our experiences good quality is obtainable by more agile means as well.


  • Well-established and with long experience
  • Can cater to pretty much any need


  • Minimum price for onDemand orders
  • Translation turnaround is “starting at 3 days”


Transfluent is a Finnish startup, aiming to radically streamline the process of translating documents, apps and social media.  They offer per-word pricing with no minimum charges, different translation quality levels, optional proofreading, API, and turnaround times starting from near real-time.

I was very enthusiastic about Transfluent initially.  You can order translations immediately without waiting for quotes, and the work is sent to the translator’s queue immediately.

What sent us looking for other alternatives was quality issues.  It became apparent that (as of early 2015) Transfluent did not have proper tools in place for translators, which very often resulted in glossary words not being translated properly.  Transfluent was very reactive in correcting the issues, but we couldn’t continue double-checking all translations ourselves.  It’s possible this has been improved since.


  • Excellent service for one-off translation of individual documents (Word, Powerpoint, etc)
  • In general very fast turnover times
  • Instant pricing with varying quality levels (amateur, professional and specialized translators)
  • Optional proof-reading
  • No minimum charges
  • API for automating translations


  • Quality issues (as of early 2015), apparently due to missing translator tools
  • Corrections to translations were done by email correspondence with Transfluent support


We finally discovered OneSky.  It offers both a translation management platform and professional translations.  You can order translations from professionals, use your own translators or crowdsource them.

One of the things that sets OneSky apart is that it removes the barrier of communication between you and the translators.  If translators have questions, they can send you a message directly through the platform.  If you find errors, you can ask for a correction.  This has been a huge time saver.

OneSky maintains a preferred translator for each language.  By default all of your translations will be sent to the same translator, so that she will learn the glossary and tone of voice used — and above all won’t do the same mistakes twice.  If you want the translation faster, you can choose the fastest translator instead.

You can also see and use the same translation platform as the professional translators.  It automatically highlights glossary words and placeholders and suggests similar translations.  If a placeholder is missing, it warns you before accepting the translation.

The file import / export does have some rough edges.  Sometimes a file containing just a few phrases has taken three hours to import.  I’ve also had to contact support several times to fix a project after a file import has broken things.  Hopefully they will get these fixed soon.


  • Good platform for translations
  • Direct messaging with the translators
  • Option between preferred and fastest translator
  • Instant pricing
  • Optional proof-reading
  • No minimum charges
  • API for automating translations


  • The UI took a bit getting used to initially (this has improved over time)
  • Individual one-off documents have to be added to a project before translation
  • Bugs in file import / export (hopefully soon to be fixed)

Continuous localization realized

Once we were satisfied with the quality OneSky was producing us, we moved to automate as many parts of the translation process as made sense.

We standardized most of our translations into Java property files.  We keep our master English copy in our Git repository, while the translation masters are in the OneSky platform.

During development we update the English master and leave the translation files unchanged.  Once all the text changes are done, we run a script that uploads the changed files to OneSky.

We order the translations from the OneSky web site.  This allows us to review the estimated delivery time and switch to the fastest translator if time is short.  Once the translations are in, we have another script that pulls all of the translations back into our repository.

Based on experience from several projects, it’s critical to have a tool that verifies that the translation files are intact.  The tool verifies that all translation files are in the correct format, all texts are translated, placeholders and HTML tags are in place and no extra keys are present.

This process has sped up our development turnaround time and produced great results.  Just keep in mind that professional translation is a human process, and errors will happen. Have the texts proofread from time to time or when significant changes occur.

How do you handle your localization process?

This entry was posted in Coding, Localization and tagged , , , , . Bookmark the permalink.

2 Responses to Continuous localization

  1. Pingback: Complex plurals | Code for Hire

  2. Pingback: Why you need a localization tester tool | Code for Hire

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s