As of June 2022, the Google Play Store hosted over 2.6 million apps. As the mobile app industry grows, companies must invest in strategies that help them stand out in a sea of competitors. Android app localization is one such strategy.
App localization helps you reach a broader user base by offering the same app in multiple languages. Considering that you can publish through several app stores like Google Play Store, Amazon App Store, and Galaxy store, this strategy is loaded with potential.
To help you navigate the Android localization process, we've created a guide to provide insights on how to do it, its benefits, and tips to make the process easier.
Benefits of localizing your Android application
From improving conversion rates to increasing your market share, here are a few benefits of localizing your Android app:
Increase your Android app’s global reach: It shows customers you care about their preferences—bringing more attention to your app. Plus, with proper keyword optimization and marketing strategies, you can increase your app and brand visibility in multiple international markets.
Improve the sales potential of your app: A CSA report found that 79% of consumers prefer to buy products that are offered in their native language. This lets more people understand the benefits associated with your app. As a result, more customers would appreciate your offerings and invest in your product.
Increase the ROI of your app through localization: While localizing an app can seem like a lot of upfront effort, the ROI increases when you invest in the process. Companies like IMVU (an avatar-based 3D social network) have increased Android app registrations by 43% within two months through localization.
Maintain a consistent brand image globally: When you localize your app, you ensure that users receive a consistent brand experience—irrespective of where they live and what language they speak. Instead of expecting customers to use free tools to receive rough translations that aren’t accurate, you can get ahead of this issue with localization.
Difference between localization (L10N) and internationalization (I18N)
Localization (L10N) and Internationalization (I8N) are common terms that are often considered to be synonymous with each other, but that's not true. There are several distinctions between them:
Internationalization | Localization | |
---|---|---|
What is it? | Process of developing a product in a way that it can be localized in the future | Process of translation of the content and user interface (UI) elements to meet the cultural requirements of a locale |
When is it done? | It's done first to ensure that you can localize the app | It's done after the code is amenable to translation |
Where is it done? | On the backend of the application | On the user-facing side of the application |
How often is it done? | Typically once (unless there were errors in the initial process) | Ongoing process |
What does it include? | 1. Separating dependencies in elements like text strings, audio files, images, date, number, time, and currency 2. Ensures flexibility in the backend (text direction and layout) | 1. Translating the UI elements, images, videos, customer support, marketing collateral, etc. 2. Address local regulations and nuances |
Whom is it done by? | Software engineers and developers | Translators and localization experts |
4 steps to localize your Android app with Smartling
1. Internationalize your Android app
Before starting the Android localization process, ensure the app can be localized. If your text is hard coded, internationalize it first. Fortunately, if you do this via Google's Android Studio SDK tool, it has built-in support, making it easier to download the internationalized version.
Android uses the ICU library and the CLDR project to offer Unicode and internationalization support for all its versions. Ideally, your developers need to have a working knowledge of Java or Kotlin.
Here’s how you can access the Android project files:
- Go to your application’s backend and click on the /res directory (contains the default language file)
- Open the strings.xml file under /res/values/strings.xml
- Click on the text view element under the Design tab (content_main.xml)
- Press Alt + Enter
- Select [I18N]
- An Extract Resource pop-up will appear
- Check “value” and click OK
It'll give you the base file for localization, which you can access from the backend of your application.
2. Create the source files for translation
Next, you need to localize each string in the app by creating a values-local folder under the directory name, /res.
Example: Arabic > values-ar Spanish > values-es Hindi > values-hi
You can even narrow it down using country codes like AR for Argentina and BO for Bolivia (for Spanish). Copy the default strings.xml file into each of these folders and add the comments for the translator. It'll help them understand the underlying context of the string.
*An example of a strings.xml file you need to upload in Smartling’s TMS
When localizing your app, consider how it'll appear in another language. Andrew Saxe, VP of Product at Smartling, recommends accounting for several aspects:
- Number of plurals in the source and target language
- Presence of instruction text (comments)
- How you’re handling placeholders
- Marking specific strings for exclusion
As the number of plurals differs between languages, structure the text to accommodate this change during translation. English has one plural form, and Russian has four plural forms. If you’re translating text in these languages, you have to keep this in mind before sending the XML files.
Once it’s put into a translation management system (TMS), the system handles the plurals automatically. If a string is identified as a plural string, the translator needs to provide the number of forms, and it’s returned in that many plural forms.
3. Integrate Smartling into your translation workflow
Once you have the strings.xml file in place, the process is straightforward. All you have to do is upload it into Smartling’s TMS.
Our TMS automatically recognizes the .xml file format, making it easier for your technical team and our translators.
You can automate this process using our API too. The API automates file uploads and downloads and gives visual context to translators. You can do the latter by adding screenshots with your strings or a video from which you can pull screenshots. Using Optical Character Recognition (OCR), it matches the screenshots with the code and makes it visible to the translator.
Example of visual context that translators can access via Smartling’s TMS
Source
Once the translation is done, the translators conduct quality checks and send it back via the TMS. You can then download the file and upload it to your code repository.
4. Assess the quality of translation before the app's release
It's best to beta-test the app before releasing it to the public. Here, you can use a translation vendor like Smartling that guarantees high accuracy rates and has a quality assurance process in place to assure that.
According to Andrew, there are two parts to this process. One where Smartling’s TMS automatically verifies if the text has the right placeholders and ensures no invalid characters have been added. The other is when the TMS recognizes the initial standard format (.xml) and ensures that it's returned to the customer in the same recognizable format.
To conduct the quality check, you can use Smartling’s Linguistic Quality Assurance (LQA) features. This feature helps you conduct quality checks after the translation process is done. The translator can manually check the quality of the translation.
If it’s not up to the mark, they can add comments and rectify it before sending it to the client. After this, customers receive accurate translations and can launch their apps in multiple markets quickly.
An example of how you can highlight errors, comment on them and rectify them within Smartling's TMS
Source
Best practices for Android app localization
Invest time in strategic planning before getting started Decide which countries and locales you need to localize by analyzing the market demand, market potential, and sales potential. The ultimate goal is to drive revenue, so it's a wasted effort if the project doesn't do that.
Here are a few places you can get this data from:
- Competitor analysis and benchmarking
- In-app analytics dashboard from multiple app stores
- Publicly available user reviews from third-party websites
- Customer-facing teams like sales and customer success
- Industry reports on conversion rates, trends, and growth in specific markets
Benchmark engagement, uninstall, and stickiness rates for Health & Fitness apps in India when these apps were downloaded in 2021
Source
Include context for each string to improve translation accuracy
Localization doesn't mean the mere translation of words. Your translation team needs more context on the UI element and its intended function. Use the comments feature to highlight what that is so that the translation is accurate.
It usually happens when the same word has different meanings in different contexts. For example, the term "right" can mean correct or the right side. This is why adding context is recommended to save time and resources.
Example:
String for a signup button: <string name=”sign up_button”>Sign Up for Free
Comment: <!– This is the Sign Up page’s button –> <string name=”sign up_button”>Sign Up for Free
Design a flexible layout to accommodate various languages
You never know which languages you might localize your app for. To avoid any hassles down the line, ensure your app developers create a flexible layout to accommodate different languages and elements. Here are a few things to look out for:
- Different screen sizes
- Bidirectional languages
- Text expansion/contraction
- Spacing after punctuation marks
- Text length limit (post-translation)
- Form fields in different languages
- Features that might not be included for different locales
You can use Smartling’s Pseudo Translation feature to do this. It simulates the translation and helps you test how well your app's UI can tolerate an expansion. As most European languages expand roughly 30% in size, this is particularly helpful to visually verify the potential output and then get started on the project.
Alternatively, you can create multiple string resource files for each language, like res/layout-de/main.xml. But this might be difficult to maintain as you localize for more languages. Doing this before localization can save you time in the long run.
Alternatively, you can create multiple string resource files for each language, like res/layout-de/main.xml. But this might be difficult to maintain as you localize for more languages. Doing this before localization can save you time in the long run.
Avoid hard-coding text or resource files
Hardcoding strings can turn into a headache during localization. These values become challenging to maintain, requiring code changes, which can be time-consuming and cost-inefficient.
Avoid hardcoded text, or convert this by placing them within the default strings.xml file before sending it to your translator. With Android apps, you usually get the internationalized resource file, but it's best to cross-check before sending it to the translation team.
Mark content that doesn't require translation
Developers need to account for strings that don't need to be localized. For example, brand names, app names, logo images, codes, placeholders, and symbols remain the same no matter the language they're translated into. To save the translator time and effort, mark them using the xliff:g tag within the resource file.
__Example: __
Then, you can add the translatable=”false” attribute to mark it as an exclusion.
Additionally, add placeholders for words that don’t need to be localized. It helps the app understand where the word is placed initially and how the sentence was structured. For instance, Hello {First Name} in English becomes Bonjour {First Name} in French.
In Smartling’s TMS, the placeholder is returned as a numbered value to indicate where it was placed in the source text and how it has moved in the translated text.
Example: Source = X is %d, and Y is %r Translation 1 = Y is %1r and X is %d Translation 2 = Y is %2r and X is %1d
Localize your Android app with Smartling
When you localize your Android app the right way, you can quickly increase your app's visibility in multiple markets. While the upfront resource investment might seem like a lot of work, you can increase the ROI of your app with this process.
The best way to reduce your time to market is to use a translation service like Smartling that gives you access to the right mix of machine and human translation. You only have to provide the source file, and through our TMS, you can automate the entire translation workflow. It hastens the localization process, improves translation accuracy, and reduces the time to market.
Companies like Lyft have already managed to scale their global operations in eight languages by employing such solutions. If you’re interested in localizing your Android app, book a meeting with Smartling today.