I also added a setLocale in onStart and onConfigurationChanged, but this is really getting out of control :(
BR, Adrian Vintu http://adrianvintu.com On Wed, Sep 29, 2010 at 1:38 PM, Adrian Vintu <adrianvi...@gmail.com> wrote: > Hi Engin, > > I also noticed this behaviour - albeit, only in the emulator. I cannot test > on a 2.2 phone. > > Unfortunately, I did have enough time to find out why this happens, so I > made a hack. > > First, some info: this resetting of the locale probably happens somewhere > after the onResume(). This means that not only the menu gets reset to the > default locale, but also, for example, in onTextChanged if we show a > validation message, this message will also be displayed in the default > system locale. > > What I did is identify the key events that can happen in my application > AFTER the onResume. > > I see that the user will either: > a. onPrepareOptionsMenu > or > b. onTextChanged > > So two events - pretty easy for me. > > I added in those methods something like this: > > if (!hasSetLocaleSpecial) > { > setLocale(); > > hasSetLocaleSpecial = true; > } > > Basically, I am calling the setLocale again, in the FIRST event that can > happen after onResume. > > It is a horrible hack, but until I can get more info on why this happens, I > will stick to it. > > I hope this will help you a little bit. > > Best Regards, > Adrian Vintu > http://adrianvintu.com > > PS another developer asked this question, but until now, no answer > http://groups.google.com/group/android-developers/browse_thread/thread/3c9b74cb8eb555e9/7ead8fd7ada84233?hl=en > > > > > On Wed, Jul 28, 2010 at 3:24 PM, Engin Arslan <enginarsla...@gmail.com>wrote: > >> Richard, >> >> no it is not what i am trying to do. >> Suppose that I have an telephone which does not support Germany but i >> want to develop application supporting many languages as well as >> Germany . if the only way of changing language of application is >> changing Locale from telephone settings , it is impossible to . >> To summarize , i only want user to be able to choose my application >> language using application's settings. I partially achieved this using >> site that ı posted link. however, menu does not change when ı apply >> that way >> >> On Jul 28, 2:57 pm, RichardC <richard.crit...@googlemail.com> wrote: >> > For multi-language apps you don't need to do any of this. Have a read >> > of localization in the docs: >> http://developer.android.com/guide/topics/resources/localization.html >> > you will get the collect localized resources loaded automatically by >> > the platform. >> > >> > If however you are trying to switch language/localein a running app, >> > then as DH pointed out the platform does not support this. >> > >> > I have not looked into the platform code for lanuage/locale(s) but I >> > suppect that Android has no concept of an applicaton onlylocaleonly >> > systemlocale. If I am correct then are you trying to change >> thelocalefor the whole system? >> > >> > On Jul 28, 12:41 pm, Engin Arslan <enginarsla...@gmail.com> wrote: >> > >> > >> > >> > > Hi, >> > >> > > i am not trying to fight with system. i am just trying to publish >> > > application having multilanguage capability. so this should not be >> > > fighting. >> > > Whatever, >> http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx >> > > in this link i have found alternative way of doing this. by this way >> > > all texts changed proposed language, however there is still problem in >> > > "Menu" even if i recreatemenuafter changinglocale. >> > >> > > On Jul 27, 5:00 pm, RichardC <richard.crit...@googlemail.com> wrote: >> > >> > > > You have already asked this and got a - don't do this - reply from >> > > > Dianne Hackborn. >> > >> > > > DH > "You are blowing away the current configuration in the >> resources >> > > > with your >> > > > own you have created that is not initialized. Things aren't going >> to >> > > > work >> > > > when you do that. >> > >> > > > You could improve that by giving it a properly created >> Configuration, >> > > > but I >> > > > don't want to help with doing that because what you are trying to do >> > > > is >> > > > never going to work quite right because you will be fighting with >> the >> > > > platform over what configuration is being used in the resources. " >> > >> > > > See your previous thread: >> http://groups.google.com/group/android-developers/browse_thread/threa... >> > >> > > > On Jul 27, 1:42 pm, Engin Arslan <enginarsla...@gmail.com> wrote: >> > >> > > > > any ideas? >> > >> > > > > On Jul 23, 3:17 pm, Engin Arslan <enginarsla...@gmail.com> wrote: >> > >> > > > > > Specifically,menulanguage changes to English (which is default >> > > > > > language) when I try to changelocale. And then it does not >> change any >> > > > > > other language >> > >> > > > > > On Jul 23, 2:18 pm, Engin Arslan <enginarsla...@gmail.com> >> wrote: >> > >> > > > > > > Hi all, >> > >> > > > > > > I am developing application in which user can choose >> application >> > > > > > > language. To achieve this, I am changing "Locale" as follows: >> > > > > > > Localelocale= newLocale("language code here"); >> > > > > > > Locale.setDefault(locale); >> > > > > > > Configuration config = new Configuration(); >> > > > > > > config.locale=locale; >> > > > > > > >> getBaseContext().getResources().updateConfiguration(config, >> > > > > > > getResources().getDisplayMetrics()); >> > > > > > > and restart activity in following way: >> > >> > > > > > > >> setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); >> > > > > > > >> setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); >> > > > > > > . This helps to change languagein runtime. >> > > > > > > However , optionmenulanguage does not change , in >> factmenuchanges >> > > > > > > if I close app completely and start again but does not change >> in >> > > > > > > runtime. I even have tried onPrepareOptionsMenu but it did >> not work? >> > >> > > > > > > What is the reason of this? or can you suggest me another >> possible >> > > > > > > way? >> > >> > > > > > > Bests, >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to android-developers@googlegroups.com >> To unsubscribe from this group, send email to >> android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en >> > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en