wuchale logo


npm package build status Start new PR in StackBlitz Codeflow discord chat


πŸ“œwuchaleπŸͺΆ

wuchale is a non-invasive, normal code based compile-time internationalization (i18n) toolkit.

  • πŸ”€ 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 - Only 2 or 3 additional dependencies (wuchale + pofile), no bloated node_modules
  • 🎯 Smart extraction - Uses AST analysis: handles 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.

Checkout examples to see how it can be used at wuchalejs/examples.

Repository structure

This is a monorepo that houses these packages:

πŸ“š Documentation

See the full guide at: wuchale.dev.

🀝 Contributing

Contributions are welcome! Please check out our test suites located inside each package for examples of supported scenarios.

❀️ Support & Acknowledgments

Thank you @hayzamjs for making a donation and using it in Sylve, and giving valuable feedback!

If you find wuchale valuable and you enjoy working with it, supporting it would mean a lot.

Top categories

Loading Svelte Themes