4 Easy Steps to Localize Your Android App

Not sure how to localize your Android app? Learn how to do it, its benefits, and best practices to make the process efficient.


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:

What is it?Process of developing a product in a way that it can be localized in the futureProcess 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 appIt's done after the code is amenable to translation
Where is it done?On the backend of the applicationOn 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 developersTranslators 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.

android screenshot *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.

CAT Tool - SmartlingExample of visual context that translators can access via Smartling’s TMS

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.

android smartling localizationAn example of how you can highlight errors, comment on them and rectify them within Smartling's TMS

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

android3Benchmark engagement, uninstall, and stickiness rates for Health & Fitness apps in India when these apps were downloaded in 2021

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.


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: __ <xliff:g id=”company”>Smartling</xliff:g>is a translation solution to localize your app.

Then, you can add the translatable=”false” attribute to mark it as an exclusion.

Smartling is a translation solution to localize your app.

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.