This article is only available in Dutch 🇳🇱
From machine learning in apps and mobile gateways to the Metaverse, our Technical Strategist Ennio has covered many topics as a speaker at Appdevcon over the years. Last week, along with some thirty Move colleagues, he was back at the event, known as Western Europe's largest mobile conference. To consume, but also to inspire. This year his talk was about multilingualism in apps. In this article you can read his three main takeaways - aimed at the entire breadth of the diverse Appdevcon audience.
Before we dive into depth: why this topic?
'Clients regularly provide Excel sheets with app texts. That requires a lot of copying and pasting. Besides being error-prone, this method of working is untidy, because you don't keep a clear version history this way. Also, a minimal textual change can have a gigantic impact on app designs and the UI. Every Developer will face this sooner or later in his career. But fortunately, there are many things you can do to make it easier on yourself!
Takeaway #1: Start thinking about multilingualism right away
'When setting up a project, it pays to keep in mind that you may be working with multilingualism in the future. Whether it's for iOS, Android or Flutter, get the project ready to hang multiple languages in it. That will save you a lot of money later. If you don't, then in two years you'll probably have to throw out and rebuild much of your current code. Many starting Developers put app text 'hard' in the code, in the following way: 'label.text = "xxx"'. In the ideal situation, you work with localization files: text files in which all app texts are collected. Those texts each have their own property or key. Take an About page. Instead of "label.text = "About this app"", you want to have the property aboutpage.title there. That way, all the app text is much easier to track, which speeds up a future translation process tremendously.'
Takeaway #2: Keep in mind the UX & UI
'This point, on the one hand, is very practical. For example, some words or sentences in different languages are much longer or shorter. You want to take that into account when creating buttons, for example. By building these kinds of items dynamically and making sure they scale with you, you make them usable for both one and three lines of text. Working closely with Designers in your own development tool also helps tremendously with this. That way both parties can quickly see what happens when you make changes. I am a big proponent of dynamic auto-layout. It's a competency that a developer does have to have a knack for setting that up properly.
It may also be that the app text itself is dynamic. Consider, for example, translations of monetary amounts where the currency changes. Such a translated amount is not ready in a text file because it is subject to exchange rates and calculations. So that data must be retrieved from a backend system at the moment. Such an item is given a variable within a key, which we call formatting. Then you also have to consider the loading states that the user will see in this case. Are you going to hide the amount not yet calculated? Or do you put a price down knowing that it might change within two seconds? From the UI, you often opt for the nicer solutions. For example, not showing the total amount yet and putting a spinner down.
In addition to these practical aspects, there is also a cultural aspect. Translation is not a one-to-one act. You want to give each translated word the right connotation, connotation and therefore the right experience. Depending on the industry you work in, specialized translations by someone with expert knowledge are important. For Developers slightly less relevant, but still important to consider.'
Take-away #3: Investigate the use of tools
'Tools, depending on your situation, can help tremendously in making the process easier. You have to have a good understanding of your customer or client's situation and what they want. With large e-commerce apps, the data probably doesn't come from a language tool, but from a commerce or product management system. Then, apart from titles and things like FAQs, you have to deal with little text that is actually ín the app. You might wonder whether it's worthwhile to set up such a tool - with all the associated costs - in such a case.
Does it pay to work with a tool? Then you benefit from insight into version management, test previews where you can see in advance how your translation will be displayed in the app and, above all, a lot of convenience. With tools, you do the implementation once. You make sure you bring it in and you have to make sure the app does something to retrieve the new language on the backend when you change languages. The client manages the text and is then responsible for how the texts look. Also, with tools you can see at a glance if you've had all the translations and add a new language in no time. In terms of internationalization, scalability and exploring new markets, this is obviously incredibly interesting. But start small. Make sure your set-up with language files is so good that you can start working with tools. That way you keep it easily manageable for yourself.'