When developing any software, app or game, it’s always important to think of the future.
At any point your software could become available to users in new language markets and, of course, you want them to have the same fantastic experience as users in your source language!
There are so many ‘best practices’ out there for localization for developers of any software from mobile apps to games, though there are unique challenges faced when considering the localization potential for your software. Therefore, we’ve compiled some specific tips on localization for developers to make your life easier, so you can future-proof your software.
A Mature Framework is a Must
We know it can be an interesting challenge discovering the latest and greatest framework out there but it’s worth noting that those golden oldies have the real experience behind them and have many of the localization kinks already worked out. That doesn’t mean that the mature languages are flawless, for instance, if you choose to use Python get used to seeing this:
“UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\xe9′ in position 3: ordinal not in range(128)”.
Remove and Catalogue All Readable Text
Another tip when it comes to localization for developers is that it’s so important not to hard code any of the human-readable text during development, while tempting, this will prove to have been a mistake when it comes to localizing. Instead, relocate all localizable content into a centralised strings catalogue, saving yourself and your localization team a lot of unnecessary work later. Needless to say, this can significantly lower you localization costs too!
Don’t Concatenate Strings
While it’s not always possible, do try to ensure that the common practice of concatenating as you go is kept to an absolute minimum. For example, “You have “ + str(count) + “ sweets in your “ + basket_type + “ basket.” may work really well in English, yet it can cause serious issues in many languages that utilise different word order, or rules on plural use, not to mention gendered adjectives and nouns.
This step is vital to any project but is all too often overlooked. A regular testing schedule will ensure that any bugs are caught quickly and fixed without too much hassle. Think about having native speaking developers of target languages review it in their mother tongue; they’ll spot any issues early in the development and save countless future headaches from concatenated strings or translation mishaps. Don’t forget to test your interface with different languages as you develop it, varying word length can really affect the UI layout.
Make Use of Your Frameworks Localized String Formatting Tools
During the implementation of each new language; there are many formatting changes to be considered as well. Time, date format and even numbers will all need to be localized to bring the overall user experience in line with the new locale’s expectations and cultural norms.
Lots of mature frameworks like .Net has great support in this regard, while newer frameworks require you to find third-party plugins/tools or worse, build them yourself!
All client and server data exchange should be based on standard formatting. Time and date must be sent to the server in the form YYYY-MM-DD HH:MM:SS. So while the user should see the time displayed in their local format e.g 22 Nov 2018 or Nov 22 2018, the server should see this formatted as 2018-11-22.
Finally, if at all feasible, it’s advisable to enable auto-detection of the preferred locale of the user. This provides a far superior user experience for your consumers. Just don’t forget to allow them to change the set locale manually if they prefer something else, giving clear instruction and easy navigation on how they can achieve this.
In today’s increasingly multicultural world, the need for software to be prepared for localization from the beginning stages of development has never been more imperative. Software development, by its very nature, is highly focused on progression, innovation and a constant strive to do better. Each developer appreciates the need for learning new and improved methods for getting the job done. When it comes to localization, this approach will ensure your software is best placed to compete on the global stage.