Professional Documents
Culture Documents
Table of Content
First Make Your Internationalization-Localization Plan
10
10
11
12
Checking Translations
12
13
13
As a platform, Android devices are now multilingual out of the box. In theory, you can target
practically any country, region, or culture in the world with your app. However, your developer
conscience is already whispering to you that diving in just anyhow to make versions for every
local language under the sun might not be such a bright idea. But with the right approach to
app localization, the world is your oyster.
for instance) or 50% shorter (some Asian languages, for example.) This may alter screen
layout and display requirements.
Text direction may change. Whereas the direction of English is from left to right, other
languages like Arabic and Hebrew are read from right to left.
Besides storing default text (in the default language) in res/values/strings.xml, put any default
text, drawables (graphics), layouts, and other resources into the default resource set as well,
using the following subdirectories:
res/drawable/ (required subdirectory, usually containing at least one graphic file for the
icon for the application on Google Play)
res/layout/ (required subdirectory, containing an XML file to define the default layout)
res/anim/ (required if the app has any res/anim-<qualifiers> folders)
res/xml/ (required if the app has any res/xml-<qualifiers> folders)
res/raw/ (required if the app has any res/raw-<qualifiers> folders)
Therefore, any localized resource files should be complete as well, or kept separately from the
application until they can provide a completely localized user experience.
<string name="availability">
2
3
4
5
</string>
For example, where the English format for numbers uses a period (.) as a decimal separator,
French format uses a comma (,), but the difference is immediately obvious to native users when
the wrong separator is displayed.
Android offers several utilities to help you format correctly across locales, such as:
DateUtils and DateFormat for dates
String.format() or DecimalFormat for numbers and currency
PhoneNumberUtils for phone numbers
Instead of defining a completely new layout, one option might be to include a field to be
displayed or not by the code, according to the language being used. Another could be to have
the main layout include a secondary layout with the language-dependent field.
Checking Translations
When the localized files are returned to you, check the translations to make sure that all
relevant content has been translated, and that any other content (not to be translated) has
been left intact. If the files pass this preliminary check, move the localized directories and files
back into the resource structure for your app, using the right language and locale qualifiers to
ensure proper loading afterwards, according to the locale selected.
Now test your application for each locale to be supported, checking for correct management of
the following items among others:
Where possible, and highly recommended in any case, have a native speaker for the locale
review the application thoroughly and give feedback.
phraseapp.com
sales@phraseapp.com
+49-40-357-187-76
Groe Theaterstrae 39
Hamburg, Germany