import { CommonModule, registerLocaleData } from '@angular/common'; import { HttpClient, HttpClientModule } from '@angular/common/http'; import localeEn from '@angular/common/locales/en'; import localeFr from '@angular/common/locales/fr'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { BrowserModule, Title } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateLoader, TranslateModule, TranslateService, } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { ClipboardModule } from 'ngx-clipboard'; import { MarkdownModule } from 'ngx-markdown'; import { NgxWebstorageModule } from 'ngx-webstorage'; import { environment } from '../environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { CoreModule } from './core/core.module'; import { SharedModule } from './shared/shared.module'; registerLocaleData(localeEn, 'en-EN'); registerLocaleData(localeFr, 'fr-FR'); export class MyMissingTranslationHandler implements MissingTranslationHandler { public handle(params: MissingTranslationHandlerParams): string { return `MISSING TRANSLATION FOR [${params.key}]`; } } export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader { return new TranslateHttpLoader(http); } @NgModule({ declarations: [AppComponent], imports: [ AppRoutingModule, BrowserAnimationsModule, BrowserModule, ClipboardModule, CommonModule, CoreModule, FormsModule, HttpClientModule, MarkdownModule.forRoot(), NgxWebstorageModule.forRoot({ prefix: environment.localStorage.key }), SharedModule, TranslateModule.forRoot({ defaultLanguage: 'fr', loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient], }, missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler, }, useDefaultLang: false, }), ], providers: [Title, TranslateService], bootstrap: [AppComponent], }) export class AppModule {}