I have application with internet access and don't want to store many string.xml
files for different languages.
What I want:
- Application contains only one
string.xml
with english strings.
- 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)
- 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:
- Create some "localization proxy" that will return me necessary resource (from
string.xml
or downloaded resource)
- Replace all
getString()
and getText()
to your own method getStringFromLocalization
- 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.