Introduction
This is the ARDINSYS internationalization (i18n) library, designed to unify how we handle localization across all our applications.
It provides a small, dependency-free core with framework-specific wrappers (Vue, Angular, React) so every project can use the same concepts, message formats, and translation bundles.
At its heart, the library wraps the browser’s native Intl APIs with a type-safe, reactive layer that feels natural in each framework.
Design goals
- Lightweight: no runtime dependencies, very small bundle size
- Familiar: uses native Intl.NumberFormat and Intl.DateTimeFormat
- Typed: seeded helpers generate typed hooks so you can’t mistype message keys or forget placeholders
- Consistent: same bundle structure across all frameworks and backends
- Practical: includes everything you usually need (messages with placeholders, pluralization, number/date formatting, component interpolation) and nothing more
Why we built it
In the past, each team and framework had its own i18n solution which resulted in:
- Inconsistent translation files across projects
- Different feature sets (proper pluralization in one app, not in another)
- Harder knowledge sharing within the company
This library solves that by:
- Offering a shared core that all frameworks can build on
- Giving developers typed, predictable APIs for translations
- Supporting just enough features for 95% of our apps, without the overhead of full-blown i18n frameworks and magic based tooling integrations
What this project is not
- It is not a full replacement for Vue I18n or Angular’s built-in i18n
- It will not attempt feature parity with large ecosystem libraries