5 Best Practices for Localizing Software Applications
Localization is complicated. There are linguistic issues, technical challenges, formatting problems that will make you crazy. Based on the experience of Transifex users, we have identified 5 best practices that will help you avoid some serious mistakes when localizing software applications. Here they are:
1. Give yourself some room
Did you know that the phrase “Repeat password” is 50% longer in German than in English? This is a real challenge for anyone localizing software. Design is a critical part of a software app. You probably invest as much time and energy in how the app looks as on how it works. Good designers allow room for strings to grow and shrink. Keep in mind that text size will vary across all languages. If you don’t leave yourself some room, localizing into some languages will “break” your design – it will look awkward and have an unnatural feel to it.
You want to allow for a 40% variance in text sizes. This will take care of most strings in most languages, but you will need to test your content and your application to see how it plays out.
2. Never Concatenate Strings
Qualifying one string with another (or combining string in some way) is a shortcut that nobody will notice until your software is localized. But when the translators start working, you’re going to have a big problem. Subtle syntactical differences (where the modifier is placed, for example) change significantly between languages. If not handled properly, you will end up with more bugs than a summer picnic.
The best practice is to code the entire string together and allow your translators to put the words in the correct order for each linguistic context. It’s a bit more work for you up front, but it will definitely pay off in the end.
3. Pay Attention to Punctuation
When you’re coding, you’re in the groove. You want to write strings that you can reuse later – so you leave out the punctuation and plan to add it later. Don’t. Maybe you plan to re-use a string in different context where it might need different punctuation. Don’t do that either.
Always include punctuation in context, and create unique strings for each line of text. Even the same sequence of words may translate differently with different punctuation in different languages. In French, for example, a colon is surrounded by spaces. If you omit the colon in your string, and try to add it later, your French interface will have a typo and your work will look sloppy. Probably not what you had in mind.
4. Give Proper Names Their Due
Depending on the language, the spelling and pronunciation of proper names may change based on how they are used. For example, Joe Smith vs. Smith Joe.
Give extra attention to how you treat names in your software app. It’s best to separate and capture all three main name fields “first”, “last” and “username” for example. This give you the most flexibility to use the names based on both language and context.
5. Use a Universal Format for Date, Time & Currency
Time, date and currency formats vary wildly from country to country. The most commonly know formatting challenge is the month/date/year vs. date/month/year issue. But that’s nothing compared to some of the variations we’ve come across. Think about what day is the first day of the week. Did you know that in Estonia, Saturday is the first day of the week, the US starts on Sunday, the UK on Monday, the Maldives on Friday.
The good news is, you can use the jQuery UI date picker to overcome this challenge. Java can help as well. Code in a universal format like ISO time and then tap an open-source library like Datejs to format for your specific location.
Probably the most important thing to realize when localizing your software application is that doing it manually is out of the question. Not too long ago that’s how it was done. There were lots of spreadsheets tracking what had been translated and what hadn’t, what was updated and what wasn’t. These spreadsheet were sent around via email and were a big hassle to manage. Today with modern localization management platforms like Transifex, all of this (and much more) is managed for you. With any good localization management platform you maintain control of your code and content while greatly improving the efficiency and effectiveness of your localization activities.