[Solved] Android app language localization


Create alternative resources

A large part of localizing an app is providing alternative text for different languages. In some cases you also provide alternative graphics, sounds, layouts, and other locale-specific resources.

An app can specify many res// directories, each with different qualifiers. To create an alternative resource for a different locale, you use a qualifier that specifies a language or a language-region combination. (The name of a resource directory must conform to the naming scheme described in Providing Alternative Resources, or else your app cannot compile.)

Example:

Suppose that your app’s default language is English. Suppose also that you want to localize all the text in your app to French, and most of the text in your app (everything except the app’s title) to Japanese. In this case, you could create three alternative strings.xml files, each stored in a locale-specific resource directory:

  1. res/values/strings.xml Contains English text for all the strings
    that the app uses, including text for a string named title.

  2. res/values-fr/strings.xml Contain French text for all the strings,
    including title.

  3. res/values-ja/strings.xml Contain Japanese text for
    all the strings except title.

If your Java-based code refers to R.string.title, here is what happens at runtime:

If the device is set to any language other than French, Android loads title from the res/values/strings.xml file.
If the device is set to French, Android loads title from the res/values-fr/strings.xml file.
Notice that if the device is set to Japanese, Android looks for title in the res/values-ja/strings.xml file. But because no such string is included in that file, Android falls back to the default, and loads title in English from the res/values/strings.xml file.

solved Android app language localization