We just adapted our lightweight internationalization solution for Preact. It supports per-component translations that are dynamically loaded, so only visible content is fetched – keeping bundles lean.
Example bundle sizes:
Preact + Intlayer: 120 KB
Preact support is handled via a new npm package, preact-intlayer.