Hello!
UI components derive the locale from the CurrentAuthentication. The CurrentAuthentication, in turn, obtain the locale from the user’s authentication token. Therefore, to change the locale, you need to reauthenticate the user with the new locale. Additionally, you must set the locale in the VaadinSession to maintain consistency.
See the answer here Change locale without login and reload page and messages.