The trigger is a button with aria-haspopup="listbox"; the menu is a
listbox of options. Closes on outside click or Escape. Every language
shows its region's crisp SVG flag (from country-flag-icons), with a globe only
for unresolved regions (see LanguageFlag). Labels prefer the
server-provided endonym, fall back to Intl.DisplayNames, and are capitalized.
Language picker — a dropdown showing the active language (flag + endonym) that opens a menu of the available languages. Pure and props-driven (no store/network), so it renders the same in the tracking drawer, the portal settings, and Storybook. Wire it with a thin container that supplies
languagesfrom the app-languages store andonSelect→ setLocale.