wuchale
wuchale
is a compile-time internationalization (i18n) toolkit that requires zero code changes. Write your components naturally, and wuchale
automatically extracts and replaces translatable strings at build time.
- ✨ No extra syntax! - Your normal code is enough
- 📦 Tiny catalogs to bundle - Text catalogs are just arrays, no keys necessary, like Protobuf
- 🔌 Zero-effort integration - Add i18n to existing projects without rewriting code
- 🤖 Optional AI translation - Gemini integration for automatic on-the-fly translations
- ⚡ Full, granular HMR support - Live updates during development, including AI auto-translation
- 📦 Tiny footprint - Very few (less than 5) additional dependencies, no bloated
node_modules
- 🧠 Smart extraction - Uses AST analysis to handle nested markup, conditionals, loops, and complex interpolations
- 🌍 Standard .po files - Compatible with existing translation tools and workflows
Why wuchale
?
Traditional i18n solutions require you to wrap every translatable string with function calls or components. wuchale
doesn't.
Traditional i18n:
<p>{t('Hello')}</p>
<p><Trans>Welcome {userName}</Trans></p>
With wuchale
:
<p>Hello</p>
<p>Welcome {userName}</p>
Write your code naturally. No imports, no wrappers, no annotations. wuchale
handles everything at compile time by analyzing your code and automatically extracting translatable strings.
How it works
wuchale
uses static Abstract Syntax Tree (AST) analysis to:
- Scan your source code and identify translatable text content
- Extract strings into standard
.po
translation files - Replace strings with translation function calls that access the messages by indices
- Generate compact catalogs using arrays instead of string keys, synchronized with the indices
Your original code stays clean and readable, while the build output is automatically internationalized.
Supported Features
ai-translationastgeminigettexti18ninternationalizationl10nlocalizationmultilingualposveltesveltekittranslationvitevite-plugin
Featured Stories
No featured articles here. Navigate to an article, then pick the Feature on menu button