If you, like me, are put off by the huge effort required to add i18n to your web app (Svelte/React/SolidJS), let alone make it performant, then this is for you. I worked on this exact issue over the summer. Where it mainly differs is two things:
1. It lets you keep your code as-is:
Hello
stays like that.2. It adds almost zero bundle overhead by just putting the messages in arrays: ['Hello']. Accessed by indices, like Protobuf, no keys, and no function-for-each-message.
Bonus: it can optionally auto-translate with Gemini + HMR in different languages during dev!
Feedback always welcome!
Show HN: Wuchale: Protobuf-like internationalization from plain code
wuchale.dev