Angular 2 Keep ng2-translate DRY when using multiple modules
<p>I am new working with Angular 2 and have a question regarding keeping the code DRY when using multiple modules.</p>

<p>I have a shared module where i import and export common used functionality for other modules. </p>

<p>One of those imports are ng2-translate.</p>

<p>But when I import the <code>SharedModule</code> into a new module, I will need to import and configure the <code>TranslateModule</code> from ng2-translate again, to be able to configure it.</p>

<p>This gives me a pattern i don't like if i should work with multiple modules.</p>

<p>So how would I keep this code <strong>DRY</strong> and <strong>maintain the best practices</strong>?</p>

<pre><code>import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from 'ng2-translate';

@NgModule({
  imports: [
    CommonModule,
    TranslateModule
  ],
  exports: [
    CommonModule,
    TranslateModule
  ]
})

export class SharedModule {
}
</code></pre>

<p>AppModule</p>

<pre><code>import { NgModule } from '@angular/core';
import { HttpModule, Http } from '@angular/http';
import { TranslateModule, TranslateLoader, TranslateStaticLoader, TranslateService } from 'ng2-translate';
import { SharedModule } from './shared/shared.module';
import { AppComponent } from './app.component';

export function translateLoaderFactory(http: Http) {
  return new TranslateStaticLoader(http, '../assets/i18n', '.json')
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    HttpModule,
    TranslateModule.forRoot({
      provide: TranslateLoader,
      useFactory: translateLoaderFactory,
      deps: [Http]
    }),
    SharedModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor(translateService: TranslateService) {

    translateService.setDefaultLang('en-US');

    translateService.use('sv-SE');
  }
}
</code></pre>

<p>This is my basic structure, if I add a new module I will have to import the <code>SharedModule</code>, <code>TranslateModule</code> and setting the default language using the <code>TranslateService</code> all over again.</p>

<p>How do I prevent this pattern?</p>