# Translate

> Reactive i18n for ngwr apps. The active locale lives on a signal, catalogs load lazily through a swappable loader, and double-brace placeholders interpolate at render time. Scopes let feature modules ship and load their own catalogs.

Source: https://ngwr.dev/guides/translations/overview  
Kind: Service

## At a glance

ngwr/i18n

Save . Cancel

One service, one signal — pipe / directive / inject. Switch locales without re-bootstrapping.

Active locale:

## Sections

- [Setup & loadersWire `provideWrI18n` plus a static or HTTP catalog loader. Two-snippet bootstrap.](https://ngwr.dev/guides/translations/setup)
- [Usage in templatesThree call sites — `| wrT` pipe, `[wrT]` directive, or `inject(WrI18n)` for code.](https://ngwr.dev/guides/translations/usage)
- [ScopesFeature-scoped catalogs load on demand. Ship the root, lazy-load the rest.](https://ngwr.dev/guides/translations/scopes)
- [Interpolation`{{name}}` placeholders and helper formatters for plurals, dates, numbers.](https://ngwr.dev/guides/translations/interpolation)
- [API referenceEvery method, signal, provider and template helper on `WrI18n`.](https://ngwr.dev/reference/services/i18n)
