How to Translate an Android App

Translating your Android app can be a relatively simple task as long as you follow the necessary steps in order to make the process run efficiently and smoothly.

Step 1: Decide on Languages

When translating your Android app, the first step is to decide on which languages you want to make your app available.

While Google Play lets you distribute your app broadly to hundreds of countries, reaching users who speak a variety of languages, it might not be cost-effective to translate it into languages with little or no target market. Decide which language users would most be interested in a localized version of your app, and stick to those languages. Ultimately, it's up to you as the app developer to decide what locales you wish to target. You can always add more languages in the future as your app's userbase grows.

Step 2: App Descriptions

Once you decide, you can start by localizing/translating your app description and metadata in the Google Play store listing. You can manage your localized listing in the Developer Console. Customers are more likely to want to download your app if they can read what it's about in their native language. After all, what good is having your app's content translated if users have no idea what it's about or that it's even available in their native language?

Step 3: Structure your Content

After you've determined your target languages for localization, assess what you'll need to do to support them in your app. This should be done early in the design phase of your app, as you need to consider the vocabulary expansion, script requirements, character spacing and wrapping constraints, left-to-right and right-to-left support, and other potential factors for each language.

Design a single set of flexible layouts

As you create your layouts, make sure that any UI elements that hold text are designed generously. It's good to allow more space than necessary for your language (up to 30% more is normal) to accommodate other languages.

Use system-provided formats for dates, times, numbers, and currencies

If you hard-code your formats based on assumptions about the user's locale, your app could encounter problems when the user changes to another locale. The easiest and most reliable approach is to always use system-provided formats and utilities.

Where your app specifies dates, times, numbers, currencies, and other entities that can vary by locale, make sure to use the system-provided formats, rather than app-specific formats. Keep in mind that not every locale uses the same thousands separator, decimal separator, or percent sign.

Android provides a variety of utilities for formatting and converting patterns across locales, such as DateUtils and DateFormat for dates; String.format() or DecimalFormat for numbers and currency; PhoneNumberUtils for phone numbers; and others.

Include a full set of default resources

In order for your application to support multiple device configurations and run properly regardless of language or locale, you must provide a complete set of default resources. The app's default resources are those that are not marked with any language and region qualifier, for example those stored in res/drawable/ and res/values/. If your app attempts to load a resource that isn't available in the current language or in the default set, the app will crash.

  • You can put most or all of the contents of your application's user interface into resource files, as described in this document and in <Providing Resources.
  • The behavior of the user interface, however, is driven by your Java code. For example, if users input data that needs to be formatted or sorted differently depending on locale, then you would use Java to handle the data programmatically.

Step 4: Extracting Content into a strings.xml file

Strings files associate text in an app (the value) with another string (the key). A localizer uses the key to help him or her identify the text in the user interface and then translates that text.


This system is most useful for translating websites, software, and other applications. You can see the structure in the following example.

As you build your app, remember that it's a good practice to keep all of your UI strings in a single file that's easy to update and localize. Declare all of your strings as resources in a default strings.xml file, the format commonly used for Android software.

If you keep all of your default strings in a strings.xml file, you can quickly extract them for translation, and once the translated strings are integrated back into your app with appropriate qualifiers, your app can load them without any changes to your compiled code. If you generate images with text, put those strings in strings.xml as well, and regenerate the images after translation.

Step 5: Uploading to Ackuna

Once you have created your strings.xml files, you are now ready to upload them to Ackuna.

If you haven't done so already, create a free profile at Once you create a profile, you can upload your project. From now on, it's as easy as A, B, C!

A: Language Options
Choose the source language of your project. This is limited to one language, usually English. Next, choose all the target languages you want your files to be translated into.
B: Project Text
Upload your generated strings.xml file for translation.
C: Tell us more about your project
Provide any additional information about your project. The more information you can provide, the better it will be for the translators working on your project. Most of the lines of text in your app probably are short and won't provide many clues as to context. So be descriptive about your app in order to ensure the highest level of accuracy.

Project Preview

After you upload your strings.xml file, you will be shown the details of your project. If there are any mistakes or if you need to change anything, you can choose the ‘Edit project details' button at the bottom of the page.


Translation Method

Choose the method of translation you would like for the content of your app.

Other Options

Do you have a logo for your app already? Upload it for additional exposure on Ackuna. You can also change the number of votes per translation. The more votes required, the longer your project may take to complete, but you will receive a higher consensus that the translation is accurate.


Project deadlines will vary. Because no two projects are alike, it is impossible to accurately gauge how long a project will take to complete. The complexity, word count, language pairs, and number of available translators will all factor into the timeframe.

If you need your project completed faster, consider posting a call-for-help with a link to this project to your friends on Facebook, or if you're an app developer, your mailing list, fan page, or your iTunes Store or Google Play app description. If speed is a major factor, you can always choose the Professional Translation option, and receive your completed translation in 24-48 hours.

Who are the Crowd-Source Translators?

Ackuna has thousands of volunteer translators waiting to help translate your project. When you submit your project for free, choosing the crowdsourced translation option, we will immediately notify the translators for your chosen language pairs. You are also shown the number of translators that will be notified about your project.


Create Project

Once you submit your project, just sit back and let Ackuna do the rest. You can track the progress of your translation through your Ackuna account. Once it is completely finished, you can download the translated file. At this point it is ready to be uploaded to your app. No other formatting is required!

Diagram of how localization works

For more information, visit Android's tutorial: