Skip to content

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

Released under the Apache 2 License.