Correct me if I'm wrong, it works automatically for anonymous users, but not for regular users. As a workaround you can add a dummy data view with a nanoflow datasource to the main layout of your application and in that nanoflow check that $currentUser has the desired language and if not, update $currentUser and force refresh the page with a JS action.