Letting your users improve your app

The idea for crowd-sourced translation started with an email to my support address..

Your app is very cool but it would be even better if you added Russian language) 
I would be happy to help you. 
P.S. Hello from Russia)

I’d received lots of emails like this in the past, for many languages, and my brain (in support email mode) usually processes them like this:

It’s a feature request….+1 requests for Russian….no response other than a thank-you needed….done.

Normally, that’s the end of the thought and I’m on to the next support email (when you sell an app for $4.99, you can’t afford to spend too much time on each support email). For some reason, I came back to this a few times through the day to see was I missing something — was there a way to accept the generous offer of a random user of my app…

The challenge was that although my app was already set up for localization, and had several translations built in, it isn’t easy to have a normal user provide new translations (or even check existing ones). The text tokens are split between different file types (.strings, .xib, .storyboard) which are difficult to edit without breaking the structure of the files.


Ironically, I already sell a developer tool called Linguan which helps developers manage and edit translations. It can export translation files into a standard file format called XLIFF which makes things a bit easier. So, one approach would be to ask him if he had a Mac, then send him a copy of Linguan along with the XLIFF files, and guide him in using Linguan to edit the files.

This all seemed a bit impractical..

Then it occured to me — if other developers had the same problem, what would the ideal solution look like?

The Ideal Solution

After imagining lots of ways to solve the problem, the scenario that seemed the best was this:

  1. Send XLIFF files to user
  2. Have user install dedicated editor app
  3. User edits/reviews translation and sends XLIFF files back to me

It didn’t seem like an iOS-based XLIFF editor already existed on the app store so I set out to build it. I figured that I already had a lot of reusable code to parse/create XLIFF files and gave myself a week to build it (it actually took 6 weeks). Nevertheless, after another 4 weeks of beta testing, I released it yesterday.

Linguan works on iPad and iPhone

Besides creating or editing a translation, another great use is to ask my users to review a translation. There are often subtleties in the use of words in a user interface that are best chosen by a passionate user.

Put another way, even a professional translator often doesn’t have enough context to pick the best translation of a word or phrase.

Goal’ in Goal Streaks does not refer to a sport; ‘Focus’ in Focus Time does not refer to optics. To a user of the app, this is obvious. It’s hopefully obvious to a professional translator. It’s maybe obvious to a machine translator (seriously, don’t ever use Google Translate for your apps — having no translation is better).


There was one, fairly major and still unresolved, ‘I’m an idiot’ moment in the project…

The big challenge with this project was how to get paid for the development. The developer is the person who stands to gain from its use but it’s the translator who actually had to install the app. My original plan was that the developer would gift a copy of the app (for $5) to the translator and everything would be fine. However, in the middle of the beta test I realized that Apple don’t let you gift an app from one app store to another…

Honestly, I don’t know if this is a showstopper or if people will figure out a way around it. If you have any idea for making this part easier, I’m all ears!!

Meanwhile, Linguan is now available on the App Store. It can work with XLIFF files generated by Xcode, or by Linguan itself.

Like what you read? Give Denis Hennessy a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.