Skip to content

Message splitting

Load the view. Load its messages.

Your first screen does not need every translation in the application. Try this small workspace and watch the active-language fragments follow the modules you open.

2.0 preview. Try the upcoming release through the repository examples. Registry latest still supplies 1.x. Read the release notes.

01 — Live demo

Real compiled fragments

Start small. Add a view.

Overview is part of the entry module. Projects and Billing are ordinary dynamic imports. Open either view, return to Overview, then change language or restart the document.

JavaScript is required for the interactive demo. You can also open it in its own tab to follow the fragment requests in your browser's Network panel.

02 — What changes

The useful difference

Defer translations with the code that uses them.

On entry

The adapter supplies the first view's compiled messages before it runs. Unopened views keep their translations deferred.

On navigation

An ordinary lazy module brings its active-locale fragment. Return to a loaded view and the document reuses the module.

In your application

Author macros beside the UI. The adapter wires catalog dependencies; the application owns its usual code-splitting boundaries.

This is a browser-delivery demonstration of the workspace's Vite adapter, not an SSR, server-memory, or timing benchmark. Eagerly imported application code still brings its messages on entry. Fragment and import-map overhead matters, especially in small apps. The Next.js adapter follows the same graph-delivery contract; its host behavior has separate integration checks.