Signals, not subscriptions
locale(), direction() and ready() are signals. The translation function reads them inside Angular templates and updates without Zone.js assumptions.
@etyma/angular
Components inject one typed i18n handle. Templates call t(), links call path(), and locale changes flow through Angular signals.
locale(), direction() and ready() are signals. The translation function reads them inside Angular templates and updates without Zone.js assumptions.
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.
Stable and documented
Reference build rendered Jan 15, 2026