Release v0.35.0
render finally hands over the page it built. Verbaly writes a pre-translated copy of a static site under /es/ and /pt/, and this version is about what happened to a visitor who reached one: the runtime repainted that Spanish page in English before its catalog arrived, resolveLocale never looked at the prefix render itself had written, and every internal link pointed back out of the mirror. The artifact was right and nothing between it and the visitor was. Found by measuring the docs site, which had worked around the first defect in its own code, which is how we knew it belonged here. No API is removed; two behavior changes are deliberate and described below.
Highlights
- A pre-rendered page stops flashing into English. Verbaly served the Spanish page and then immediately painted the English fallback over it, until the Spanish catalog finished loading and it painted Spanish again. On the exact pages the feature exists to keep still.
- Landing on
/es/is now enough.resolveLocalereads the prefix thatrenderwrote before it looks at storage or the browser, because the page you are looking at is already in that language. Every project using mirrors had to write that check by hand. - The mirror stops being an island. Its links pointed at the site root, so a visitor who arrived in Spanish left Spanish on the first click. Links that point at a page the mirror also holds now stay inside it, including the target of a redirect page.
- A page whose language disagrees with your instance says so.
<html lang="es">with an instance in English is always a flash, and now it warns instead of just happening. - What this version does not fix, honestly: it does not route anyone anywhere. A visitor who lands on
/is being served the English document, and no runtime can turn that into Spanish without fetching. Sending them to their mirror is one rule in your host config, and the reference for it is in the docs.
For the full details of this release, see the repository changelog.