wuchale logo


npm package build status Start new PR in StackBlitz Codeflow


πŸ“œ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
  • πŸ”§ Zero-effort integration - Add i18n to existing projects without rewriting code
  • πŸš€ Compile-time optimization - All transformations happen during build, minimal runtime overhead
  • πŸ”„ 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
  • πŸ€– Optional AI translation - Gemini integration for automatic translations during development

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.

This repo 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.

❀️ Sponsors

Thank you @hayzamjs for sponsoring the project and using it in Sylve, giving valuable feedback!

Top categories

Loading Svelte Themes