I have seems some apps can change the language internally within the app without the need of restarting the app, I am wondering how they are implemented.
For example
I'm always using this way, it works perfectly, it might help you as well.
you should set all the texts with NSLocalizableString(...)
for the UI
for the current language in the -viewWillAppear:
method of your every UIViewController
.
using this way you (I mean, the users) don't need to restart the application after changing the language of iOS
in the Settings.
of course, I'm using the Apple's standard localisation architecture.
I've experienced the –viewWillAppear:
method won't be performed for the actual view when the application enters to foreground; to solve that issue I also commit the procedure (see above) when I receive UIApplicationWillEnterForegroundNotification
notification in the view.