@etyma/angular

Signal-native Angular bindings without runtime ceremony.

Components inject one typed i18n handle. Templates call t(), links call path(), and locale changes flow through Angular signals.

Signals, not subscriptions

locale(), direction() and ready() are signals. The translation function reads them inside Angular templates and updates without Zone.js assumptions.

Typed by the source catalog

Passing the i18n definition to injectI18n keeps keys typed across the package boundary with no generation step. An optional generated contract types each message’s params for a JSON source too.

MessageFormat 2

Stable and documented

Reference build rendered Jan 15, 2026

Back to the guide