An i18n library that leaked between pages
The site is prerendered with vite-ssg, which renders all twelve routes in one Node process. A conventional module-level i18n instance shares state across those renders, so a locale set while rendering /es/menu could bleed into whatever page rendered next.
We wrote a ~120-line localization layer instead of installing one. The locale is a pure function of the URL, the dictionary is picked per render, blank Spanish strings fall back to English, and the dev server warns about any key still in English.










