سؤال

I have application with internet access and don't want to store many string.xml files for different languages.

What I want:

  1. Application contains only one string.xml with english strings.
  2. When user launches it - I see user's phone locale, and ask my own server for necessary language file. (resource keys will be the same)
  3. When new resource file comes, all interface should work with new file.

The question is how to change existing or add new string.xml file in runtime?

هل كانت مفيدة؟

المحلول

You obviously cannot change, download or remove strings.xml at runtime

If you want to store locations, you will have to use SQLite storage to store translations.

similar:
How to modify strings.xml file at runtime
run time modification of strings.xml

نصائح أخرى

Now I can see only solution:

  1. Create some "localization proxy" that will return me necessary resource (from string.xml or downloaded resource)
  2. Replace all getString() and getText() to your own method getStringFromLocalization
  3. Override TextView, Button and some other views with custom one and change there init and setText methods.

Overriding the standered resource/language using resource files which are complied time then your scarifying performance over customization. Do it only if u need this.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top