While Internationalization and localization are often used interchangeably, they actually refer to two different processes. Internationalization involves building software in a way that allows you to adapt it to various languages and cultures, while localization is the process of actually adapting software to a specific language or culture.
So it’s not a question of one vs. the other. Internationalization and localization are just as important as each other in software localization.
In this blog post, we’ll take a closer look at the differences between the meanings of both internationalization (i18n) and localization (l10n), why they’re important to create a truly global product, and how they work together.
Start internationalizing your code
Automatically detect and extract hardcoded strings all at once with i18n ally.Free plugin
To learn more, jump to internationalization vs. localization. Pressed for time? Read this 5-point summary:
- Internationalization (i18n) is the process of designing and developing software or products that can be adapted to different languages and cultures, while localization (l10n) is the process of adapting a product or content for a specific locale or market.
- Internationalization involves designing products with language and cultural differences in mind, such as using Unicode character encoding, avoiding hard-coded text, and leaving enough space for text expansion.
- Localization involves translating, adapting, and customizing a product to meet the specific linguistic, cultural, and regulatory requirements of a particular market, such as using local date and time formats, currencies, and units of measurement.
- Internationalization is usually done first, before localization, as it lays the foundation for adapting a product to different languages and cultures.
- Internationalization and localization are important for businesses that want to expand their reach globally, as they allow companies to provide a more personalized and relevant experience to their customers in different regions.
Internationalization vs. localization
To develop software for a global audience, there are two critical phases: internationalization and localization.
First up, what is internationalization?
Internationalization is called i18n (because of the number of letters between “i” and “n”) and involves designing and developing your software or mobile application so it can be adapted and localized to different cultures, regions, and languages. It’s typically done by software developers and engineers.
A simple way to think about it is neutralizing code, content, and design so that, down the road, it’ll be easier to adapt your product to additional cultures without having to completely re-engineer it.
If you’re starting from scratch then internationalization helps you build your software or mobile application product with future markets and languages in mind. Instead of hardcoding each individual language, internationalization prepares your codebase to receive different configurations based on your target language(s). It replaces code with key placeholders that — when localized — automatically retrieve each target language without requiring fundamental engineering changes.
Essentially, this step lays the groundwork for software to be tailored to the needs of different target markets.
Without internationalization, it would be hard and time-consuming to adapt or localize software to different regions and languages.
Even if your initial product design and launch is for an English-speaking audience, internationalization allows you to support other languages and cultures if you do decide to expand to additional markets in the future.
Internationalization is typically a one-time cost. So the more languages and cultures a product is localized to, the greater the return on investment for internationalization.
Internationalization (i18n) Example
Let’s say you’re internationalizing the dashboard of a software application, and you need to set up the keys for a welcome message. For now, the software will be sold in English and Spanish.
If the key is “title”, the English version would be “Welcome!”, and the Spanish would be “¡Bienvenidos!”
So, when coding the dashboard language, internationalization would look like this:
confirm(t(title)); instead of confirm(“Welcome!”); or confirm(“¡Bienvenidos!”);.
This same process would also work for locale-specific time formats, date formats, currency, and other components.
Instead of coding the software for each specific language, the internationalization process replaces that code with keys — this not only makes for easy localization, but it also neutralizes the code and adapts it for various languages you may introduce in the future.
In addition to creating placeholder keys, internationalization involves some other best practices:
- Enabling cultural formatting, including number formats and systems, time zones, personal information, and text formatting
- Organizing your source code
- Optimizing for your code language (at Lokalise, we support all major code languages and frameworks, including Python, Vue, Java, and Rails)
What is localization?
While internationalization lays the groundwork for adapting products to various cultures and languages, localization takes it a step further. Localization involves translating and adapting the content and design of your software, mobile app, or website for international audiences.
Also known as l10n, localization is typically carried out by translators who work on the user-facing components of software or mobile applications.
However, localization is not just about translating languages. It also involves customizing elements like time and date formats, currency, accounting standards, culturally appropriate images, symbols, and hand gestures, as well as spelling and other locale-specific components.
Here’s an example of localization
Let’s take the example of localizing a product for the Arabic market. Arabic is a right-to-left (RTL) language, which means that not only do you need to translate the content, you also need to re-design the interface.
While localizing your product for Arabic, you discover your internationalization team failed to implement the correct code to allow for both left-to-right (LTR) and RTL designs. Making it impossible to correctly display RTL text. Developers will need to allocate additional resources and time to correct the issue, resulting in delays to the product release.
When engineering teams know that word order changes, page direction is reversed, and special characters have to be handled differently in some languages, they are able to internationalize code the right way from the get-go, making localization a lot smoother.
Localization (l10n) Process: Adapting Software for Specific Markets
Localization comes after the internationalization phase. However, localization is rarely straightforward. During localization, it’s not uncommon to discover words, phrases, or user interface (UI) elements that were incorrectly internationalized during the initial phase. This can require additional development work to ensure that the product is fully adapted and tailored to the target market.
To make the localization process more efficient, you should:
- Create separate resource files for each language, which store all the text outside of the code for your product. This allows you to import and export information without harming your code.
- Naming conventions can help translation management systems like Lokalise to pull the correct translation for each code string. You can learn more about the wide variety of file formats that Lokalise accepts to help you streamline the localization process.
- Another useful step in localization is pseudolocalization, which involves “testing” the space that different languages will occupy in your final design. This allows you to understand the expansion, contraction, or vertical space needed without actually having to conduct a translation.
Did you know that an English to German translation can expand the text by up to 35%? Pseudolocalization allows you to take this into consideration as you build the initial code and design your product.
At Lokalise, we integrate with tools like Figma and Sketch so you can see how your designs will change throughout the localization process.
Internationalization vs. localization: Both are important!
While internationalization and localization are two very different processes, they do share a common goal: globalization (g11n), which is when businesses expand their international influence or operations into new markets.
Both internationalization and localization play an important role in optimizing your software or mobile application for different locales and different countries. By combining the two — and using a translation management system like Lokalise — you can make it easier to build and transform software so that it’s ready for release in target markets. Have you already internationalized your code? If yes, then move onto the next phase: localization. Try Lokalise for free for 14 days.
What is the difference between internationalization and localization?
Internationalization is the process of designing and developing software or applications to be accessible and adaptable to different languages, cultures, and regions. Localization is the process of adapting software or applications to meet the language, cultural, and other requirements of a specific target market or locale. While internationalization creates a framework that supports multiple languages and regions, localization involves customizing the software or application for a specific target market or region.
When should I use internationalization vs localization?
Internationalization should be implemented during the design and development phase of a software or application to ensure that it can support multiple languages, regions, and cultures. Localization should be used when you are ready to adapt your product to a specific market or locale. The timing of these processes will depend on your business goals and target audience.