For e.g there is app which provides multi-language support, in my activity/UI, I call getResources().getString(R.string.hello)
which exist in strings.xml,such that
values\strings.xml
values-ru\strings.xml
Now when calling getResources().getString(R.string.hello)
and need to access string based on system locale, so will one get strings from values\strings.xml
OR values-ru\strings.xml
?
OR
does one need to change my app locale based on system locale (keep app locale same as system locale) and then retrieve the value from getString()
, something suggested in below links
I have searched various other links, but not able to find the solution
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
Add the string values for each locale into the appropriate file.
At runtime, the Android system uses the appropriate set of string resources based on the locale currently set for the user's device.
For info on Localizing with Resources
http://developer.android.com/guide/topics/resources/localization.html
More info @
http://developer.android.com/training/basics/supporting-devices/languages.html
Also check the below link
86 @Override
87 public Resources getResources()
88 {
89 return mBase.getResources();
90 }
Return a Resources instance for your application's package.
332
333 public final String getString(int resId) {
334 return getResources().getString(resId);
335 }
Return a localized string from the application's package's default string table. Parameters: resId Resource id for the string
It is done automatically. By standard the language that is on is in your values\strings.xml
but if the user device has his language set to ru the string automatically is the one on the values-ru\strings.xml
and so on for all the languages that you put on your resources.
You can read more about this subject in here.
At runtime, the Android system uses the appropriate set of string resources based on the locale currently set for the user's device.
来源:https://stackoverflow.com/questions/18641994/how-getresources-getstring-works-android