Localization vs. Internationalization
What’s the difference between localization and internationalization?
Internationalization (abbreviated “i18n”) prepares your app to make it easier for localization to take place later on. Internationalization generally requires you to change your software to ensure that it isn’t geared toward a single country, locale, language, or culture.
Localization services (l10n) is different. It requires you to add appropriate resources to your software to ensure that a given country, locale, language, or culture is supported.
Think of it this way – internationalization produces global-ready software that can easily be localized for a given market. App localization, which is a subset of software localization, is traditionally the second step in the process. It enables you to actually adapt software for another market.
In the past, app localization generally took place after internationalization. However, modern translation software can significantly reduce or eliminate the need for you to internationalize your application.
Localizing iOS and Android Apps
You want to get your app in front of the largest possible group of people. And of course, you want to hit the major platforms, especially iOS and Android. There are a number of best practices for cross-platform app localization.
Whether you’re localizing iOS or Android apps, here are some best practices to follow for app localization:
Think of resources as everything in your app that is not code: content, images, videos, etc. Resources are data files that accompany a program’s executable code. Resources simplify the code you have to write by moving the creation of complex sets of data or graphical content outside of your code and into more appropriate tools. To take advantage of a resource, all your code has to do is load it at runtime.
The first step in the app localization process is to place your resources into external files. After that, localization becomes a simple process of creating new versions of the resource files for each supported language.
Ensure that your app runs properly, regardless of language or locale, by maintaining a set of default resources. The app’s default resources are those that are not marked with any language or locale qualifiers.
When designing an app you plan to localize, you’ll need to consider the length of words and sentences in languages other than English. You’ll also want to consider spacing, left-to-right and right-to-left support, as well as other factors.
As you design your layout, you want to ensure that it can accommodate both expansion and contraction of text. For example, content translated in German can take up to 30% more space than English, while Finnish expands up to 60%. You also want to consider vertical variations for languages whose characters contain smaller or larger than the Latin alphabet.
Keep those considerations in mind as you design your app, and you should be able to use a single set of layouts for all the languages you support. For languages that still won’t fit your flexible layout, create alternative layouts that can then be loaded with the resource files for those specific languages.
Right-to-left (RTL) layouts and text
If you plan on doing app localization in Hebrew, Arabic, or Persian, where right-to-left (RTL) scripts are used, consider implementing support for RTL layouts and text display to the extent possible.
System-provided formatting methods for dates, times, numbers, and currencies
When your app displays dates, times, numbers, currencies, and other entities that can vary by locale, use the system-provided formats rather than creating your own app-specific formats. Not every locale uses the same thousands separator, decimal separator, or percent sign.
Making context available to your app translation team can make a noticeable difference in terms of translation quality. Translators can choose wording based on the content’s location in the app but also the space available. This is true no matter what form of content you translate, but is especially relevant for mobile app translation, where the size of the screen is constrained and can vary from one device to another. Giving translators context can significantly speed up app translation.
When translators work in Smartling on an app translation project, they are able to see their translation in context. For phone apps, context is made up of screenshots of the apps’ different interfaces that are uploaded to the dashboard. Start building your screenshot library now so that when the time comes to translate the app, you’ll be set to upload the content.
Once you receive your translated strings and resources and move them back into your apps, test the app to ensure that there are no localization issues in your layout and content.
To test your localized app, set up an environment that includes multiple devices (or virtual devices) and screen sizes and is based on the markets and form factors you’re targeting. Note that the range of devices in specific regions might be different. If possible, match your test devices to the actual devices most likely to be available to users.
In addition to setting up testing environments, start testing using Smartling’s pseudo translations. You can download pseudo translations from the Files view in each of the target languages setup for your project. The file contains the original strings with added characters so that it can be used for QA and layout purposes.
Common localization issues
On each test device, set the language or locale in the Settings menu. Install and launch the app, and then navigate through all of the UI flows, dialogs, user interactions, and enter text in inputs. Some things to look for include:
- Clipped text or text that overlaps the edge of UI elements on the screen
- Poor line wrapping
- Incorrect word breaks or punctuation
- Incorrect alphabetical sorting
- Incorrect layout direction or text direction
- Untranslated text. If your strings display in the source language instead of translation, you may have overlooked those strings for translation or marked the resources directory with an incorrect language qualifier.
For cases where your strings’ translations have expanded and no longer fit your layouts, adjust your default layouts. If this doesn’t resolve the issue, create a custom layout for the language.
Test for default resources
After you’ve tested your app in all of your supported languages and locales, test it again in an unsupported language and locale to ensure it properly reverts to your default resource file. Also make sure your app includes a full set of default strings and resources so that it is usable to all users regardless of their preferred language.
5. App Store
The App store listing is the first impression international users have of your app, so highlight what’s great about it in all local versions. Don’t forget to localize:
- App description
- App screenshots on phones and tablets
- Promotional graphics and videos
With these five areas, you’ve covered all of the major steps you need to localize your app for iOS and Android.
The Smart Way to Localize Your App