Android localization tutorial
Localize your Android app and add hundreds of millions of potential users.
Step-by-step Android localization tutorial.
Preparing your Android app for localization
Start by adding values directories to your resources so that Android knows you have localized your app.
Place all your app localization directories in one /res/ basket
- By default, Google's Android SDK tools create a /res/ directory at the top level of your project. Take a look inside this directory and you will notice there are some default files as well, including res/values/strings.xml. It's always good practice to externalize your string resources this way rather than hard-coding strings as you program. Doing this will also make it a snap to internationalize your app.
- Next, create additional /values/ directories inside /res/ for each language you plan to add. Each of these directories should include a hyphen followed by the ISO language code. For example, /values-fr/ would contain the strings for French.
It should look something like this:
- When a user running Android in a different language runs your app, Android will check these directories to see if you have a localization ready. If so, your translated texts will appear. If not, Android will use the default texts in the /res/values/strings.xml file.
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">Maps</string> <string name="open_in">Open in Google Maps</string> </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">Plans</string> <string name="open_in">Ouvrir dans Google Maps</string> </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">マップ</string> <string name="open_in">Googleマップで開く</string> </resources>
Now we have a place to store our strings.xml files for your Android app localization. But how do we populate those files with our strings?
Using string resources as you code.
If you haven't already externalized your strings, make sure you do. This means replacing any hard-coded strings with calls to Android's built-in
// Call a string resource from your app String open_in_maps =
getResources().getString(R.string.open_in); // In a method that requires a string TextView textView = new TextView(this); textView.setText(R.string.open_in);
Calling a string from within another XML file requires a slightly different syntax. Refer to a string resource as
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/open_in" />
And, voilà. Your app will soon speak enough French to understand the word "voilà!" You have the default
strings.xml file you need to send to your Android translation team!
It contains common translations for mobile app terms, including things like Settings, Tap, etc. in a dozen languages.
IMPORTANT: When you receive the strings.xml files back from the translators, simply place them into the correct
values directories and Android will do the rest! Do NOT rename the files or Android won't find them.
- Language Codes
- Complete list of ISO-639 language codes to use for your Android app. Use these to name your values-xx folders.
- Common Translations for Android apps
- This page contains many common translations for mobile app terms, including things like Settings, Tap, etc.
Pseudolocalization — testing you've found every string
Inventing your own language to spot mistakes.
Once you've finished preparing your .strings file you're probably having doubts that you actually managed to find every hard-coded string in your app. What about those error messages or that plug-in you use? Well, there is a quick way to check. It's called pseudolocalization.
Essentially, you use a program to substitute all the English (source) phrases with a fake language. Load up this gibberish strings.xml file and then run your app. Check every screen and make sure all the text appears as the pseudo-localized text rather than your original. If you can't spot any missing strings, you're good to go.
Tip: Pseudolocalization is also a great way to make sure you've left enough room in your GUI for other languages. A common rule of thumb is that non-English languages are 30% longer, so tiny buttons and titles may not fit when you localize. Pseudolocalization can help you spot those cramped spaces too!
Check it out: Free Pseudolocalization from Babble-on
Send us your .strings file and we'll send you back a pseudolocalized file to test.
What to send to the translator
Don't forget Google Play Store app descriptions.
Hire a professional translator for each language, or do every language simultaneously with Babble-on App localization!
You've generated your strings.xml files, and those go to the Android app localization team you hire. That's not everything, though. You'll definitely want to have your app description for the Google Play or Amazon Appstore localized as well. It's a good idea to specify your SEO keywords for the translators, so that the most important terms are translated correctly in your app description. This ensures that users in other languages will find your app when searching their localized version of the Appstore.
This might also be a good time to read through your Google Play description and make sure it is the best it can be—before you have it translated into 30 languages.
Check it out: How to write an Android App Store description »
Now your app can speak that
Hiring a team for Android localization.
1. Send your Android localization strings.
Calculate the word count and cost of your
strings.xml file for Android localization. Don't forget your Google Play appstore description.
2. We'll translate.
We'll produce localized Unicode text files to insert back into your Android app in the values directory.
3. Users rejoice.
Android devices are multilingual out of the box, so your app's interface will appear localized for the user automatically.
Developers, send us your strings! We localize Android apps »
Tips for how to localize your Android app
Localize Android apps into the right languages
Using Google Play, you've probably already noticed users from all over the world downloading your app. How many more users can you get by translating and localizing your Android app into another language? Into two, or more? Once you've created the strings.xml file using the tutorial above, it's very simple to localize your Android app for the Google Play or Amazon Appstore.
From our FAQ: Which languages are worth localizing into? »
Is your App Store description going to sell?
Writing a description of your app for the App Store description is often difficult for even the best developers. How do you make your app sound great without sounding like a door-to-door salesman? How will the description translate when you localize your Android app, and are there any issues to consider for new markets? Babble-on helps developers with both the copywriting and translation, so we know this subject very well. Ask us for help.
Check it out: Tips for writing your Google Play Appstore description »
Tell your users in their language.
A user can set their preferred language by going to Settings -> Language & keyboard - System Language. Once the language is set, Android will display all text, including the app's name on the home screen, in the user's local language.
Professional Android localization
We love Android apps and are excited to help you localize your projects and test them in multiple languages. Whether you need your Android app localized into Spanish, Japanese, Russian or any other language, Babble-on is ready to help.
Questions or Comments?