Localisation or Internationalisation

The adaptation of a product or service to meet the needs of a particular language, culture or desired population’s “look-and-feel”.

1. Translation - you should always design your app in a way that can be easily translated to other languages. To do so, any text that you would expect to be translated like labels and titles and button descriptions should all be defined as a string resource in res/values/strings.xml. This allows you to create other versions of strings.xml for other languages. This is done by creating a new values folder with the pattern value-xx where xx can be the abbreviation of any language from the ISO 639 code list here, for example res/values-fr/strings.xml will contain the french version of the strings.xml file with all the strings translated from the default language to French. Label Strings you do not want to translate like so:

<string name="timeFormat" translatable="false">hh:mm a</string>

2. RTL Support - if you’re distributing to countries where right-to-left (RTL) scripts are used (like Arabic or Hebrew), you should consider implementing support for RTL layouts and text display and editing, to the extent possible. By using the Start and End instead of Left and Right you make it possible for Android to reverse elements when necessary (if supporting API 16 or less include the Left and Right attributes as well):

android:layout_marginStart
android:layout_marginEnd

When images with a directional context are used, allow Android to reflect them to maintain the relevance of the image:

<vector android:autoMirrored="true"> </vector>

For more info on localisation click here.