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
the idea is to write a new macro like NSLocalizedString which should check if to take the translation from another specific bundle or not.
The method 2 in this article explain exactly how to do it.
In this particular case, the author doesn't use a new macro, but directly set a custom class for [NSBundle mainBundle].
I hope that @holex will understand the problem reading this.