Page locales appear to a asynchronous on route change. When the page loads from a full refresh everything works as expected and useLocale return results on the first render. If you navigate to a new page the useLocale hook briefly returns the last pages locales while the new ones load.