Android Ajout de la traduction sur votre application Android


Exemple

Vous devez créer un strings.xml différent pour chaque nouvelle langue.

  1. Cliquez avec le bouton droit sur le dossier res
  2. Choisissez NouveauFichier de ressources Valeurs
  3. Sélectionnez un paramètre régional parmi les qualificateurs disponibles
  4. Cliquez sur le bouton Suivant (>>)
  5. Sélectionnez une langue
  6. Nommez le fichier strings.xml

strings.xml

<resources>
    <string name="app_name">Testing Application</string>
    <string name="hello">Hello World</string>
</resources>

strings.xml (salut)

<resources>
    <string name="app_name">परीक्षण आवेदन</string>
    <string name="hello">नमस्ते दुनिया</string>
</resources>

Définir la langue par programmation:

public void setLocale(String locale) // Pass "en","hi", etc.
{
    myLocale = new Locale(locale);
    // Saving selected locale to session - SharedPreferences.
    saveLocale(locale);
    // Changing locale.
    Locale.setDefault(myLocale);
    android.content.res.Configuration config = new android.content.res.Configuration();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        config.setLocale(myLocale);
    } else {
        config.locale = myLocale;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        getBaseContext().createConfigurationContext(config);
    } else {
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    }
}

La fonction ci-dessus modifiera les champs de texte référencés depuis strings.xml . Par exemple, supposons que vous ayez les deux vues de texte suivantes:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="@string/app_name"/>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="@string/hello"/>

Ensuite, après avoir modifié les paramètres régionaux, les chaînes de langue ayant les identifiants app_name et hello seront modifiées en conséquence.