Before we dive into anything, let us start with a scenario. We will be referring to two (2) languages in this scenario, Language A and Language B which would be LangA and LangB respectively.
You have built a native mobile app, desktop app, or a web-based application. Your app is built with LangA content but now you want to expand your app to a user base in a LangB-speaking country. You decide to share the app with a small subset of users from the country but start getting reports that the LangB-speaking users are having trouble understanding the content of the application.
This could mean several things but this is most likely an issue with the internationalization or localization of your application.
Localization, Internationalization, and Translations
Localization is the process of adapting your application content to meet the language, culture, and other requirements of a locale.
Localization of an application for a locale entails so many different aspects which include
Translating app content to the language of a locale.
Displaying a different layout or application UI for a specific locale.
Formatting of culture-specific elements including numbers, time, date, currencies, etc.
Presenting different legal and terms of use documents depending on the locale.
Internationalization, sometimes referred to as i18n for short, is the building of systems to enable easy localization of your application for different locales.
Translations fall under the process of the localization of an application for a locale. A translation according to the English dictionary is a written or spoken rendering of the meaning of a word or text in another language.
Supporting multiple translations on your application provides a good number of benefits;
Providing a personalized experience for users
Being able to use your services and browse through your application in their local language means that a user does not need to go through the process of understanding your app in another language before transferring that understood context to a language they are comfortable with. It greatly reduces the time they need to complete tasks so they do a lot more with the services you are providing.
Better offline support
In the case of applications that should be able to work even when there is no internet connection for a user, app translations mean that a user would not need to use an external translation tool to constantly translate content for your application to make use of it. If they have no internet connection at some point, it means that they cannot interact with saved offline content.
Improving Brand loyalty
Users tend to be more loyal to a brand if they feel they can resonate with that brand at a cultural level. Languages are one of the biggest components of culture and a user will feel more at home if your app content is more tailored towards their locale language.
Strategies for translations
Translations can be quite difficult and also expensive to handle depending on the strategy you decide to use. There are also two different parts to this which include
A tool to handle the storage and distribution of app translations
Translating content from a source language to multiple languages
App translation tools
Two general approaches you can take for this are to either build your custom translation tool or to use a tool provided by a third-party service. The former can prove to become more challenging as you scale to support more languages and require more features. Using a third-party tool, however, can mean that it might end up becoming more expensive as your application grows.
My suggestion however would be that if you do not have the capacity or engineering experience in your team to build and maintain a translation tool use a third-party tool. Services like Phrase and Lokalise provide great localization services.
Translating content
The process of actually translating the content for your application can generally be handled in one of two ways;
Hiring language translators
This involves hiring fluent speakers of a language to translate the content of your application. It can be very reliable when it comes to translating context. The construction of a sentence can be very different for two different languages which human translators are very adept at doing. This method however does not work for translating dynamic real-time content e.g comments from users on a social media application meaning that the content they can translate should be known before the application is published i.e. static content. It can also be a slow process which can affect release times and also expensive as translators can charge per hour of work.
Machine translation services
This is essentially using AI or computer programs to translate your app content. This can be very effective for translating content in real-time or on-demand as they provide application programming interfaces that you can supply your source language to and get a target language translation almost immediately. One of the biggest problems still in existence is the ability of machine translators to translate content in the right context. I however expect this to improve over time. Machine translations are also much cheaper than hiring human translators. Google, Lokalise, and DeepL provide great machine translation services as do many other platforms if you do some research.
Conclusion
Language is one of the biggest ways to connect to its people. Translating your app content to support a locale makes it much easier for you to penetrate new markets by providing an experience that makes your app feel like it was made personally for them.
This article is still quite high-level in terms of touching on the topic of handling translations for localization, hence I would be looking to write some more articles that would focus more on the technicalities of this area in the coming months.
Interesting piece. In one of the companies I worked for, we had a hybrid solution. In the deployment process of new changes to our product, it goes through a translation step which is handled both by humans and computers.
The flow goes like this for adding a new webpage or content:
- you raise a pull request with your changes
- a process checks if there's any user-displayed content and triggers the translation flow
- another process is triggered to submit your content to the translation tool (lokalize)
- on lokalize, our translation team gets to work with the help of AI
So here, you get best of both worlds. Computers helping with translation and humans adjusting the translation to fit the context.