Paraglide
The i18n layer that compiles your translations into typed, tree-shakeable functions, so localized text is type-checked and adds almost nothing to the bundle.
Why it's here
We picked Paraglide because it compiles messages instead of looking them up at runtime. Every string becomes a typed function, so a missing or misspelled key is a build error, not a blank spot in production.
What to know
- Translations are JSON files in
messages, one per locale. Keep every locale in parity. - Run
bun run i18n:compileafter editing messages to regenerate the typedm.*functions. - Use messages by calling
m.your_key(). The active locale is chosen from the URL.
Full documentation lives at inlang.com. See also the i18n module.