37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { ModuleWithProviders, NgModule } from '@angular/core';
|
|
import { TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
import { pruningTranslationLoaderFactory } from './http-loader-factory';
|
|
import { IqserTranslateModuleOptions } from './iqser-translate-module-options';
|
|
|
|
const translateLoaderToken = 'translateLoader';
|
|
|
|
@NgModule({
|
|
imports: [
|
|
TranslateModule.forRoot({
|
|
loader: {
|
|
provide: TranslateLoader,
|
|
useExisting: translateLoaderToken,
|
|
},
|
|
compiler: {
|
|
provide: TranslateCompiler,
|
|
useClass: TranslateMessageFormatCompiler,
|
|
},
|
|
}),
|
|
],
|
|
exports: [TranslateModule],
|
|
})
|
|
export class IqserTranslateModule {
|
|
static forRoot(options?: IqserTranslateModuleOptions): ModuleWithProviders<IqserTranslateModule> {
|
|
return {
|
|
ngModule: IqserTranslateModule,
|
|
providers: [
|
|
{
|
|
provide: translateLoaderToken,
|
|
useFactory: () => pruningTranslationLoaderFactory(options?.pathPrefix ?? '/assets/i18n/'),
|
|
},
|
|
],
|
|
};
|
|
}
|
|
}
|