Chcę, aby moja aplikacja obsługiwała trzy języki hiszpański, portugalski & Angielski. I daj opcję wyboru języka w aplikacji. ZrobiłemJak zmienić język aplikacji, gdy użytkownik wybierze język?
1) 3 wyciągalne foldery do rysowania, drawable-pt, ciągnione.
2) 3 wartości wartości folderów -s, values-pt, values. Zmień wartości String.xml według języków.
mam ImageView wybrać language.When kliknij Otwórz menu opcji, które składa się angielski, hiszpański, portugalski to.
ustawić Locale wewnątrz aplikacji na wybór opcji przez ten kod
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.en:
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in English !", Toast.LENGTH_LONG).show();
break;
case R.id.pt:
Locale locale2 = new Locale("pt");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in Portugal !", Toast.LENGTH_LONG).show();
break;
case R.id.es:
Locale locale3 = new Locale("es");
Locale.setDefault(locale3);
Configuration config3 = new Configuration();
config3.locale = locale3;
getBaseContext().getResources().updateConfiguration(config3, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in Spain !", Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
mam zadeklarować w Manifest- android: configChanges = "locale"
pracować, ale mają jakiś problem.
Problem: -
1) Gdy wybrany język, ekran, który składa się obraz wyboru języka nie zmieni, ale inne ekrany są zmiany.
2) Po zmianie orientacji aplikacja przywraca język zgodnie z ustawieniami regionalnymi telefonu.
na 2. problemu spróbuj dodać: 'android: configChanges =„Locale”' dla swojej działalności wewnątrz AndroidManifest.xml –
już dodać w każdym activitiy w moim manifestu. – mukesh
Możesz użyć następującej biblioteki, która zapewnia listę języków, preferencje dla ekranu ustawień i zastępuje język w aplikacji: https://github.com/delight-im/Android-Languages – caw