Uygulama dilinin kullanıcı tercihlerine göre ayarlanmasını isterim ancak şimdiye kadar nasıl olmasını istediğim işe yaramıyor.Android kurulumlarda uygulama dilini ayarlama
Varsayılan değerleri belirledim: strings.xml ve aynı zamanda ispanyolca içinde bir strings.xml ile değerler. Kullanıcıyı dilini seçen şeyleri tercih edebilecekleri bir Tercih etkinliğine getiren bir menü seçeneğim var.
public class Preference extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
......
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
...}
//(......)
//and here I have the listener so when the language pref changes value the locale gets changed.
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.equals("listPref2")) {
String idioma = sharedPreferences.getString("listPref2", "catala");
if ("castella".equals(idioma)) {
idioma = "es_ES";
Locale locale = new Locale(idioma);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getApplicationContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}
}
}
ben dilini değiştirmek zaman sonra gelirim veya dil en_US yerel ayarı varsayılan geri alır emülatörünü yeniden ve ne zaman Yani çalışıyor ama sonra:
Yani burada bazı kod özleri vardır Uygulama dili tekrar varsayılan olarak değiştirilir. Bunu çözmek için ne yapabilirim?
Bu tercihimi (tüm etkinliklerimden erişebileceğim) alabildiğimi biliyorum ve her seferinde yerel ayarı ayarlıyorum ama biraz ağır buluyorum. Daha fazla zarif bir şekilde?
Yapmak istediğim, eğer kullanıcı dili kurarsa 2 gün sonra dili tekrar değiştirmek zorunda kalmaz.
Herhangi bir fikrin var mı?
Size anlattığınız şeyi yaptım ancak bu, yalnızca ana etkinlikteki yerel ayarları değiştiriyor. Daha sonra tüm kodlarımın başında aynı kodu ekleyeceğim. teşekkürler – vallllll
itiraf etmeliyim asla yerel şey denemedim. Bir kullanıcı ayarına dayalı olarak görünüyor. şuna baktın mı? http://developer.android.com/resources/tutorials/localization/index.html – bytebender
evet Zaten bir varsayılan kira ve 2 dil kurdum: ispanyolca ve katalanca ve kullanıcının kendi yerini seçebilmesi için kullanıcıya ihtiyacım var. Yerel ayarı yalnızca telefonla belirlemek yeterli değildir. – vallllll