Localizing iOS apps using ICanLocalize.com

As with most things, the amount of work we as developers see when starting an iOS application is just the tip of the iceberg. There’s artwork, “About” screens, tutorial pages, icons, the app’s website, and all the marketing the app needs to get it out there. Even writing the app’s description or taking screenshots for the App Store is a time-consuming process. So anything I can do to cut down on the time needed to release my app, the better I am. Therefore when I decided to have myDrumPad translated to other languages to widen my user-base, I wanted to do make it as painless as possible.

I tried tried to have friends and family who understood foreign languages help with translations, and while they were very well intentioned it really didn’t work out in the end.  What I discovered was that there really is no substitute for hiring a trained professional.  But luckily it doesn’t have to be outrageously expensive. Read on for more.

Getting started with professional translators

After trying a couple of web services for handling translations, I eventually settled on ICanLocalize.com.  I have to give you a disclaimer that I’ve included an invitation code on that link.  Give an indie developer a hand and give my account some love by clicking on it.

Localization project summary

You start by clicking the “Start a new project” button.  This interface also shows you the projects you’ve started, which languages you have it translated to, and how many strings your project encompasses.  As you can see both Parking Mobility and myDrumPad have been translated.

These days whenever I’m planning to submit an update to an app, I look at my iTunes Connect statistics and find the largest foreign market for my app, and add that language to my project on ICanLocalize.

Once you create your project, you use their great import mechanism that lets you upload your iOS Localizable.strings files, PO files, PHP translation files, and pretty much any other format you could imagine.  They also allow you to specify standard HTML files, plain text files, or custom blocks of text manually added through the web interface.

Select languages to translate

When you have your strings uploaded, you choose the languages you want to have your app translated to.  As you can see from myDrumPad, I have it translated to French, German, Japanese, Spanish and Korean.  Checking off a new language and clicking save does two things.

  1. It adds a new section to your project where you can manage the translations.
  2. It opens your project up to translators across the world that specialize in translating that language.

Choosing your translators

Individual translators bid on your project, supply their résumés and references to other sites or applications they’ve translated.  You can even read reviews that other developers have left describing their experiences with those translators.

ICanLocalize.com gives you two pricing options depending on how you want your translations reviewed.  They charge $0.07 USD per word, which is ridiculously cheap, especially given the quality of the translators that work with them.

If you choose, you can click the “Enable Review” button on a per-language basis.  What this does is charges an extra $0.04 per word, but gives you a second translator that reviews the translations made by the first one.  If you send in screenshots or videos of the app using the translations provided by the first pass of translations, the reviewer can tweak the wording to make sure the labels fit properly in your app, that the phrases fit in the context of the app, and so forth.

Translation progress showing all your languages, percentage complete, and review status

Clarifications and the translation process

For the two apps I’ve translated, inevitably the translators have questions or need clarifications.  Especially for “Parking Mobility”, because different languages don’t refer to handicapped parking placards the same in all areas.  Or for the Spanish translations, the translators wanted to know if European or South American Spanish was desired for my user base.

ICanLocalize.com has a comments and review section where you, the translator, and the reviewer can all communicate to attach files (even large several-megabyte videos), ask questions, raise “Issues” in a ticket tracking system, and can collaborate together to make sure the strings make sense to the user.

So far I’ve really been impressed with the work they’ve put out, and I’ve seen it reflected in my app’s sales.  myDrumPad costs $55.30 USD to translate all its strings, or $86.90 to have two translators work on the project.  And this app has a large number of strings in it.  For most applications with less strings needing to be translated, your costs will be significantly lower.

When I’m wanting to get a quick estimate for how much I should expect to pay for a translation, I run this one-liner command-line script against my Localizable.strings file to perform a word-count on it.

iconv -f UTF-16 -t UTF-8 Localizable.strings | grep ';$' | awk -F= '{ print $2 }' | wc -w

It converts the strings file from UTF-16 to UTF-8, filters out the comments, and takes a word count of the right-side of the localizations.  Multiply whatever number it gives you by either $0.07 or $0.11, and you’re set!

If you want to see what the end product looks like, download myDrumPad ($1.99 paid app) or Parking Mobility (free app).  Go to the Settings App, and change the language of your device to German, French, or any of the other languages those apps support, and see what it looks like.

If you’ve already submitted your app to the App Store and you’re trying to find a way to connect better with your users, try giving them the app in their native language.  It’ll make them more comfortable with your app, which while hopefully lead to more loyal users or more in-app purchases!

1 thought on “Localizing iOS apps using ICanLocalize.com”

  1. Pingback: Tweets that mention Localizing iOS apps using ICanLocalize.com | Web Developer's Life in Beta -- Topsy.com

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.