Applying a new language using the setLangData() refreshes the entire App

Applying a new language using the setLangData() refreshes the entire App. This causes the various opened tabs in the main “tabview” to be deleted.
How can this problem be solved?

This is the expected behavior, changing skin or language will refresh whole app, as views need to be repainted with new skin/language.

If you are using routing correctly, the app after refresh will restore state
For dynamic elements, such as dynamically added tabs, it can be problematic. Still, you can save state of tabs to local storage and restore it after app refresh. Its good idea to have such functionality, as it will work for common page refresh actions as well ( user normally expects to have the app in the same state after page refresh )