Quick i18n Tips for Engineers


Comment extensively. We repeat: comment extensively!


Allow for inverse order of placeholders: %1$@ and %2$@ please!


Other languages may have different number formats, calendars, alphabets.


Plan for 20% more space in your UI for other languages.


Not using Auto Layout yet? We recommend you do.


Take a close look at the resources Apple provides.

Why pick Wordcrafts?

​Read on to learn what sets Wordcrafts apart from all the other language service providers out there.


Our dedication to quality

Let’s be honest with each other. You invested months and months of sweat, blood and brains into your shiny (new) app, and you certainly don’t want any self-declared hobbyist translator wreaking havoc on your carefully crafted strings. Well, neither do we. We founded Wordcrafts because we believe in ultimate quality. You won’t find any pricing tables on our website. Because we don’t offer varying quality levels. We offer one quality only: quality.

Quality Icon
Translators Icon

Our great team of hand-picked translators

We are honored to work with such thorough and inspiring translators. And we have taken a great deal of pain to find those amazing translators who not only show a professional attitude, but are at home on the Mac, iPhone and iPad. After all, the translation world is still a Windows-dominated business, and finding the right partners is hard work all along.


Our relaxed and personal interaction

You will never see us wearing suits and you will never hear us talking about “business opportunities”. We like to get to the point straight away and to work out the best solutions together with our clients – especially if this means getting together (physically or virtually) to discuss any issues upfront. But never without our extra-large-oversized coffee mugs!

Interaction Icon
Device Testing Icon

Our nitpicking in on-device testing

App localization would be nothing without a proper subsequent testing routine. It is the main quality instrument when it comes to translating strings, and we’d be ashamed of ourselves the moment we wouldn’t include this service in our localization rate.

Our translators all work on a Mac as their main computer, and their iOS devices are registered in our Provisioning profile. This makes it easy for us to distribute your testing builds to our translators for a detailed review.


Our payment flexibility

Wherever in the world you are located, we can offer a payment solution that won’t blast a hole into your bank account by inflated transaction fees. We offer you to pay by wire transfer, Mastercard, VISA card, Paypal or Moneybookers. It is up to you to pick a payment method that suits you best and you feel most comfortable with. We generally issue the invoice at the end of the month with a 15 days payment term.

Flexibility Icon

Pitfalls in App Localization

Details. Looking so innocent, so simple.
But they are more than worth considering.

Let there be Plurals

Or: how certain languages can stab you in the back with multiple plurals.

Hey, plurals are easy, aren't they? Add an "s" to a noun, and you're done (at least for most regular nouns, that is). In strings design, it would look like this:

"follower_singular" = "1 follower";
"follower_plural" = "%@ followers";

Dead easy. That's all there is to it. 
Really? Not quite, we're afraid.

Do you know Russia? Or Poland? Or the Ukraine? Or Serbia? Or Slovenia? Or Croatia? Or…?
They all have one thing in common: their languages have more than one plural form. And no, we're not kidding!

Russian for example uses one plural form for all numbers ending on 2 to 4 (except 12 to 14), and another plural form for numbers ending on 5 to 9.  And – as if things wouldn't be complicated enough – plural numbers ending on 1 even use the singular form (except 11). Confusing? Indeed! But don’t be scared. We have helped many clients implement these patterns into their code. Get in touch with us and together we'll find a way to master this plurals jungle.

Is it a guy or a girl?

Or: how gender issues make a set of strings difficult to localize.

Just as with certain human beings you cannot tell straight away if they're male of female, translators for certain languages desperately need to know what gender your placeholders will have. 

Why? Because their translation of placeholder-related words may differ depending on the placeholder's gender? Want an example? Here you go:

"failed" = "%@ failed";`

If the phrase replacing the placeholder were male, in Italian this would be:
"failed" = "%@ non riuscito"; 

If the phrase replacing the placeholder were female, this would be:
"failed" = "%@ non riuscita";

Now you might ask: what happens when the placeholder could be both male and female? Well, you're screwed. Don't do this. Never. Ever. Ever. Don't even think about it. It'll go wrong. Find some other solution. Now!

The Article strikes back

Would you think that such a small word such as the indefinite article "a" can cause such trouble in localization? Let's have a look at how to avoid this pitfall:

"notification" = "%1$@ sent you a %2$@";
"message" = "message";
"photo" = "photo";
"video" = "video";

Fairly simple. But impossible to translate properly in certain languages!

In German for example "message" is feminine gender and "video" is neutral gender. The thing is, German happens to have different articles for feminine, masculine and neutral gender nouns. So, depending on what type of content is being sent, the "a" in "%1$@ sent you a %2$@" needs to change: EINE Nachricht, but EIN Video.

The solution: Move the article.

"received_notification" = "%1$@ sent you %2$@";
"message" = "a text message";
"video" = "a video";

And voilà, your translators will certainly remain on the light side of the force. But more importantly, you will have a flawlessly localized app.