It’s easier now to reach customers all over the world than it ever has been, which makes internationalization an important part of developing new software. Internationalization matters even for companies not yet looking to expand into new countries and regions or support additional languages. Planning for that growth will save money and time, and following some internationalization best practices can make the process smoother, too.
Internationalization, or i18n, is the process of designing software so it can be localized for users in different locales and who speak different languages. When done correctly, coding for i18n makes localization, also known as l10n, and translation for multiple countries much easier.
Internationalization Best Practices
Internationalization involves more than just including Unicode support in software. Knowing how the coding language that’s going to be used supports locale is important, as is using development tools that continuously monitor code for i18n-related issues. These nine best practices can help make internationalization a success.
Planning for internationalization and localization at the beginning of a project makes the process much easier than jumping in later. Coding with i18n in mind should always be part of development — from the initial concept through adding new features and bug fixes.
Always Support Unicode
In simple terms, Unicode is a type format that lets fonts support over 149,000 glyphs, such as letters, punctuation, and other symbols. Supporting Unicode helps make localization possible because the characters needed for translating text for different locales are available in a single font set. Chinese, Japanese and some other languages require double-byte fonts, so verify that Unicode fonts included in the project support double-byte.
Include i18n in Your Development Environment.
Internationalization-related bugs lead to localization issues, so developers need a way to know where those bugs are. Tools such as Globalyzer let developers see i18n bugs directly in their IDE, pull requests, and scan code repositories for internationalization issues, too.
Hard coding text for menus, alerts, and other dialogue items makes them impractical for localization teams to manage. All of the text that’s going to be translated for specific locales needs to be managed outside of the software’s code; otherwise, it can’t be tracked for translation.
Writing code that builds phrases on the fly, or concatenation, may seem efficient, but it makes localization extremely difficult. Grammar and meaning can be lost in word-for-word translations, which gives users a poor experience, leaves software looking unprofessional, and may leave some features unusable.
International Components for Unicode, or ICU, is a set of libraries providing Unicode and Globalization support for software applications. ICU includes elements for displaying locale-based content with correct formatting for dates, times, numbers, currencies, and more. Since it supports locales around the world, it’s an important part of helping software display information correctly in the user’s native locale and language.
Test for Localization Issues
Pseudo-localization simulates language translation to help confirm the software is ready for localization and helps find potential l10n issues as developers are writing code. Automating pseudo-localization with Localyzer, for example, lets developers test their code for localization problems without having to wait for actual translations.
Don’t Stop Testing
Testing to catch bugs ahead of a software launch isn’t an isolated process. i18n and l10n scanning and testing need to be an ongoing part of the development process, even after the product launch, as new features are added and bugs are patched. That helps minimize the risk of new localization-related bugs slipping through in update releases. Automating bug tracking and flagging with Globalyzer, Localyzer, and pseudo-localization lifts that burden from developers so they can focus on coding.
Include Localization with Internationalization
Internationalization and localization aren’t isolated processes. By checking for i18n with Globalyzer as part of regular development sprints and including l10n testing (via automated/always-on pseudo and even machine translation and review, internationalization and localization bugs can be caught before they become expensive problems. The cost to fix i18n-related bugs can be over 600 times higher after a product launch compared to addressing them while coding.
Internationalization is a Good Business
Considering the current state of technologies, it’s a smart business move to develop with internationalization requirements. That gives businesses the ability to efficiently localize software and offer users a first-class experience. Users and customers don’t want to deal with interfaces in languages they don’t understand, that don’t correctly format numbers, dates, and addresses, or use local currencies. They’re more likely to take their business to competitors that give them content translated and formatted for their locale. Ultimately, that leads to lost sales and damaged reputations for businesses coding software for a single locale.
Thanks to the popularity of smartphones, tablets, and laptop computers, users are increasingly mobile. Software developed with i18n and l10n support gives users an experience in the language they choose, making it easier to understand and also increasing customer loyalty.
Companies developing their software with i18n support — even if they aren’t localizing yet — have an advantage over competitors who don’t. The cost to internationalize before releasing is significantly lower, and localization support is already in place, so adding support for additional locales is faster, too. Even if you don’t localize (you should!), chances are good that your users may need internationalized support for their data support, like names, dates, addresses, and even currencies. That’s just part of the global reality of today’s customers.
Resources to Learn More
Coding to support i18n builds a foundation for faster and easier localization. Following best practices sets the stage for an overall better product. It helps prevent bugs and other issues that lead to development delays and unplanned expenses for companies, which leads to happier customers, brand loyalty, and more sales.