We’re always looking for bright minds!
See open positions

The Wonderful World of International Apps

If you’re building an international app, it is essential to provide a clear user interface to all users.  However, too often translated apps are not that pleasant to use or make no sense at all. So what are the pitfalls and mistakes that developers have to watch out for? Here are some tips.


# Fun with layouts

How should your application UI look like when presented in Arabic, Urdu, or another language that uses right-to-left script? Perhaps some elements need to be moved? Perhaps spacing becomes inconsistent? All of this needs to be solved to provide users with the intended experience. Some platforms allow you to force a right-to-left layout, so that you can fix these issues before you receive the actual translations.

Don’t forget that the same phrase in different languages will take up a different amount of space: “Invalid Credentials” will become “Ungültige Anmeldeinformationen” in German, that is, 19 characters turns into 30. While the difference may not be extreme, it still requires fine-tuning to perfect your layout for customers overseas.


# Dealing with plurals

Combining words with numbers seems dangerous. But it doesn’t have to be so! If you remember to use plural structure in your platform or framework whenever you need to combine words and numbers, you’re good to go. However, often we just drop together a few and call it a day. What’s the problem with that? While you may have considered the distinction between “one” and “a few” in English (e.g., one apple and five apples), remember that other languages have different forms of the same word to define quantities: zero, one, two, few, many, and other. To make things even more complicated, some languages may treat these a little bit differently and actually apply the “two” case for 2, 12, 102 and so on. So it’s better to trust a platform and let it do this heavy lifting.

Developers tend to combine different strings to make up a phrase. This can be useful when we have a number of categories in a shopping app and for each of them we want to display some sort of message (e.g., “Click here to see more <BLANK>”). The word that fills in “blank” may be displayed in a dropdown menu, this way allowing us to define each category noun only once. However, before handing phrases and category names to a translator, consider the fact that meaning of words may not be correct in all languages. For example, the category “blankets” in a dropdown list would be translated as “antklodės” in Lithuanian, and then the full  string would look like this: “Spauskite, kad pamatytumėte daugiau *antklodžių*.” It makes no sense. To deal with situations like this, you need to make changes in your codebase., The least you can do is to warn translators. If possible, show them your actual application, or give screenshots. Also, ask translators whether you need to change how you treat these labels in your app.


# Money, money, money

After you translate and format every line of text in your app, you feel like a real hero. But there’s still the question of formatting prices (and other areas in your app where monetary values are shown). Some currencies have a symbol, such as $, €, ¥/元, others rely on a few letters, such as zł. In some contexts, an international currency code like GBP may be more appropriate. Consider carefully what your users expecting to see. In a financial report, using a currency code may be appropriate,. However, promotional materials need a less wordy approach. Also, don’t forget that in some languages symbols are placed in front of a number, while it follows a number in others. For example, a bottle of wine or whiskey in Ireland will cost you €20, and a bottle of wine in France will have a 20€ price tag.

And there is one more thing to consider: subunits. Some currencies simply don’t have them. Let’s say, you’re selling a TV set for $500 and offer your customers to pay by 12 installments of $41.67 each. In Japan,selling it for ¥5000 and offering to buy it by 12 installments of ¥416.67 each will make no sense because – Japanese Yen is never subdivided. So what should you do? Put ¥417 in your flashy popup. Oh, and never assume that currency is tied to a language! An American expat living in Germany will probably continue to use the American English UI, but it doesn’t mean that they will pay in USD. The good thing is, all of these issues have been solved before, so rely on your platform, framework or third-party libraries for guidance.


# This is too much …

Localizing your app may seem easy at first glance:  you send a file with all strings to translators, chill out for one week, and you’re good to go. However,the week of wait is better spent ironing out the details and preparing for your big leap abroad. Think how your process will need to adapt to this change. Few software development companies perform translations in-house. Most likely, you will have to plan everything in advance to place translation orders for each release. Also, consider that not only in-app copy has to be translated but the metadata of the app as well: app store descriptions, changelogs, etc. If you have a short release cycle, it may be worthwhile to make changelogs for app stores less descriptive, translate them only for major releases, and reuse them.


# What can users do to help developers?

Developers never make mistakes intentionally, but they still happen. If something looks weird or quirky in an app or website, reach out and tell them why something makes no sense. This will improve the experience for you and others in the future. Being friendly never hurts!