Setup & loaders

Provide WrI18n and load your catalogs.

Static loader

Catalogs inline at bootstrap; pass only your own keys.

import { provideWrI18n, provideWrI18nBaseCatalogs, provideWrI18nStaticLoader } from 'ngwr/i18n';
import { wrEn } from 'ngwr/i18n/en';
import { wrRu } from 'ngwr/i18n/ru';

bootstrapApplication(AppComponent, {
  providers: [
    provideWrI18n({ defaultLocale: 'en', availableLocales: ['en', 'ru'] }),
    provideWrI18nBaseCatalogs({ en: wrEn, ru: wrRu }),
    provideWrI18nStaticLoader({
      en: { app: { title: 'My app' } },
      ru: { app: { title: 'Моё приложение' } },
    }),
  ],
});

HTTP loader

One JSON file per locale; needs provideHttpClient().

import { provideHttpClient } from '@angular/common/http';
import { provideWrI18n, provideWrI18nBaseCatalogs, provideWrI18nHttpLoader } from 'ngwr/i18n';
import { wrRu } from 'ngwr/i18n/ru';

bootstrapApplication(AppComponent, {
  providers: [
    provideHttpClient(),
    provideWrI18n({ defaultLocale: 'ru', availableLocales: ['ru'] }),
    provideWrI18nBaseCatalogs({ ru: wrRu }),
    provideWrI18nHttpLoader({ path: '/assets/i18n/{locale}.json' }),
  ],
});

Missing-key handler

By default a missing key renders as the key itself.

provideWrI18n({
  defaultLocale: 'en',
  availableLocales: ['en', 'ru'],
  missingHandler: (key) => '⚠️ ' + key,
});

Shipped catalogs

One entry point per language.

Import fromExportLanguage
ngwr/i18n/arwrAr العربية — Arabic
ngwr/i18n/cswrCs čeština — Czech
ngwr/i18n/dewrDe Deutsch — German
ngwr/i18n/enwrEn English — English
ngwr/i18n/eswrEs español — Spanish
ngwr/i18n/frwrFr français — French
ngwr/i18n/hewrHe עברית — Hebrew
ngwr/i18n/hiwrHi हिन्दी — Hindi
ngwr/i18n/idwrId Indonesia — Indonesian
ngwr/i18n/itwrIt italiano — Italian
ngwr/i18n/jawrJa 日本語 — Japanese
ngwr/i18n/kowrKo 한국어 — Korean
ngwr/i18n/nlwrNl Nederlands — Dutch
ngwr/i18n/plwrPl polski — Polish
ngwr/i18n/ptwrPt português — Portuguese
ngwr/i18n/ruwrRu русский — Russian
ngwr/i18n/svwrSv svenska — Swedish
ngwr/i18n/trwrTr Türkçe — Turkish
ngwr/i18n/ukwrUk українська — Ukrainian
ngwr/i18n/viwrVi Tiếng Việt — Vietnamese
ngwr/i18n/zhwrZh 中文 — Chinese
ngwr/i18n/zh-TWwrZhTw 中文(台灣) — Chinese (Taiwan)

A region falls back to its language: pt-BR uses pt.

Gotchas

SymptomFix
ngwr's labels stay in English once you add a loaderprovideWrI18nBaseCatalogs({ ru: wrRu })
Keys go missing after { ...wrRu, ...yours }Use base catalogs, not a spread
zh-HK and zh-Hant show Simplified ChineseMap them to zh-TW
use('de') does nothingAdd 'de' to availableLocales
A changed defaultLocale does not applyThe last locale is stored; set storageKey: null to stop that

See also