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 } 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 { ConfirmationService, MessageModule, MessageService } from 'primeng'; import { ConfirmDialogModule } from 'primeng/confirmdialog'; import { DialogModule } from 'primeng/dialog'; import { ToastModule } from 'primeng/toast'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { DateValueAccessorModule } from './custom-lib/date-value-accessor'; import { DebuggerComponent } from './debugger/debugger.component'; import { HeaderComponent } from './header/header.component'; import { AdminComponent } from './pages/admin/admin.component'; import { AnswersComponent } from './pages/answers/answers.component'; import { BaseComponent } from './pages/base-page/base.component'; import { CreateOrRetrieveComponent } from './pages/create-or-retrieve/create-or-retrieve.component'; import { DatesComponent } from './pages/dates/dates.component'; import { EndConfirmationComponent } from './pages/end-confirmation/end-confirmation.component'; import { HomeComponent } from './pages/home/home.component'; import { KindComponent } from './pages/kind/kind.component'; import { PasswordComponent } from './pages/password/password.component'; import { PicturesComponent } from './pages/pictures/pictures.component'; import { PollDisplayComponent } from './pages/poll-display/poll-display.component'; import { ResumeComponent } from './pages/resume/resume.component'; import { VisibilityComponent } from './pages/visibility/visibility.component'; import { ChoicesListComponent } from './pages/voting/choices-list/choices-list.component'; import { CommentsListComponent } from './pages/voting/comments-list/comments-list.component'; import { VotingChoiceComponent } from './pages/voting/voting-choice/voting-choice.component'; import { VotingCommentComponent } from './pages/voting/voting-comment/voting-comment.component'; import { VotingGraphComponent } from './pages/voting/voting-graph/voting-graph.component'; import { VotingNavigationComponent } from './pages/voting/voting-navigation/voting-navigation.component'; import { VotingSummaryComponent } from './pages/voting/voting-summary/voting-summary.component'; import { VotingComponent } from './pages/voting/voting.component'; import { PollGraphicComponent } from './poll-graphic/poll-graphic.component'; import { ConfigService } from './services/config.service'; import { PollService } from './services/poll.service'; import { CopyTextComponent } from './ui/copy-text/copy-text.component'; import { ResettableInputDirective } from './ui/directives/resettable-input.directive'; import { ErasableInputComponent } from './ui/erasable-input/erasable-input.component'; import { MasterHeadComponent } from './ui/navigation/master-head/master-head.component'; import { NavigationComponent } from './ui/navigation/navigation.component'; import { LanguageComponent } from './ui/selector/language/language.component'; import { SelectorComponent } from './ui/selector/selector.component'; import { ThemeSelectorComponent } from './ui/theme-selector/theme-selector.component'; export class MyMissingTranslationHandler implements MissingTranslationHandler { handle(params: MissingTranslationHandlerParams) { return 'some value'; } } registerLocaleData(localeFr, 'fr'); registerLocaleData(localeEn, 'en'); export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader { return new TranslateHttpLoader(http); } @NgModule({ declarations: [ AppComponent, BaseComponent, KindComponent, HeaderComponent, NavigationComponent, DatesComponent, DebuggerComponent, VisibilityComponent, ResumeComponent, PicturesComponent, AnswersComponent, EndConfirmationComponent, CreateOrRetrieveComponent, VotingSummaryComponent, VotingGraphComponent, VotingChoiceComponent, PasswordComponent, HomeComponent, PollGraphicComponent, AdminComponent, SelectorComponent, PollDisplayComponent, VotingComponent, VotingCommentComponent, ResettableInputDirective, ErasableInputComponent, CopyTextComponent, CommentsListComponent, ChoicesListComponent, VotingNavigationComponent, ThemeSelectorComponent, MasterHeadComponent, LanguageComponent, ], imports: [ ConfirmDialogModule, ClipboardModule, CommonModule, BrowserModule, DialogModule, DateValueAccessorModule, BrowserAnimationsModule, AppRoutingModule, ToastModule, MessageModule, MarkdownModule.forRoot(), TranslateModule.forRoot({ missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler, }, // useDefaultLang: false, loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient], }, }), HttpClientModule, FormsModule, ], providers: [TranslateService, ConfigService, PollService, MessageService, ConfirmationService], bootstrap: [AppComponent], }) export class AppModule {}